From: Toni Wilen Date: Sat, 9 Jun 2018 07:04:01 +0000 (+0300) Subject: Unallocate everything when reset/restart. X-Git-Tag: 4000~25 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=976921a668d5ab497ae0aefa505edc0307cfa59a;p=francis%2Fwinuae.git Unallocate everything when reset/restart. --- diff --git a/sndboard.cpp b/sndboard.cpp index fad50b93..962769fc 100644 --- a/sndboard.cpp +++ b/sndboard.cpp @@ -1404,6 +1404,8 @@ static void codec_start(void) static void codec_stop(void) { struct toccata_data *data = &toccata[0]; + if (!data->toccata_active) + return; write_log(_T("TOCCATA stop\n")); data->toccata_active = 0; sndboard_free_capture(); @@ -1793,25 +1795,25 @@ bool sndboard_init(struct autoconfig_info *aci) return true; } -void sndboard_free(void) +void sndboard_reset(void) { struct toccata_data *data = &toccata[0]; - data->enabled = false; + data->ch_sample[0] = 0; + data->ch_sample[1] = 0; + codec_stop(); data->toccata_irq = 0; - data->rc = NULL; + if (data->streamid > 0) + audio_enable_stream(false, data->streamid, 0, NULL); + data->streamid = 0; sndboard_rethink(); mapped_free(&toccata_bank); } -void sndboard_reset(void) +void sndboard_free(void) { + sndboard_reset(); struct toccata_data *data = &toccata[0]; - data->ch_sample[0] = 0; - data->ch_sample[1] = 0; - audio_enable_stream(false, data->streamid, 0, NULL); - data->streamid = 0; - sndboard_rethink(); - mapped_free(&toccata_bank); + data->rc = NULL; } struct fm801_data