libsidplayfp 2.15.0
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
libsidplayfp::sidemu Class Referenceabstract

#include <sidemu.h>

Inheritance diagram for libsidplayfp::sidemu:
Inheritance graph
[legend]
Collaboration diagram for libsidplayfp::sidemu:
Collaboration graph
[legend]

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

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
 
virtual void reset (uint8_t volume)=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::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::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: