16#include "SubComponent.h"
36class ReSID final :
public SubComponent,
public Inspectable<SIDInfo> {
40 Descriptions descriptions = {{
43 .description =
"ReSID Backend"
51 mutable VoiceInfo voiceInfo[3] = { };
56 reSID::SID::State st = { };
59 SIDRevision model = SIDRevision(0);
62 u32 clockFrequency = 0;
65 double sampleRate = 0;
68 SamplingMethod samplingMethod = SamplingMethod(0);
71 bool emulateFilter =
true;
80 ReSID(C64 &ref, isize
id);
83 ReSID& operator= (
const ReSID& other) {
102 void serialize(T& worker)
104 if (isResetter(worker))
return;
116 << st.shift_register_reset
119 << st.floating_output_ttl
121 << st.rate_counter_period
122 << st.exponential_counter
123 << st.exponential_counter_period
124 << st.envelope_counter
127 << st.envelope_pipeline
135 void operator << (SerResetter &worker)
override { serialize(worker); }
136 void operator << (SerChecker &worker)
override { }
137 void operator << (SerCounter &worker)
override { serialize(worker); }
138 void operator << (SerReader &worker)
override;
139 void operator << (SerWriter &worker)
override;
148 const Descriptions &getDescriptions()
const override {
return descriptions; }
152 void _reset(
bool hard)
override;
161 virtual void record()
const override;
162 void cacheInfo(SIDInfo &result)
const override;
171 u32 getClockFrequency()
const;
172 void setClockFrequency(u32 frequency);
174 SIDRevision getRevision()
const;
175 void setRevision(SIDRevision m);
177 double getSampleRate()
const {
return sampleRate; }
178 void setSampleRate(
double rate);
180 bool getAudioFilter()
const {
return emulateFilter; }
181 void setAudioFilter(
bool enable);
183 SamplingMethod getSamplingMethod()
const;
184 void setSamplingMethod(SamplingMethod value);
193 void _dump(Category category, std::ostream& os)
const override;
204 void poke(u16 addr, u8 value);
215 isize executeCycles(isize numCycles, SampleStream &stream);
216 isize executeCycles(isize numCycles);
VirtualC64 project namespace.
Definition CmdQueue.cpp:16