libsidplayfp  1.0.1
SidTuneInfo.h
1 /*
2  * This file is part of libsidplayfp, a SID player engine.
3  *
4  * Copyright 2011-2012 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 
37 {
38 public:
39  typedef enum {
40  CLOCK_UNKNOWN,
41  CLOCK_PAL,
42  CLOCK_NTSC,
43  CLOCK_ANY
44  } clock_t;
45 
46  typedef enum {
47  SIDMODEL_UNKNOWN,
48  SIDMODEL_6581,
49  SIDMODEL_8580,
50  SIDMODEL_ANY
51  } model_t;
52 
53  typedef enum {
59 
60 public:
62  static const int SPEED_VBI = 0;
63 
65  static const int SPEED_CIA_1A = 60;
66 
67 public:
69  virtual uint_least16_t loadAddr() const =0;
70 
72  virtual uint_least16_t initAddr() const =0;
73 
75  virtual uint_least16_t playAddr() const =0;
76 
80  virtual unsigned int songs() const =0;
81 
85  virtual unsigned int startSong() const =0;
86 
90  virtual unsigned int currentSong() const =0;
91 
97  virtual uint_least16_t sidChipBase1() const =0;
98  virtual uint_least16_t sidChipBase2() const =0;
99 
100 
104  virtual bool isStereo() const=0;
105 
109  virtual int songSpeed() const =0;
110 
114  virtual uint_least8_t relocStartPage() const =0;
115 
119  virtual uint_least8_t relocPages() const =0;
120 
126  virtual model_t sidModel1() const =0;
127  virtual model_t sidModel2() const =0;
128 
129 
133  virtual compatibility_t compatibility() const =0;
134 
143  virtual unsigned int numberOfInfoStrings() const =0;
144  virtual const char* infoString(unsigned int i) const =0;
145 
146 
152  virtual unsigned int numberOfCommentStrings() const =0;
153  virtual const char* commentString(unsigned int i) const =0;
154 
155 
159  virtual uint_least32_t dataFileLen() const =0;
160 
164  virtual uint_least32_t c64dataLen() const =0;
165 
169  virtual clock_t clockSpeed() const =0;
170 
174  virtual const char* formatString() const =0;
175 
179  virtual bool fixLoad() const =0;
180 
184  virtual const char* path() const =0;
185 
189  virtual const char* dataFileName() const =0;
190 
195  virtual const char* infoFileName() const =0;
196 
197 protected:
198  ~SidTuneInfo() {}
199 };
200 
201 #endif /* SIDTUNEINFO_H */