SidConfig.h
/*
* This file is part of libsidplayfp, a SID player engine.
*
* Copyright 2011-2023 Leandro Nini <drfiemost@users.sourceforge.net>
* Copyright 2007-2010 Antti Lankila
* Copyright 2000-2001 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 SIDCONFIG_H
#define SIDCONFIG_H
#include <stdint.h>
#include "sidplayfp/siddefs.h"
class sidbuilder;
class SID_EXTERN SidConfig
{
public:
typedef enum
{
MONO = 1,
STEREO
} playback_t;
typedef enum
{
MOS6581,
MOS8580
} sid_model_t;
typedef enum
{
MOS6526,
MOS8521,
MOS6526W4485
} cia_model_t;
typedef enum
{
PAL,
NTSC,
OLD_NTSC,
DREAN,
PAL_M
} c64_model_t;
typedef enum
{
INTERPOLATE,
RESAMPLE_INTERPOLATE
} sampling_method_t;
public:
static const uint_least16_t MAX_POWER_ON_DELAY = 0x1FFF;
static const uint_least16_t DEFAULT_POWER_ON_DELAY = MAX_POWER_ON_DELAY + 1;
static const uint_least32_t DEFAULT_SAMPLING_FREQ = 44100;
public:
c64_model_t defaultC64Model;
bool forceC64Model;
sid_model_t defaultSidModel;
bool forceSidModel;
bool digiBoost;
cia_model_t ciaModel;
playback_t playback;
uint_least32_t frequency;
uint_least16_t secondSidAddress;
uint_least16_t thirdSidAddress;
sidbuilder *sidEmulation;
uint_least32_t leftVolume;
uint_least32_t rightVolume;
uint_least16_t powerOnDelay;
sampling_method_t samplingMethod;
bool fastSampling;
bool compare(const SidConfig &config);
public:
SidConfig();
};
#endif // SIDCONFIG_H
SidConfig
Definition SidConfig.h:40
SidConfig::secondSidAddress
uint_least16_t secondSidAddress
Definition SidConfig.h:137
SidConfig::defaultC64Model
c64_model_t defaultC64Model
Definition SidConfig.h:96
SidConfig::cia_model_t
cia_model_t
CIA chip model.
Definition SidConfig.h:58
SidConfig::MOS8521
@ MOS8521
New CIA (CSG 8521/MOS 6526 216A)
Definition SidConfig.h:60
SidConfig::MOS6526
@ MOS6526
Old CIA with interrupts delayed by one cycle (MOS 6526/6526A)
Definition SidConfig.h:59
SidConfig::rightVolume
uint_least32_t rightVolume
Definition SidConfig.h:155
SidConfig::frequency
uint_least32_t frequency
Definition SidConfig.h:131
SidConfig::leftVolume
uint_least32_t leftVolume
Definition SidConfig.h:150
SidConfig::playback_t
playback_t
Playback mode.
Definition SidConfig.h:44
SidConfig::playback
playback_t playback
Definition SidConfig.h:126
SidConfig::sid_model_t
sid_model_t
SID chip model.
Definition SidConfig.h:51
SidConfig::MOS6581
@ MOS6581
Old SID (MOS 6581)
Definition SidConfig.h:52
SidConfig::forceSidModel
bool forceSidModel
Definition SidConfig.h:111
SidConfig::fastSampling
bool fastSampling
Definition SidConfig.h:171
SidConfig::sampling_method_t
sampling_method_t
Sampling method.
Definition SidConfig.h:76
SidConfig::INTERPOLATE
@ INTERPOLATE
Interpolation.
Definition SidConfig.h:77
SidConfig::powerOnDelay
uint_least16_t powerOnDelay
Definition SidConfig.h:160
SidConfig::ciaModel
cia_model_t ciaModel
Definition SidConfig.h:121
SidConfig::sidEmulation
sidbuilder * sidEmulation
Definition SidConfig.h:145
SidConfig::forceC64Model
bool forceC64Model
Definition SidConfig.h:101
SidConfig::digiBoost
bool digiBoost
Definition SidConfig.h:116
SidConfig::c64_model_t
c64_model_t
C64 model.
Definition SidConfig.h:66
SidConfig::OLD_NTSC
@ OLD_NTSC
Older NTSC model with different video chip revision (MOS 6567 R56A)
Definition SidConfig.h:69
SidConfig::DREAN
@ DREAN
Argentinian PAL-N model (MOS 6572)
Definition SidConfig.h:70
SidConfig::NTSC
@ NTSC
American/Japanese NTSC model (MOS 6567 R8)
Definition SidConfig.h:68
SidConfig::PAL
@ PAL
European PAL model (MOS 6569)
Definition SidConfig.h:67
SidConfig::defaultSidModel
sid_model_t defaultSidModel
Definition SidConfig.h:106
SidConfig::samplingMethod
sampling_method_t samplingMethod
Definition SidConfig.h:165
sidbuilder
Definition sidbuilder.h:41