2013-10-26 08:54:06 +00:00
|
|
|
#ifndef _higan_dsp_h_
|
|
|
|
#define _higan_dsp_h_
|
|
|
|
|
|
|
|
#include "SPC_DSP.h"
|
|
|
|
|
|
|
|
#include "blargg_common.h"
|
|
|
|
|
|
|
|
namespace SuperFamicom {
|
|
|
|
|
|
|
|
struct DSP {
|
2013-10-26 18:12:50 +00:00
|
|
|
int64_t clock;
|
2013-10-27 22:00:13 +00:00
|
|
|
unsigned long removed_samples;
|
2013-10-26 08:54:06 +00:00
|
|
|
|
2013-10-27 22:00:13 +00:00
|
|
|
inline void step(uint64_t clocks);
|
2013-10-26 08:54:06 +00:00
|
|
|
|
|
|
|
bool mute();
|
|
|
|
uint8_t read(uint8_t addr);
|
|
|
|
void write(uint8_t addr, uint8_t data);
|
|
|
|
|
|
|
|
void enter();
|
|
|
|
void power();
|
|
|
|
void reset();
|
|
|
|
|
|
|
|
void channel_enable(unsigned channel, bool enable);
|
|
|
|
void disable_surround(bool disable = true);
|
|
|
|
|
|
|
|
DSP(struct SMP&);
|
|
|
|
|
|
|
|
SPC_DSP spc_dsp;
|
|
|
|
|
|
|
|
private:
|
|
|
|
struct SMP & smp;
|
|
|
|
int16_t samplebuffer[8192];
|
|
|
|
bool channel_enabled[8];
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|