diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2006-02-23 21:29:29 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2006-02-23 21:29:29 +0000 |
commit | b1c5676927a4122bc4666205559ce80be679a7ea (patch) | |
tree | 4b65fd1b4b6373e1b60fd103ba3ff5a09693f54c /apps | |
parent | a3cfe0a434fd1ef5e4a59e34499d10cd0211f76b (diff) | |
download | rockbox-b1c5676927a4122bc4666205559ce80be679a7ea.tar.gz rockbox-b1c5676927a4122bc4666205559ce80be679a7ea.zip |
Quick fix to not stop audio playback on .cfg file load unless language setting has changed. (Could be taken one step further to only stop playback if there's been a change in voice file use.)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8817 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/talk.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/apps/talk.c b/apps/talk.c index 07ee93bc16..7e8311e847 100644 --- a/apps/talk.c +++ b/apps/talk.c @@ -23,6 +23,7 @@ #include <stdio.h> #include <stddef.h> +#include <string.h> #include "file.h" #include "buffer.h" #include "system.h" @@ -93,7 +94,7 @@ static unsigned char* p_silence; /* VOICE_PAUSE clip, used for termination */ static long silence_len; /* length of the VOICE_PAUSE clip */ static unsigned char* p_lastclip; /* address of latest clip, for silence add */ static unsigned long voicefile_size = 0; /* size of the loaded voice file */ - +static unsigned char last_lang[MAX_FILENAME+1]; /* name of last used lang file (in talk_init) */ /***************** Private prototypes *****************/ @@ -472,6 +473,15 @@ static void reset_state(void) void talk_init(void) { + if (!strcasecmp(last_lang, global_settings.lang_file)) + { + /* not a new file, nothing to do */ + return; + } + + strncpy((char *) last_lang, (char *)global_settings.lang_file, + MAX_FILENAME); + #if CONFIG_CODEC == SWCODEC audio_stop(); #endif |