libsidplayfp
1.0.3
|
00001 /* 00002 * This file is part of libsidplayfp, a SID player engine. 00003 * 00004 * Copyright 2011-2012 Leandro Nini 00005 * Copyright 2007-2010 Antti Lankila 00006 * Copyright 2000 Simon White 00007 * 00008 * This program is free software; you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 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 /* SIDTUNEINFO_H */