libsidplayfp  1.8.7
Public Types | Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
sidemu Class Referenceabstract

#include <sidemu.h>

Inheritance diagram for sidemu:
c64sid Bank component HardSID ReSID ReSIDfp

Public Types

enum  { OUTPUTBUFFERSIZE = 5000 }
 

Public Member Functions

 sidemu (sidbuilder *builder)
 
virtual void clock ()=0
 
virtual bool lock (EventContext *env)
 
virtual void unlock ()
 
virtual void voice (unsigned int num, bool mute)=0
 
virtual void model (SidConfig::sid_model_t model)=0
 
virtual void sampling (float systemfreq SID_UNUSED, float outputfreq SID_UNUSED, SidConfig::sampling_method_t method SID_UNUSED, bool fast SID_UNUSED)
 
const char * error () const
 
sidbuilderbuilder () const
 
int bufferpos () const
 
void bufferpos (int pos)
 
short * buffer () const
 
void poke (uint_least16_t address, uint8_t value)
 
uint8_t peek (uint_least16_t address)
 
- Public Member Functions inherited from c64sid
virtual void reset (uint8_t volume)=0
 
void reset ()
 

Protected Attributes

EventContextm_context
 
event_clock_t m_accessClk
 
short * m_buffer
 The sample buffer.
 
int m_bufferpos
 Current position in buffer.
 
bool m_status
 
bool m_locked
 
std::string m_error
 

Static Protected Attributes

static std::string m_credit
 
static const char ERR_UNSUPPORTED_FREQ [] = "Unable to set desired output frequency."
 
static const char ERR_INVALID_SAMPLING [] = "Invalid sampling method."
 
static const char ERR_INVALID_CHIP [] = "Invalid chip model."
 

Additional Inherited Members

- Protected Member Functions inherited from component
virtual uint8_t read (uint_least8_t addr)=0
 
virtual void write (uint_least8_t addr, uint8_t data)=0
 

Detailed Description

Inherit this class to create a new SID emulation.

Member Enumeration Documentation

§ anonymous enum

anonymous enum

Buffer size. 5000 is roughly 5 ms at 96 kHz

Member Function Documentation

§ buffer()

short* sidemu::buffer ( ) const
inline

Get the buffer.

§ bufferpos() [1/2]

int sidemu::bufferpos ( ) const
inline

Get the current position in buffer.

§ bufferpos() [2/2]

void sidemu::bufferpos ( int  pos)
inline

Set the position in buffer.

§ clock()

virtual void sidemu::clock ( )
pure virtual

Clock the SID chip.

Implemented in HardSID, ReSID, and ReSIDfp.

§ error()

const char* sidemu::error ( ) const
inline

Get a detailed error message.

§ lock()

bool sidemu::lock ( EventContext env)
virtual

Set execution environment and lock sid to it.

Reimplemented in HardSID.

§ model()

virtual void sidemu::model ( SidConfig::sid_model_t  model)
pure virtual

Set SID model.

Implemented in HardSID, ReSID, and ReSIDfp.

§ peek()

uint8_t sidemu::peek ( uint_least16_t  address)
inlinevirtual

Bank read. You probably should override this method, except if the Bank is only used in write context.

Parameters
addressvalue to read from
Returns
value at address

Reimplemented from c64sid.

§ poke()

void sidemu::poke ( uint_least16_t  address,
uint8_t  value 
)
inlinevirtual

Bank write.

Override this method if you expect write operations on your bank. Leave unimplemented if it's logically/operationally impossible for writes to ever arrive to bank.

Parameters
addressaddress to write to
valuevalue to write

Reimplemented from c64sid.

§ sampling()

virtual void sidemu::sampling ( float systemfreq  SID_UNUSED,
float outputfreq  SID_UNUSED,
SidConfig::sampling_method_t method  SID_UNUSED,
bool fast  SID_UNUSED 
)
inlinevirtual

Set the sampling method.

Parameters
systemfreq
outputfreq
method
fast

§ unlock()

void sidemu::unlock ( )
virtual

Unlock sid.

Reimplemented in HardSID.

§ voice()

virtual void sidemu::voice ( unsigned int  num,
bool  mute 
)
pure virtual

Mute/unmute voice.

Implemented in HardSID, ReSID, and ReSIDfp.


The documentation for this class was generated from the following files: