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

#include <Nes_Fme7_Apu.h>

Inheritance diagram for Nes_Fme7_Apu:
fme7_apu_state_t

Public Types

enum  { osc_count = 3 }
enum  { addr_mask = 0xE000 }
enum  { data_addr = 0xE000 }
enum  { latch_addr = 0xC000 }

Public Member Functions

void reset ()
void volume (double)
void treble_eq (blip_eq_t const &)
void output (Blip_Buffer *)
void osc_output (int index, Blip_Buffer *)
void end_frame (blip_time_t)
void save_state (fme7_apu_state_t *) const
void load_state (fme7_apu_state_t const &)
void write_latch (int)
void write_data (blip_time_t, int data)
 Nes_Fme7_Apu ()

Private Types

enum  { amp_range = 192 }
Private Types inherited from fme7_apu_state_t
enum  { reg_count = 14 }

Private Member Functions

 Nes_Fme7_Apu (const Nes_Fme7_Apu &)
Nes_Fme7_Apuoperator= (const Nes_Fme7_Apu &)
void run_until (blip_time_t)

Private Attributes

struct { 
   Blip_Buffer *   output 
   int   last_amp 
oscs [osc_count]
blip_time_t last_time
Blip_Synth< blip_good_quality, 1 > synth
Private Attributes inherited from fme7_apu_state_t
uint8_t regs [reg_count]
uint8_t phases [3]
uint8_t latch
uint16_t delays [3]

Static Private Attributes

static unsigned char const amp_table [16]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
latch_addr 

◆ anonymous enum

anonymous enum
Enumerator
addr_mask 

◆ anonymous enum

anonymous enum
Enumerator
osc_count 

◆ anonymous enum

anonymous enum
private
Enumerator
amp_range 

◆ anonymous enum

anonymous enum
Enumerator
data_addr 

Constructor & Destructor Documentation

◆ Nes_Fme7_Apu() [1/2]

Nes_Fme7_Apu::Nes_Fme7_Apu ( )
inline

◆ Nes_Fme7_Apu() [2/2]

Nes_Fme7_Apu::Nes_Fme7_Apu ( const Nes_Fme7_Apu & )
private

Member Function Documentation

◆ end_frame()

void Nes_Fme7_Apu::end_frame ( blip_time_t time)
inline

◆ load_state()

void Nes_Fme7_Apu::load_state ( fme7_apu_state_t const & in)
inline

◆ operator=()

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

◆ osc_output()

void Nes_Fme7_Apu::osc_output ( int index,
Blip_Buffer * buf )
inline

◆ output()

void Nes_Fme7_Apu::output ( Blip_Buffer * )

◆ reset()

void Nes_Fme7_Apu::reset ( )

◆ run_until()

void Nes_Fme7_Apu::run_until ( blip_time_t end_time)
private

◆ save_state()

void Nes_Fme7_Apu::save_state ( fme7_apu_state_t * out) const
inline

◆ treble_eq()

void Nes_Fme7_Apu::treble_eq ( blip_eq_t const & eq)
inline

◆ volume()

void Nes_Fme7_Apu::volume ( double v)
inline

◆ write_data()

void Nes_Fme7_Apu::write_data ( blip_time_t time,
int data )
inline

◆ write_latch()

void Nes_Fme7_Apu::write_latch ( int data)
inline

Member Data Documentation

◆ amp_table

unsigned char const Nes_Fme7_Apu::amp_table
staticprivate
Initial value:
=
{
#define ENTRY( n )
ENTRY(0.0000), ENTRY(0.0078), ENTRY(0.0110), ENTRY(0.0156),
ENTRY(0.0221), ENTRY(0.0312), ENTRY(0.0441), ENTRY(0.0624),
ENTRY(0.0883), ENTRY(0.1249), ENTRY(0.1766), ENTRY(0.2498),
ENTRY(0.3534), ENTRY(0.4998), ENTRY(0.7070), ENTRY(1.0000)
}
#define ENTRY(n)

◆ last_amp

int Nes_Fme7_Apu::last_amp

◆ last_time

blip_time_t Nes_Fme7_Apu::last_time
private

◆ [struct]

struct { ... } Nes_Fme7_Apu::oscs[osc_count]

◆ output

void Nes_Fme7_Apu::output
inline

◆ synth

Blip_Synth<blip_good_quality,1> Nes_Fme7_Apu::synth
private

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