libsidplayfp 2.12.0
libsidplayfp::sidemu Class Referenceabstract

#include <sidemu.h>

Inheritance diagram for libsidplayfp::sidemu:
Collaboration diagram for libsidplayfp::sidemu:

Public Member Functions

 sidemu (sidbuilder *builder)
virtual void clock ()=0
virtual bool lock (EventScheduler *scheduler)
virtual void unlock ()
void voice (unsigned int voice, bool mute)
void filter (bool enable)
virtual void model (SidConfig::sid_model_t model, bool digiboost)=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
Public Member Functions inherited from libsidplayfp::c64sid
virtual void reset (uint8_t volume)=0
void reset ()
void poke (uint_least16_t address, uint8_t value) override
uint8_t peek (uint_least16_t address) override
void getStatus (uint8_t regs[0x20]) const

Static Public Attributes

static constexpr unsigned int OUTPUTBUFFERSIZE = 5000
 Buffer size. 5000 is roughly 5 ms at 96 kHz.

Protected Member Functions

virtual void write (uint_least8_t addr, uint8_t data)=0
void writeReg (uint_least8_t addr, uint8_t data) override final
Protected Member Functions inherited from libsidplayfp::c64sid
virtual uint8_t read (uint_least8_t addr)=0

Protected Attributes

EventSchedulereventScheduler = nullptr
event_clock_t m_accessClk = 0
short * m_buffer = nullptr
 The sample buffer.
int m_bufferpos = 0
 Current position in buffer.
bool m_status = true
bool isLocked = false
bool isFilterDisabled = false
std::bitset< 4 > isMuted
 Flags for muted voices.
std::string m_error

Static Protected Attributes

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."

Detailed Description

Inherit this class to create a new SID emulation.

Member Function Documentation

◆ buffer()

short * libsidplayfp::sidemu::buffer ( ) const
inline

Get the buffer.

◆ bufferpos() [1/2]

int libsidplayfp::sidemu::bufferpos ( ) const
inline

Get the current position in buffer.

◆ bufferpos() [2/2]

void libsidplayfp::sidemu::bufferpos ( int pos)
inline

Set the position in buffer.

◆ clock()

virtual void libsidplayfp::sidemu::clock ( )
pure virtual

◆ error()

const char * libsidplayfp::sidemu::error ( ) const
inline

Get a detailed error message.

◆ filter()

void libsidplayfp::sidemu::filter ( bool enable)

Enable/disable filter.

◆ lock()

bool libsidplayfp::sidemu::lock ( EventScheduler * scheduler)
virtual

Set execution environment and lock sid to it.

Reimplemented in libsidplayfp::exSID, and libsidplayfp::HardSID.

◆ model()

virtual void libsidplayfp::sidemu::model ( SidConfig::sid_model_t model,
bool digiboost )
pure virtual

◆ sampling()

virtual void libsidplayfp::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 libsidplayfp::sidemu::unlock ( )
virtual

Unlock sid.

Reimplemented in libsidplayfp::exSID, and libsidplayfp::HardSID.

◆ voice()

void libsidplayfp::sidemu::voice ( unsigned int voice,
bool mute )

Mute/unmute voice.

Parameters
voiceSID voice channels from 0 to 2, or 3 for samples
mutetrue to mute channel

◆ writeReg()

void libsidplayfp::sidemu::writeReg ( uint_least8_t addr,
uint8_t data )
finaloverrideprotectedvirtual

Implements libsidplayfp::c64sid.


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