mirror of https://github.com/bsnes-emu/bsnes.git
28 lines
706 B
C++
28 lines
706 B
C++
static auto dsp_state_save(unsigned char** out, void* in, size_t size) -> void {
|
|
memcpy(*out, in, size);
|
|
*out += size;
|
|
}
|
|
|
|
static auto dsp_state_load(unsigned char** in, void* out, size_t size) -> void {
|
|
memcpy(out, *in, size);
|
|
*in += size;
|
|
}
|
|
|
|
auto DSP::serialize(serializer &s) -> void {
|
|
Thread::serialize(s);
|
|
s.array(samplebuffer);
|
|
|
|
unsigned char state[SPC_DSP::state_size];
|
|
unsigned char *p = state;
|
|
memset(&state, 0, SPC_DSP::state_size);
|
|
if(s.mode() == serializer::Save) {
|
|
spc_dsp.copy_state(&p, dsp_state_save);
|
|
s.array(state);
|
|
} else if(s.mode() == serializer::Load) {
|
|
s.array(state);
|
|
spc_dsp.copy_state(&p, dsp_state_load);
|
|
} else {
|
|
s.array(state);
|
|
}
|
|
}
|