SidTuneInfo.h
/*
* This file is part of libsidplayfp, a SID player engine.
*
* Copyright 2011-2015 Leandro Nini
* Copyright 2007-2010 Antti Lankila
* Copyright 2000 Simon White
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef SIDTUNEINFO_H
#define SIDTUNEINFO_H
#include <stdint.h>
#include "sidplayfp/siddefs.h"
class SidTuneInfo
{
public:
typedef enum {
CLOCK_UNKNOWN,
CLOCK_PAL,
CLOCK_NTSC,
CLOCK_ANY
} clock_t;
typedef enum {
SIDMODEL_UNKNOWN,
SIDMODEL_6581,
SIDMODEL_8580,
SIDMODEL_ANY
} model_t;
typedef enum {
COMPATIBILITY_C64,
COMPATIBILITY_PSID,
COMPATIBILITY_R64,
COMPATIBILITY_BASIC
} compatibility_t;
public:
static const int SPEED_VBI = 0;
static const int SPEED_CIA_1A = 60;
public:
virtual uint_least16_t loadAddr() const =0;
virtual uint_least16_t initAddr() const =0;
virtual uint_least16_t playAddr() const =0;
virtual unsigned int songs() const =0;
virtual unsigned int startSong() const =0;
virtual unsigned int currentSong() const =0;
virtual SID_DEPRECATED uint_least16_t sidChipBase1() const =0;
virtual SID_DEPRECATED uint_least16_t sidChipBase2() const =0;
virtual uint_least16_t sidChipBase(unsigned int i) const =0;
virtual SID_DEPRECATED bool isStereo() const=0;
virtual int sidChips() const =0;
virtual int songSpeed() const =0;
virtual uint_least8_t relocStartPage() const =0;
virtual uint_least8_t relocPages() const =0;
virtual SID_DEPRECATED model_t sidModel1() const =0;
virtual SID_DEPRECATED model_t sidModel2() const =0;
virtual model_t sidModel(unsigned int i) const =0;
virtual compatibility_t compatibility() const =0;
virtual unsigned int numberOfInfoStrings() const =0;
virtual const char* infoString(unsigned int i) const =0;
virtual unsigned int numberOfCommentStrings() const =0;
virtual const char* commentString(unsigned int i) const =0;
virtual uint_least32_t dataFileLen() const =0;
virtual uint_least32_t c64dataLen() const =0;
virtual clock_t clockSpeed() const =0;
virtual const char* formatString() const =0;
virtual bool fixLoad() const =0;
virtual const char* path() const =0;
virtual const char* dataFileName() const =0;
virtual const char* infoFileName() const =0;
protected:
~SidTuneInfo() {}
};
#endif /* SIDTUNEINFO_H */
SidTuneInfo::clockSpeed
virtual clock_t clockSpeed() const =0
SidTuneInfo::songSpeed
virtual int songSpeed() const =0
SidTuneInfo::numberOfCommentStrings
virtual unsigned int numberOfCommentStrings() const =0
Number of comments.
SidTuneInfo::loadAddr
virtual uint_least16_t loadAddr() const =0
SidTuneInfo::sidModel1
virtual SID_DEPRECATED model_t sidModel1() const =0
first SID
SidTuneInfo::playAddr
virtual uint_least16_t playAddr() const =0
SidTuneInfo
Definition: SidTuneInfo.h:38
SidTuneInfo::SPEED_VBI
static const int SPEED_VBI
Vertical-Blanking-Interrupt.
Definition: SidTuneInfo.h:64
SidTuneInfo::commentString
virtual const char * commentString(unsigned int i) const =0
Used to stash the MUS comment somewhere.
SidTuneInfo::infoString
virtual const char * infoString(unsigned int i) const =0
text info from the format headers etc.
SidTuneInfo::sidChipBase1
virtual SID_DEPRECATED uint_least16_t sidChipBase1() const =0
0xD400 (normal, 1st SID)
SidTuneInfo::sidModel2
virtual SID_DEPRECATED model_t sidModel2() const =0
second SID
SidTuneInfo::~SidTuneInfo
~SidTuneInfo()
Number of comments.
Definition: SidTuneInfo.h:214
SidTuneInfo::COMPATIBILITY_PSID
@ COMPATIBILITY_PSID
File is PSID specific.
Definition: SidTuneInfo.h:57
SidTuneInfo::dataFileLen
virtual uint_least32_t dataFileLen() const =0
SidTuneInfo::path
virtual const char * path() const =0
SidTuneInfo::startSong
virtual unsigned int startSong() const =0
SidTuneInfo::COMPATIBILITY_C64
@ COMPATIBILITY_C64
File is C64 compatible.
Definition: SidTuneInfo.h:56
SidTuneInfo::relocStartPage
virtual uint_least8_t relocStartPage() const =0
SidTuneInfo::currentSong
virtual unsigned int currentSong() const =0
SidTuneInfo::dataFileName
virtual const char * dataFileName() const =0
SidTuneInfo::sidChipBase2
virtual SID_DEPRECATED uint_least16_t sidChipBase2() const =0
0xD??0 (2nd SID) or 0 (no 2nd SID)
SidTuneInfo::c64dataLen
virtual uint_least32_t c64dataLen() const =0
SidTuneInfo::fixLoad
virtual bool fixLoad() const =0
SidTuneInfo::COMPATIBILITY_R64
@ COMPATIBILITY_R64
File is Real C64 only.
Definition: SidTuneInfo.h:58
SidTuneInfo::formatString
virtual const char * formatString() const =0
SidTuneInfo::SPEED_CIA_1A
static const int SPEED_CIA_1A
CIA 1 Timer A.
Definition: SidTuneInfo.h:67
SidTuneInfo::sidModel
virtual model_t sidModel(unsigned int i) const =0
SidTuneInfo::initAddr
virtual uint_least16_t initAddr() const =0
SidTuneInfo::infoFileName
virtual const char * infoFileName() const =0
SidTuneInfo::COMPATIBILITY_BASIC
@ COMPATIBILITY_BASIC
File requires C64 Basic.
Definition: SidTuneInfo.h:59
SidTuneInfo::numberOfInfoStrings
virtual unsigned int numberOfInfoStrings() const =0
the number of available text info lines
SidTuneInfo::relocPages
virtual uint_least8_t relocPages() const =0
SidTuneInfo::isStereo
virtual SID_DEPRECATED bool isStereo() const =0
SidTuneInfo::sidChipBase
virtual uint_least16_t sidChipBase(unsigned int i) const =0
SidTuneInfo::sidChips
virtual int sidChips() const =0
SidTuneInfo::compatibility
virtual compatibility_t compatibility() const =0
SidTuneInfo::songs
virtual unsigned int songs() const =0
SidTuneInfo::compatibility_t
compatibility_t
Definition: SidTuneInfo.h:55