LMMS
Loading...
Searching...
No Matches
Gb_Apu Class Reference

#include <Gb_Apu.h>

Inheritance diagram for Gb_Apu:
lmms::GbApuWrapper

Public Types

enum  { osc_count = 4 }
enum  { start_addr = 0xFF10 }
enum  { end_addr = 0xFF3F }
enum  { register_count = end_addr - start_addr + 1 }

Public Member Functions

void volume (double)
void treble_eq (const blip_eq_t &)
void output (Blip_Buffer *mono)
void output (Blip_Buffer *center, Blip_Buffer *left, Blip_Buffer *right)
void osc_output (int index, Blip_Buffer *mono)
void osc_output (int index, Blip_Buffer *center, Blip_Buffer *left, Blip_Buffer *right)
void reset ()
void write_register (blip_time_t, unsigned addr, int data)
int read_register (blip_time_t, unsigned addr)
void end_frame (blip_time_t)
void set_tempo (double)
 Gb_Apu ()

Private Member Functions

 Gb_Apu (const Gb_Apu &)
Gb_Apuoperator= (const Gb_Apu &)
void update_volume ()
void run_until (blip_time_t)
void write_osc (int index, int reg, int data)

Private Attributes

Gb_Oscoscs [osc_count]
blip_time_t next_frame_time
blip_time_t last_time
blip_time_t frame_period
double volume_unit
int frame_count
Gb_Square square1
Gb_Square square2
Gb_Wave wave
Gb_Noise noise
uint8_t regs [register_count]
Gb_Square::Synth square_synth
Gb_Wave::Synth other_synth

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
start_addr 

◆ anonymous enum

anonymous enum
Enumerator
end_addr 

◆ anonymous enum

anonymous enum
Enumerator
register_count 

◆ anonymous enum

anonymous enum
Enumerator
osc_count 

Constructor & Destructor Documentation

◆ Gb_Apu() [1/2]

Gb_Apu::Gb_Apu ( )

◆ Gb_Apu() [2/2]

Gb_Apu::Gb_Apu ( const Gb_Apu & )
private

Member Function Documentation

◆ end_frame()

void Gb_Apu::end_frame ( blip_time_t end_time)

◆ operator=()

Gb_Apu & Gb_Apu::operator= ( const Gb_Apu & )
private

◆ osc_output() [1/2]

void Gb_Apu::osc_output ( int index,
Blip_Buffer * center,
Blip_Buffer * left,
Blip_Buffer * right )

◆ osc_output() [2/2]

void Gb_Apu::osc_output ( int index,
Blip_Buffer * mono )
inline

◆ output() [1/2]

void Gb_Apu::output ( Blip_Buffer * center,
Blip_Buffer * left,
Blip_Buffer * right )

◆ output() [2/2]

void Gb_Apu::output ( Blip_Buffer * mono)
inline

◆ read_register()

int Gb_Apu::read_register ( blip_time_t time,
unsigned addr )

◆ reset()

void Gb_Apu::reset ( )

◆ run_until()

void Gb_Apu::run_until ( blip_time_t end_time)
private

◆ set_tempo()

void Gb_Apu::set_tempo ( double t)

◆ treble_eq()

void Gb_Apu::treble_eq ( const blip_eq_t & eq)

◆ update_volume()

void Gb_Apu::update_volume ( )
private

◆ volume()

void Gb_Apu::volume ( double vol)
inline

◆ write_osc()

void Gb_Apu::write_osc ( int index,
int reg,
int data )
private

◆ write_register()

void Gb_Apu::write_register ( blip_time_t time,
unsigned addr,
int data )

Member Data Documentation

◆ frame_count

int Gb_Apu::frame_count
private

◆ frame_period

blip_time_t Gb_Apu::frame_period
private

◆ last_time

blip_time_t Gb_Apu::last_time
private

◆ next_frame_time

blip_time_t Gb_Apu::next_frame_time
private

◆ noise

Gb_Noise Gb_Apu::noise
private

◆ oscs

Gb_Osc* Gb_Apu::oscs[osc_count]
private

◆ other_synth

Gb_Wave::Synth Gb_Apu::other_synth
private

◆ regs

uint8_t Gb_Apu::regs[register_count]
private

◆ square1

Gb_Square Gb_Apu::square1
private

◆ square2

Gb_Square Gb_Apu::square2
private

◆ square_synth

Gb_Square::Synth Gb_Apu::square_synth
private

◆ volume_unit

double Gb_Apu::volume_unit
private

◆ wave

Gb_Wave Gb_Apu::wave
private

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