30 #include "sidplayfp/Buffer.h"
31 #include "sidplayfp/SmartPtr.h"
32 #include "sidplayfp/SidTuneInfo.h"
33 #include "sidplayfp/SidTune.h"
34 #include "sidplayfp/siddefs.h"
48 loadError(
const char* msg) : m_msg(msg) {}
49 const char* message()
const {
return m_msg; }
59 static const unsigned int MAX_SONGS = 256;
63 static const uint_least32_t MAX_FILELEN = 65536+2+0x7C;
65 static const uint_least32_t MAX_MEMORY = 65536;
80 static SidTuneBase* load(
const char* fileName,
const char **fileNameExt,
bool separatorIsSlash);
86 static SidTuneBase* read(
const uint_least8_t* sourceBuffer, uint_least32_t bufferLen);
92 unsigned int selectSong(
unsigned int songNum);
108 virtual bool placeSidTuneInC64mem(
sidmemory* mem);
116 virtual const char *
createMD5(
char *md5 SID_UNUSED) {
return 0; }
120 std::auto_ptr<SidTuneInfoImpl> info;
122 uint_least8_t songSpeed[MAX_SONGS];
123 SidTuneInfo::clock_t clockSpeed[MAX_SONGS];
140 void convertOldStyleSpeedToTables(uint_least32_t speed,
141 SidTuneInfo::clock_t clock = SidTuneInfo::CLOCK_PAL);
144 bool checkCompatibility();
147 bool checkRelocInfo();
150 void resolveAddrs(
const uint_least8_t* c64data);
168 virtual void acceptSidTune(
const char* dataFileName,
const char* infoFileName,
181 #if !defined(SIDTUNE_NO_STDIN_LOADER)
184 static SidTuneBase* getFromFiles(
const char* name,
const char **fileNameExtensions,
bool separatorIsSlash);
187 static SidTuneBase* getFromBuffer(
const uint_least8_t*
const buffer, uint_least32_t bufferLen);
189 static void createNewFileName(std::string& destString,
190 const char* sourceName,
const char* sourceExt);