cog/Frameworks/libsidplay/sidplay-residfp-code/.svn/pristine/be/be68c7ce931bfa51f48747639b4...

100 lines
3.0 KiB
Plaintext

/*
* This file is part of libsidplayfp, a SID player engine.
*
* Copyright 2011-2014 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 SIDINFO_H
#define SIDINFO_H
#include <stdint.h>
#include "sidplayfp/siddefs.h"
/**
* This interface is used to get sid engine informations.
*/
class SidInfo
{
public:
/// Library name
const char *name() const { return getName(); }
/// Library version
const char *version() const { return getVersion(); }
/// Library credits
//@{
unsigned int numberOfCredits() const { return getNumberOfCredits(); }
const char *credits(unsigned int i) const { return getCredits(i); }
//@}
/// Number of SIDs supported by this library
unsigned int maxsids() const { return getMaxsids(); }
/// Number of output channels (1-mono, 2-stereo)
unsigned int channels() const { return getChannels(); }
/// Address of the driver
uint_least16_t driverAddr() const { return getDriverAddr(); }
/// Size of the driver in bytes
uint_least16_t driverLength() const { return getDriverLength(); }
/// Power on delay
SID_DEPRECATED uint_least16_t powerOnDelay() const { return 0; }
/// Describes the speed current song is running at
const char *speedString() const { return getSpeedString(); }
/// Description of the laoded ROM images
//@{
const char *kernalDesc() const { return getKernalDesc(); }
const char *basicDesc() const { return getBasicDesc(); }
const char *chargenDesc() const { return getChargenDesc(); }
//@}
private:
virtual const char *getName() const =0;
virtual const char *getVersion() const =0;
virtual unsigned int getNumberOfCredits() const =0;
virtual const char *getCredits(unsigned int i) const =0;
virtual unsigned int getMaxsids() const =0;
virtual unsigned int getChannels() const =0;
virtual uint_least16_t getDriverAddr() const =0;
virtual uint_least16_t getDriverLength() const =0;
virtual const char *getSpeedString() const =0;
virtual const char *getKernalDesc() const =0;
virtual const char *getBasicDesc() const =0;
virtual const char *getChargenDesc() const =0;
protected:
~SidInfo() {}
};
#endif /* SIDINFO_H */