From 72c65d7575cdf9277a27a5baf18eb013c629d223 Mon Sep 17 00:00:00 2001 From: Dan Everton Date: Wed, 17 Jun 2009 07:55:50 +0000 Subject: [PATCH] Commit FS#10324 from Jeffrey Goode. Close the debug audio stream in the simulator when playback is stopped to allow the file to be opened by other programs. This would mostly have been an issue on Windows. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21315 a1c6a512-1295-4272-9138-f99709370657 --- docs/CREDITS | 1 + uisimulator/sdl/sound.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/CREDITS b/docs/CREDITS index ce2f0ed3f8..74774f1098 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -471,6 +471,7 @@ Vytenis Sabelka Nicolas Pitre Benedikt Goos Frederick Full +Jeffrey Goode The libmad team The wavpack team diff --git a/uisimulator/sdl/sound.c b/uisimulator/sdl/sound.c index 39abc85aca..428983a1b8 100644 --- a/uisimulator/sdl/sound.c +++ b/uisimulator/sdl/sound.c @@ -96,6 +96,11 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { SDL_PauseAudio(1); + if (udata.debug != NULL) { + fclose(udata.debug); + udata.debug = NULL; + DEBUGF("Audio debug file closed\n"); + } } void pcm_play_dma_pause(bool pause) @@ -113,6 +118,11 @@ size_t pcm_get_bytes_waiting(void) extern int sim_volume; /* in firmware/sound.c */ void write_to_soundcard(struct pcm_udata *udata) { + if (debug_audio && (udata->debug == NULL)) { + udata->debug = fopen("audiodebug.raw", "ab"); + DEBUGF("Audio debug file open\n"); + } + if (cvt.needed) { Uint32 rd = udata->num_in; Uint32 wr = (double)rd * cvt.len_ratio; @@ -292,8 +302,9 @@ void pcm_play_dma_init(void) if (debug_audio) { udata.debug = fopen("audiodebug.raw", "wb"); + DEBUGF("Audio debug file open\n"); } - + /* Set 16-bit stereo audio at 44Khz */ wanted_spec.freq = 44100; wanted_spec.format = AUDIO_S16SYS;