From 0aa12a9717cbd73b8cbd3048737dc5d81357a50b Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Sun, 9 Oct 2011 16:19:51 +0000 Subject: Another fix for audio_get_buffer() on hwcodec by Thomas Martitz. Some functions must only be called when audio is already initialized, due to talk <-> audio interdependency, same as on swcodec. This makes hwcodec boot and play music again. Voice menus also working again, talk clips not yet. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30738 a1c6a512-1295-4272-9138-f99709370657 --- apps/mpeg.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'apps/mpeg.c') diff --git a/apps/mpeg.c b/apps/mpeg.c index b7db602120..9048226133 100644 --- a/apps/mpeg.c +++ b/apps/mpeg.c @@ -142,6 +142,7 @@ static bool checked_for_cuesheet = false; static const char mpeg_thread_name[] = "mpeg"; static unsigned int audio_thread_id; +static bool audio_is_initialized; static unsigned int mpeg_errno; static bool playing = false; /* We are playing an MP3 stream */ @@ -558,8 +559,9 @@ unsigned char * audio_get_buffer(bool talk_buf, size_t *buffer_size) { (void)talk_buf; /* always grab the voice buffer for now */ - audio_hard_stop(); - + if (audio_is_initialized) + audio_hard_stop(); + if (!buffer_size) /* special case for talk_init() */ return NULL; @@ -3017,6 +3019,7 @@ void audio_init(void) dbg_cnt2us(0); #endif /* !SIMULATOR */ #endif /* DEBUG */ + audio_is_initialized = true; } #endif /* CONFIG_CODEC != SWCODEC */ -- cgit v1.2.3