libsidplayfp 3.0.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 <cstdint>
27
28#include "sidplayfp/siddefs.h"
29
30
31class sidbuilder;
32
39class SID_EXTERN SidConfig
40{
41public:
43 typedef enum
44 {
47 } sid_model_t;
48
50 typedef enum
51 {
52 AVERAGE,
53 WEAK,
54 STRONG
55 } sid_cw_t;
56
58 typedef enum
59 {
63 } cia_model_t;
64
66 typedef enum
67 {
73 } c64_model_t;
74
76 typedef enum
77 {
80 } sampling_method_t;
81
82public:
88 static const uint_least16_t MAX_POWER_ON_DELAY = 0x1FFF;
89 static const uint_least16_t DEFAULT_POWER_ON_DELAY = MAX_POWER_ON_DELAY + 1;
90
91 static const uint_least32_t DEFAULT_SAMPLING_FREQ = 48000;
92
93public:
98
103
108
113
118
123
127 uint_least32_t frequency;
128
133 uint_least16_t secondSidAddress;
134 uint_least16_t thirdSidAddress;
136
142
146 uint_least16_t powerOnDelay;
147
152
158 bool compare(const SidConfig &config) const;
159
160public:
161 SidConfig();
162};
163
164#endif // SIDCONFIG_H
uint_least16_t secondSidAddress
Definition SidConfig.h:133
c64_model_t defaultC64Model
Definition SidConfig.h:97
cia_model_t
CIA chip model.
Definition SidConfig.h:59
@ MOS8521
New CIA (CSG 8521/MOS 6526 216A).
Definition SidConfig.h:61
@ MOS6526
Old CIA with interrupts delayed by one cycle (MOS 6526/6526A).
Definition SidConfig.h:60
@ MOS6526W4485
Old CIA, peculiar batch with different serial port behavior (MOS 6526 4485).
Definition SidConfig.h:62
uint_least32_t frequency
Definition SidConfig.h:127
sid_model_t
SID chip model.
Definition SidConfig.h:44
@ MOS8580
New SID (CSG 8580/MOS 6582).
Definition SidConfig.h:46
@ MOS6581
Old SID (MOS 6581).
Definition SidConfig.h:45
bool forceSidModel
Definition SidConfig.h:112
sampling_method_t
Sampling method.
Definition SidConfig.h:77
@ RESAMPLE_INTERPOLATE
Resampling.
Definition SidConfig.h:79
@ INTERPOLATE
Interpolation.
Definition SidConfig.h:78
uint_least16_t powerOnDelay
Definition SidConfig.h:146
static const uint_least16_t MAX_POWER_ON_DELAY
Definition SidConfig.h:88
cia_model_t ciaModel
Definition SidConfig.h:122
sidbuilder * sidEmulation
Definition SidConfig.h:141
bool forceC64Model
Definition SidConfig.h:102
bool digiBoost
Definition SidConfig.h:117
c64_model_t
C64 model.
Definition SidConfig.h:67
@ PAL_M
Brasilian PAL-M model (MOS 6573).
Definition SidConfig.h:72
@ OLD_NTSC
Older NTSC model with different video chip revision (MOS 6567 R56A).
Definition SidConfig.h:70
@ DREAN
Argentinian PAL-N model (MOS 6572).
Definition SidConfig.h:71
@ NTSC
American/Japanese NTSC model (MOS 6567 R8).
Definition SidConfig.h:69
@ PAL
European PAL model (MOS 6569).
Definition SidConfig.h:68
sid_model_t defaultSidModel
Definition SidConfig.h:107
bool compare(const SidConfig &config) const
Definition SidConfig.cpp:42
sampling_method_t samplingMethod
Definition SidConfig.h:151
Definition sidbuilder.h:41