18 #ifndef _sidbuilder_h_
19 #define _sidbuilder_h_
21 #include "sid2types.h"
22 #include "component.h"
39 : m_builder (builder) {;}
43 void reset () { reset (0); }
44 virtual void reset (uint8_t volume) = 0;
45 virtual uint8_t read (uint_least8_t addr) = 0;
46 virtual void write (uint_least8_t addr, uint8_t data) = 0;
47 virtual void clock() = 0;
48 virtual const char *credits (
void) = 0;
51 virtual void voice (uint_least8_t num,
bool mute) = 0;
52 sidbuilder *builder (
void)
const {
return m_builder; }
54 virtual int bufferpos() {
return m_bufferpos; }
55 virtual void bufferpos(
int pos) { m_bufferpos = pos; }
56 virtual short *buffer() {
return m_buffer; }
58 virtual void sampling(
float systemfreq,
float outputfreq,
59 const sampling_method_t method,
const bool fast) {
return; }
65 const char *
const m_name;
72 : m_name(name), m_status (
true) {;}
75 virtual sidemu *lock (
c64env *env, sid2_model_t model) = 0;
76 virtual void unlock (
sidemu *device) = 0;
77 const char *name (
void)
const {
return m_name; }
78 virtual const char *error (
void)
const = 0;
79 virtual const char *credits (
void) = 0;
80 virtual void filter (
bool enable) = 0;
83 operator bool()
const {
return m_status; }
86 #endif // _sidbuilder_h_