31 #include "sidplayfp/SidTuneInfo.h"
32 #include "sidplayfp/siddefs.h"
35 #include "SidTuneInfoImpl.h"
39 namespace libsidplayfp
43 template <
class T>
class SmartPtr_sidtt;
53 loadError(
const char* msg) : m_msg(msg) {}
54 const char* message()
const {
return m_msg; }
63 typedef std::vector<uint8_t> buffer_t;
70 static const char ERR_TRUNCATED[];
71 static const char ERR_INVALID[];
76 typedef void (*LoaderFunc)(
const char* fileName, buffer_t& bufferRef);
94 static SidTuneBase*
load(
const char* fileName,
const char **fileNameExt,
bool separatorIsSlash);
110 static SidTuneBase*
load(LoaderFunc loader,
const char* fileName,
const char **fileNameExt,
bool separatorIsSlash);
121 static SidTuneBase*
read(
const uint_least8_t* sourceBuffer, uint_least32_t bufferLen);
130 unsigned int selectSong(
unsigned int songNum);
159 virtual const char *
createMD5(
char *) {
return nullptr; }
177 std::unique_ptr<SidTuneInfoImpl> info;
180 SidTuneInfo::clock_t clockSpeed[
MAX_SONGS];
198 static void loadFile(
const char* fileName, buffer_t& bufferRef);
207 SidTuneInfo::clock_t clock = SidTuneInfo::CLOCK_PAL);
243 virtual void acceptSidTune(
const char* dataFileName,
const char* infoFileName,
244 buffer_t& buf,
bool isSlashedFileName);
253 #if !defined(SIDTUNE_NO_STDIN_LOADER)
256 static SidTuneBase* getFromFiles(
const char* name,
const char **fileNameExtensions,
bool separatorIsSlash);
257 static SidTuneBase* getFromFiles(LoaderFunc loader,
const char* name,
const char **fileNameExtensions,
bool separatorIsSlash);
262 static SidTuneBase* getFromBuffer(
const uint_least8_t*
const buffer, uint_least32_t bufferLen);
271 static void createNewFileName(std::string& destString,
272 const char* sourceName,
const char* sourceExt);
Definition: SidTuneInfo.h:39
Definition: SidTuneBase.h:61
static const unsigned int MAX_SONGS
Also PSID file format limit.
Definition: SidTuneBase.h:67
virtual const char * createMD5(char *)
Definition: SidTuneBase.h:159
bool checkCompatibility()
Definition: SidTuneBase.cpp:542
static SidTuneBase * read(const uint_least8_t *sourceBuffer, uint_least32_t bufferLen)
Definition: SidTuneBase.cpp:117
virtual void acceptSidTune(const char *dataFileName, const char *infoFileName, buffer_t &buf, bool isSlashedFileName)
Definition: SidTuneBase.cpp:279
const SidTuneInfo * getInfo() const
Definition: SidTuneBase.cpp:122
void resolveAddrs(const uint_least8_t *c64data)
Definition: SidTuneBase.cpp:507
std::string petsciiToAscii(SmartPtr_sidtt< const uint8_t > &spPet)
Definition: SidTuneBase.cpp:573
void convertOldStyleSpeedToTables(uint_least32_t speed, SidTuneInfo::clock_t clock=SidTuneInfo::CLOCK_PAL)
Definition: SidTuneBase.cpp:439
const uint_least8_t * c64Data() const
Definition: SidTuneBase.h:173
virtual const char * createMD5New(char *)
Definition: SidTuneBase.h:168
virtual void placeSidTuneInC64mem(sidmemory &mem)
Definition: SidTuneBase.cpp:168
bool checkRelocInfo()
Definition: SidTuneBase.cpp:460
unsigned int selectSong(unsigned int songNum)
Definition: SidTuneBase.cpp:133
uint_least32_t fileOffset
For files with header: offset to real data.
Definition: SidTuneBase.h:183
static void loadFile(const char *fileName, buffer_t &bufferRef)
Definition: SidTuneBase.cpp:184
static SidTuneBase * load(const char *fileName, const char **fileNameExt, bool separatorIsSlash)
Definition: SidTuneBase.cpp:97
Definition: SmartPtr.h:193
Definition: SidTuneBase.h:49
Definition: sidmemory.h:34