summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorStéphane Doyon <s.doyon@videotron.ca>2007-11-07 03:25:33 +0000
committerStéphane Doyon <s.doyon@videotron.ca>2007-11-07 03:25:33 +0000
commita4f491cac1f17dd338ba6d4c39537f5223c988ec (patch)
tree94b0818c6e4ede0cae671535420a5006210038f1 /apps
parentd65f9f15f96892754f482f42de793a427d4fb738 (diff)
downloadrockbox-a4f491cac1f17dd338ba6d4c39537f5223c988ec.tar.gz
rockbox-a4f491cac1f17dd338ba6d4c39537f5223c988ec.zip
Add a setting to control whether or not to speak the file type (r15506).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15508 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/lang/english.lang14
-rw-r--r--apps/menus/settings_menu.c3
-rw-r--r--apps/plugin.h4
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_list.c2
-rw-r--r--apps/tree.c17
6 files changed, 32 insertions, 9 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 232efcbfd0..e79f865bde 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -11462,3 +11462,17 @@
*: "Announce Battery Level"
</voice>
</phrase>
+<phrase>
+ id: LANG_VOICE_FILETYPE
+ desc: voice settings menu
+ user:
+ <source>
+ *: "Say file type"
+ </source>
+ <dest>
+ *: "Say file type"
+ </dest>
+ <voice>
+ *: "Say file type"
+ </voice>
+</phrase>
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index 1cea2b8c53..d1ca4a8d50 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -443,11 +443,12 @@ static int talk_callback(int action,const struct menu_item_ex *this_item)
}
return action;
}
+MENUITEM_SETTING(talk_filetype_item, &global_settings.talk_filetype, NULL);
MENUITEM_SETTING(talk_battery_level_item,
&global_settings.talk_battery_level, NULL);
MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, Icon_Voice,
&talk_menu_item, &talk_dir_item, &talk_dir_clip_item,
- &talk_file_item, &talk_file_clip_item,
+ &talk_file_item, &talk_file_clip_item, &talk_filetype_item,
&talk_battery_level_item);
/* VOICE MENU */
/***********************************/
diff --git a/apps/plugin.h b/apps/plugin.h
index 16333bb092..300cad0781 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -112,12 +112,12 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 87
+#define PLUGIN_API_VERSION 88
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
-#define PLUGIN_MIN_API_VERSION 87
+#define PLUGIN_MIN_API_VERSION 88
/* plugin return codes */
enum plugin_status {
diff --git a/apps/settings.h b/apps/settings.h
index 2f926c91f6..d4498cf721 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -529,6 +529,7 @@ struct user_settings
bool talk_dir_clip; /* use directory .talk clips */
int talk_file; /* voice file mode: 0=off, 1=number, 2=spell */
bool talk_file_clip; /* use file .talk clips */
+ bool talk_filetype; /* say file type */
bool talk_battery_level;
/* file browser sorting */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index def6973378..d1d8905cfd 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -753,6 +753,8 @@ const struct settings_list settings[] = {
ID2P(LANG_OFF), ID2P(LANG_VOICE_NUMBER),
ID2P(LANG_VOICE_SPELL)),
OFFON_SETTING(F_TEMPVAR, talk_file_clip, LANG_VOICE_FILE_TALK, false, "talk file clip", NULL),
+ OFFON_SETTING(F_TEMPVAR, talk_filetype, LANG_VOICE_FILETYPE,
+ false, "talk filetype", NULL),
OFFON_SETTING(F_TEMPVAR, talk_battery_level,
LANG_TALK_BATTERY_LEVEL, false,
"Announce Battery Level", NULL),
diff --git a/apps/tree.c b/apps/tree.c
index 1d1592b4fa..13b0756cbb 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -268,15 +268,19 @@ static int tree_voice_cb(int selected_item, void * data)
talk_id(is_dir ? VOICE_DIR : VOICE_FILE, false);
talk_number(selected_item+1 - (is_dir ? 0 : local_tc->dirsindir),
true);
- if(!is_dir && *local_tc->dirfilter < NUM_FILTER_MODES)
+ if(global_settings.talk_filetype
+ && !is_dir && *local_tc->dirfilter < NUM_FILTER_MODES)
say_filetype(attr);
break;
case 2: /* spelled */
talk_shutup();
- if(is_dir)
- talk_id(VOICE_DIR, true);
- else if(*local_tc->dirfilter < NUM_FILTER_MODES)
- say_filetype(attr);
+ if(global_settings.talk_filetype)
+ {
+ if(is_dir)
+ talk_id(VOICE_DIR, true);
+ else if(*local_tc->dirfilter < NUM_FILTER_MODES)
+ say_filetype(attr);
+ }
talk_spell(name, true);
break;
}
@@ -1208,7 +1212,8 @@ static int ft_play_dirname(char* name)
DEBUGF("Found: %s\n", dirname_mp3_filename);
talk_file(dirname_mp3_filename, false);
- talk_id(VOICE_DIR, true);
+ if(global_settings.talk_filetype)
+ talk_id(VOICE_DIR, true);
return 1;
}