libsidplayfp  2.11.0
SidConfig.h
1 /*
2  * This file is part of libsidplayfp, a SID player engine.
3  *
4  * Copyright 2011-2024 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 
31 class sidbuilder;
32 
39 class SID_EXTERN SidConfig
40 {
41 public:
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  {
59  AVERAGE,
60  WEAK,
61  STRONG
62  } sid_cw_t;
63 
65  typedef enum
66  {
69  MOS6526W4485
70  } cia_model_t;
71 
73  typedef enum
74  {
75  PAL,
76  NTSC,
79  PAL_M
80  } c64_model_t;
81 
83  typedef enum
84  {
86  RESAMPLE_INTERPOLATE
87  } sampling_method_t;
88 
89 public:
95  static const uint_least16_t MAX_POWER_ON_DELAY = 0x1FFF;
96  static const uint_least16_t DEFAULT_POWER_ON_DELAY = MAX_POWER_ON_DELAY + 1;
97 
98  static const uint_least32_t DEFAULT_SAMPLING_FREQ = 44100;
99 
100 public:
105 
110 
115 
120 
124  bool digiBoost;
125 
130 
135 
139  uint_least32_t frequency;
140 
145  uint_least16_t secondSidAddress;
146  uint_least16_t thirdSidAddress;
148 
154 
158  uint_least32_t leftVolume;
159 
163  uint_least32_t rightVolume;
164 
168  uint_least16_t powerOnDelay;
169 
174 
180 
186  bool compare(const SidConfig &config);
187 
188 public:
189  SidConfig();
190 };
191 
192 #endif // SIDCONFIG_H
Definition: SidConfig.h:40
uint_least16_t secondSidAddress
Definition: SidConfig.h:145
c64_model_t defaultC64Model
Definition: SidConfig.h:104
cia_model_t
CIA chip model.
Definition: SidConfig.h:66
@ MOS8521
New CIA (CSG 8521/MOS 6526 216A)
Definition: SidConfig.h:68
@ MOS6526
Old CIA with interrupts delayed by one cycle (MOS 6526/6526A)
Definition: SidConfig.h:67
uint_least32_t rightVolume
Definition: SidConfig.h:163
uint_least32_t frequency
Definition: SidConfig.h:139
uint_least32_t leftVolume
Definition: SidConfig.h:158
playback_t
Playback mode.
Definition: SidConfig.h:44
playback_t playback
Definition: SidConfig.h:134
sid_model_t
SID chip model.
Definition: SidConfig.h:51
@ MOS6581
Old SID (MOS 6581)
Definition: SidConfig.h:52
bool forceSidModel
Definition: SidConfig.h:119
bool fastSampling
Definition: SidConfig.h:179
sampling_method_t
Sampling method.
Definition: SidConfig.h:84
@ INTERPOLATE
Interpolation.
Definition: SidConfig.h:85
uint_least16_t powerOnDelay
Definition: SidConfig.h:168
cia_model_t ciaModel
Definition: SidConfig.h:129
sidbuilder * sidEmulation
Definition: SidConfig.h:153
bool forceC64Model
Definition: SidConfig.h:109
bool digiBoost
Definition: SidConfig.h:124
c64_model_t
C64 model.
Definition: SidConfig.h:74
@ OLD_NTSC
Older NTSC model with different video chip revision (MOS 6567 R56A)
Definition: SidConfig.h:77
@ DREAN
Argentinian PAL-N model (MOS 6572)
Definition: SidConfig.h:78
@ NTSC
American/Japanese NTSC model (MOS 6567 R8)
Definition: SidConfig.h:76
@ PAL
European PAL model (MOS 6569)
Definition: SidConfig.h:75
sid_model_t defaultSidModel
Definition: SidConfig.h:114
sampling_method_t samplingMethod
Definition: SidConfig.h:173
Definition: sidbuilder.h:41