00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SIDTUNEINFO_H
00024 #define SIDTUNEINFO_H
00025
00026 #include <stdint.h>
00027
00036 class SidTuneInfo
00037 {
00038 public:
00039 typedef enum {
00040 CLOCK_UNKNOWN,
00041 CLOCK_PAL,
00042 CLOCK_NTSC,
00043 CLOCK_ANY
00044 } clock_t;
00045
00046 typedef enum {
00047 SIDMODEL_UNKNOWN,
00048 SIDMODEL_6581,
00049 SIDMODEL_8580,
00050 SIDMODEL_ANY
00051 } model_t;
00052
00053 typedef enum {
00054 COMPATIBILITY_C64,
00055 COMPATIBILITY_PSID,
00056 COMPATIBILITY_R64,
00057 COMPATIBILITY_BASIC
00058 } compatibility_t;
00059
00060 public:
00062 static const int SPEED_VBI = 0;
00063
00065 static const int SPEED_CIA_1A = 60;
00066
00067 public:
00069 virtual uint_least16_t loadAddr() const =0;
00070
00072 virtual uint_least16_t initAddr() const =0;
00073
00075 virtual uint_least16_t playAddr() const =0;
00076
00080 virtual unsigned int songs() const =0;
00081
00085 virtual unsigned int startSong() const =0;
00086
00090 virtual unsigned int currentSong() const =0;
00091
00097 virtual uint_least16_t sidChipBase1() const =0;
00098 virtual uint_least16_t sidChipBase2() const =0;
00099
00100
00104 virtual bool isStereo() const=0;
00105
00109 virtual int songSpeed() const =0;
00110
00114 virtual uint_least8_t relocStartPage() const =0;
00115
00119 virtual uint_least8_t relocPages() const =0;
00120
00126 virtual model_t sidModel1() const =0;
00127 virtual model_t sidModel2() const =0;
00128
00129
00133 virtual compatibility_t compatibility() const =0;
00134
00143 virtual unsigned int numberOfInfoStrings() const =0;
00144 virtual const char* infoString(unsigned int i) const =0;
00145
00146
00152 virtual unsigned int numberOfCommentStrings() const =0;
00153 virtual const char* commentString(unsigned int i) const =0;
00154
00155
00159 virtual uint_least32_t dataFileLen() const =0;
00160
00164 virtual uint_least32_t c64dataLen() const =0;
00165
00169 virtual clock_t clockSpeed() const =0;
00170
00174 virtual const char* formatString() const =0;
00175
00179 virtual bool fixLoad() const =0;
00180
00184 virtual const char* path() const =0;
00185
00189 virtual const char* dataFileName() const =0;
00190
00195 virtual const char* infoFileName() const =0;
00196
00197 protected:
00198 ~SidTuneInfo() {}
00199 };
00200
00201 #endif