libsidplayfp  1.8.7
SidTuneInfo.h
1 /*
2  * This file is part of libsidplayfp, a SID player engine.
3  *
4  * Copyright 2011-2015 Leandro Nini
5  * Copyright 2007-2010 Antti Lankila
6  * Copyright 2000 Simon White
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef SIDTUNEINFO_H
24 #define SIDTUNEINFO_H
25 
26 #include <stdint.h>
27 
28 #include "sidplayfp/siddefs.h"
29 
39 {
40 public:
41  typedef enum {
42  CLOCK_UNKNOWN,
43  CLOCK_PAL,
44  CLOCK_NTSC,
45  CLOCK_ANY
46  } clock_t;
47 
48  typedef enum {
49  SIDMODEL_UNKNOWN,
50  SIDMODEL_6581,
51  SIDMODEL_8580,
52  SIDMODEL_ANY
53  } model_t;
54 
55  typedef enum {
61 
62 public:
64  static const int SPEED_VBI = 0;
65 
67  static const int SPEED_CIA_1A = 60;
68 
69 public:
73  virtual uint_least16_t loadAddr() const =0;
74 
78  virtual uint_least16_t initAddr() const =0;
79 
83  virtual uint_least16_t playAddr() const =0;
84 
88  virtual unsigned int songs() const =0;
89 
93  virtual unsigned int startSong() const =0;
94 
98  virtual unsigned int currentSong() const =0;
99 
105  virtual SID_DEPRECATED uint_least16_t sidChipBase1() const =0;
106  virtual SID_DEPRECATED uint_least16_t sidChipBase2() const =0;
107  virtual uint_least16_t sidChipBase(unsigned int i) const =0;
108 
109 
114  virtual SID_DEPRECATED bool isStereo() const=0;
115 
119  virtual int sidChips() const =0;
120 
124  virtual int songSpeed() const =0;
125 
129  virtual uint_least8_t relocStartPage() const =0;
130 
134  virtual uint_least8_t relocPages() const =0;
135 
141  virtual SID_DEPRECATED model_t sidModel1() const =0;
142  virtual SID_DEPRECATED model_t sidModel2() const =0;
143  virtual model_t sidModel(unsigned int i) const =0;
144 
145 
149  virtual compatibility_t compatibility() const =0;
150 
159  virtual unsigned int numberOfInfoStrings() const =0;
160  virtual const char* infoString(unsigned int i) const =0;
161 
162 
168  virtual unsigned int numberOfCommentStrings() const =0;
169  virtual const char* commentString(unsigned int i) const =0;
170 
171 
175  virtual uint_least32_t dataFileLen() const =0;
176 
180  virtual uint_least32_t c64dataLen() const =0;
181 
185  virtual clock_t clockSpeed() const =0;
186 
190  virtual const char* formatString() const =0;
191 
195  virtual bool fixLoad() const =0;
196 
200  virtual const char* path() const =0;
201 
205  virtual const char* dataFileName() const =0;
206 
211  virtual const char* infoFileName() const =0;
212 
213 protected:
214  ~SidTuneInfo() {}
215 };
216 
217 #endif /* SIDTUNEINFO_H */
static const int SPEED_VBI
Vertical-Blanking-Interrupt.
Definition: SidTuneInfo.h:64
virtual compatibility_t compatibility() const =0
virtual clock_t clockSpeed() const =0
virtual const char * infoString(unsigned int i) const =0
text info from the format headers etc.
virtual unsigned int numberOfCommentStrings() const =0
Number of comments.
virtual uint_least16_t loadAddr() const =0
virtual SID_DEPRECATED model_t sidModel2() const =0
second SID
virtual uint_least16_t playAddr() const =0
virtual SID_DEPRECATED model_t sidModel1() const =0
first SID
virtual SID_DEPRECATED uint_least16_t sidChipBase1() const =0
0xD400 (normal, 1st SID)
virtual uint_least8_t relocStartPage() const =0
Definition: SidTuneInfo.h:38
virtual unsigned int startSong() const =0
File is PSID specific.
Definition: SidTuneInfo.h:57
virtual SID_DEPRECATED uint_least16_t sidChipBase2() const =0
0xD??0 (2nd SID) or 0 (no 2nd SID)
virtual const char * commentString(unsigned int i) const =0
Used to stash the MUS comment somewhere.
File is C64 compatible.
Definition: SidTuneInfo.h:56
virtual unsigned int currentSong() const =0
virtual uint_least32_t dataFileLen() const =0
virtual const char * path() const =0
virtual const char * dataFileName() const =0
virtual uint_least16_t initAddr() const =0
File is Real C64 only.
Definition: SidTuneInfo.h:58
virtual bool fixLoad() const =0
virtual const char * formatString() const =0
virtual uint_least32_t c64dataLen() const =0
static const int SPEED_CIA_1A
CIA 1 Timer A.
Definition: SidTuneInfo.h:67
virtual const char * infoFileName() const =0
virtual SID_DEPRECATED bool isStereo() const =0
virtual unsigned int numberOfInfoStrings() const =0
the number of available text info lines
compatibility_t
Definition: SidTuneInfo.h:55
virtual model_t sidModel(unsigned int i) const =0
virtual uint_least16_t sidChipBase(unsigned int i) const =0
virtual int sidChips() const =0
virtual uint_least8_t relocPages() const =0
File requires C64 Basic.
Definition: SidTuneInfo.h:59
virtual unsigned int songs() const =0
virtual int songSpeed() const =0