libsidplayfp 2.4.2
SidConfig.h
1/*
2 * This file is part of libsidplayfp, a SID player engine.
3 *
4 * Copyright 2011-2021 Leandro Nini <drfiemost@users.sourceforge.net>
5 * Copyright 2007-2010 Antti Lankila
6 * Copyright 2000-2001 Simon White
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22
23#ifndef SIDCONFIG_H
24#define SIDCONFIG_H
25
26#include <stdint.h>
27
28#include "sidplayfp/siddefs.h"
29
30
31class sidbuilder;
32
39class SID_EXTERN SidConfig
40{
41public:
43 typedef enum
44 {
45 MONO = 1,
46 STEREO
47 } playback_t;
48
50 typedef enum
51 {
53 MOS8580
54 } sid_model_t;
55
57 typedef enum
58 {
61 MOS6526W4485
62 } cia_model_t;
63
65 typedef enum
66 {
71 PAL_M
72 } c64_model_t;
73
75 typedef enum
76 {
78 RESAMPLE_INTERPOLATE
79 } sampling_method_t;
80
81public:
87 static const uint_least16_t MAX_POWER_ON_DELAY = 0x1FFF;
88 static const uint_least16_t DEFAULT_POWER_ON_DELAY = MAX_POWER_ON_DELAY + 1;
89
90 static const uint_least32_t DEFAULT_SAMPLING_FREQ = 44100;
91
92public:
97
102
107
112
117
122
127
131 uint_least32_t frequency;
132
137 uint_least16_t secondSidAddress;
138 uint_least16_t thirdSidAddress;
140
146
150 uint_least32_t leftVolume;
151
155 uint_least32_t rightVolume;
156
160 uint_least16_t powerOnDelay;
161
166
172
178 bool compare(const SidConfig &config);
179
180public:
181 SidConfig();
182};
183
184#endif // SIDCONFIG_H
Definition: SidConfig.h:40
uint_least16_t secondSidAddress
Definition: SidConfig.h:137
c64_model_t defaultC64Model
Definition: SidConfig.h:96
cia_model_t
CIA chip model.
Definition: SidConfig.h:58
@ MOS8521
New CSG 8521, often marked 6526 216A.
Definition: SidConfig.h:60
@ MOS6526
Old MOS 6526/6526A with interrupts delayed by one cycle.
Definition: SidConfig.h:59
uint_least32_t rightVolume
Definition: SidConfig.h:155
uint_least32_t frequency
Definition: SidConfig.h:131
uint_least32_t leftVolume
Definition: SidConfig.h:150
playback_t
Playback mode.
Definition: SidConfig.h:44
playback_t playback
Definition: SidConfig.h:126
sid_model_t
SID chip model.
Definition: SidConfig.h:51
@ MOS6581
Old MOS 6581.
Definition: SidConfig.h:52
bool forceSidModel
Definition: SidConfig.h:111
bool fastSampling
Definition: SidConfig.h:171
sampling_method_t
Sampling method.
Definition: SidConfig.h:76
@ INTERPOLATE
Interpolation.
Definition: SidConfig.h:77
uint_least16_t powerOnDelay
Definition: SidConfig.h:160
cia_model_t ciaModel
Definition: SidConfig.h:121
sidbuilder * sidEmulation
Definition: SidConfig.h:145
bool forceC64Model
Definition: SidConfig.h:101
bool digiBoost
Definition: SidConfig.h:116
c64_model_t
C64 model.
Definition: SidConfig.h:66
@ OLD_NTSC
Older NTSC model with different video chip revision.
Definition: SidConfig.h:69
@ DREAN
Argentinian PAL-N model.
Definition: SidConfig.h:70
@ NTSC
American/Japanese NTSC model.
Definition: SidConfig.h:68
@ PAL
European PAL model.
Definition: SidConfig.h:67
sid_model_t defaultSidModel
Definition: SidConfig.h:106
sampling_method_t samplingMethod
Definition: SidConfig.h:165
Definition: sidbuilder.h:41