mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-13 06:01:11 +00:00
50 lines
747 B
C
50 lines
747 B
C
|
// Private oscillators used by Sms_Apu
|
||
|
|
||
|
// Sms_Snd_Emu 0.1.4
|
||
|
#ifndef SMS_OSCS_H
|
||
|
#define SMS_OSCS_H
|
||
|
|
||
|
#include "blargg_common.h"
|
||
|
#include "Blip_Buffer.h"
|
||
|
|
||
|
struct Sms_Osc
|
||
|
{
|
||
|
Blip_Buffer* outputs [4]; // NULL, right, left, center
|
||
|
Blip_Buffer* output;
|
||
|
int output_select;
|
||
|
|
||
|
int delay;
|
||
|
int last_amp;
|
||
|
int volume;
|
||
|
|
||
|
Sms_Osc();
|
||
|
void reset();
|
||
|
};
|
||
|
|
||
|
struct Sms_Square : Sms_Osc
|
||
|
{
|
||
|
int period;
|
||
|
int phase;
|
||
|
|
||
|
typedef Blip_Synth<blip_good_quality,1> Synth;
|
||
|
const Synth* synth;
|
||
|
|
||
|
void reset();
|
||
|
void run( blip_time_t, blip_time_t );
|
||
|
};
|
||
|
|
||
|
struct Sms_Noise : Sms_Osc
|
||
|
{
|
||
|
const int* period;
|
||
|
unsigned shifter;
|
||
|
unsigned feedback;
|
||
|
|
||
|
typedef Blip_Synth<blip_med_quality,1> Synth;
|
||
|
Synth synth;
|
||
|
|
||
|
void reset();
|
||
|
void run( blip_time_t, blip_time_t );
|
||
|
};
|
||
|
|
||
|
#endif
|