30#include "siddefs-fp.h"
31#include "ExternalFilter.h"
53 const char* getMessage()
const {
return message; }
69 Filter8580*
const filter8580;
72 std::unique_ptr<Resampler> resampler;
93 unsigned int nextVoiceSync;
102 unsigned char busValue;
124 void ageBusValue(
unsigned int n);
132 void voiceSync(
bool sync);
172 void input(
int value);
194 unsigned char read(
int offset);
202 void write(
int offset,
unsigned char value);
229 double clockFrequency,
231 double samplingFrequency
241 int clock(
unsigned int cycles,
short* buf);
286#if RESIDFP_INLINING || defined(SID_CPP)
291#include "resample/Resampler.h"
297void SID::ageBusValue(
unsigned int n)
299 if (likely(busValueTtl != 0))
303 if (unlikely(busValueTtl <= 0))
319 unsigned int delta_t = std::min(nextVoiceSync, cycles);
321 if (likely(delta_t > 0))
323 for (
unsigned int i = 0; i < delta_t; i++)
326 voice[0].wave()->
clock();
327 voice[1].wave()->
clock();
328 voice[2].wave()->
clock();
331 voice[0].envelope()->
clock();
332 voice[1].envelope()->
clock();
333 voice[2].envelope()->
clock();
335 const int sidOutput =
static_cast<int>(filter->
clock(voice[0], voice[1], voice[2]));
336 const int c64Output = externalFilter.
clock(sidOutput + INT16_MIN);
337 if (unlikely(resampler->input(c64Output)))
339 buf[s++] = resampler->getOutput(scaleFactor);
344 nextVoiceSync -= delta_t;
347 if (unlikely(nextVoiceSync == 0))
void clock()
Definition EnvelopeGenerator.h:177
Definition ExternalFilter.h:66
int clock(int input)
Definition ExternalFilter.h:113
Definition Filter6581.h:321
unsigned short clock(Voice &v1, Voice &v2, Voice &v3)
Definition Filter.h:214
int clock(unsigned int cycles, short *buf)
Definition SID.h:312
void setChipModel(ChipModel model)
Definition SID.cpp:215
void input(int value)
Definition SID.cpp:325
unsigned char read(int offset)
Definition SID.cpp:331
void write(int offset, unsigned char value)
Definition SID.cpp:366
void setSamplingParameters(double clockFrequency, SamplingMethod method, double samplingFrequency)
Definition SID.cpp:485
void setFilter6581Range(double adjustment)
Definition SID.cpp:165
ChipModel getChipModel() const
Definition SID.h:149
void setCombinedWaveforms(CombinedWaveforms cws)
Definition SID.cpp:280
void setFilter6581Curve(double filterCurve)
Definition SID.cpp:160
void setFilter8580Curve(double filterCurve)
Definition SID.cpp:170
void enableFilter(bool enable)
Definition SID.cpp:175
void reset()
Definition SID.cpp:304
void clockSilent(unsigned int cycles)
Definition SID.cpp:504
SamplingMethod
Definition residfp_defs.h:67
CombinedWaveforms
Definition residfp_defs.h:62
ChipModel
Definition residfp_defs.h:54