summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2024-07-28 16:45:43 -0400
committerSolomon Peachy <pizza@shaftnet.org>2024-07-28 17:01:53 -0400
commit86bff6214df36816abf760b3ec742dfdb4d62566 (patch)
tree548e47c9b577aab13c1b4bacc469bbf83162d2ed /apps
parent78283bda64ee09502029cd2eee459fef1bd31385 (diff)
downloadrockbox-86bff6214df36816abf760b3ec742dfdb4d62566.tar.gz
rockbox-86bff6214df36816abf760b3ec742dfdb4d62566.zip
properties: Use talk_fullpath() for voicing directory names
Change-Id: Ib40c881e7b3053e7e4ef5c5adbe5c3bfec27efed
Diffstat (limited to 'apps')
-rw-r--r--apps/plugin.c2
-rw-r--r--apps/plugin.h2
-rw-r--r--apps/plugins/properties.c22
3 files changed, 6 insertions, 20 deletions
diff --git a/apps/plugin.c b/apps/plugin.c
index 20b438999b..b45b25f7ff 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -840,6 +840,8 @@ static const struct plugin_api rockbox_api = {
840 840
841 /* new stuff at the end, sort into place next time 841 /* new stuff at the end, sort into place next time
842 the API gets incompatible */ 842 the API gets incompatible */
843
844 talk_fullpath,
843}; 845};
844 846
845static int plugin_buffer_handle; 847static int plugin_buffer_handle;
diff --git a/apps/plugin.h b/apps/plugin.h
index 135a068898..af8a65c5de 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -977,6 +977,8 @@ struct plugin_api {
977#endif 977#endif
978 /* new stuff at the end, sort into place next time 978 /* new stuff at the end, sort into place next time
979 the API gets incompatible */ 979 the API gets incompatible */
980
981 int (*talk_fullpath)(const char* path, bool enqueue);
980}; 982};
981 983
982/* plugin header */ 984/* plugin header */
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c
index 2f18d94d9f..4647216390 100644
--- a/apps/plugins/properties.c
+++ b/apps/plugins/properties.c
@@ -175,25 +175,7 @@ static int speak_property_selection(int selected_item, void *data)
175 switch (id) 175 switch (id)
176 { 176 {
177 case LANG_PROPERTIES_PATH: 177 case LANG_PROPERTIES_PATH:
178 if (str_dirname[0] == '/') 178 rb->talk_fullpath(str_dirname, true);
179 {
180 char *start = str_dirname;
181 char *ptr;
182 while (0 != (ptr = rb->strchr(start, '/')))
183 {
184 *ptr = '\0';
185 rb->talk_dir_or_spell(str_dirname, NULL, true);
186 *ptr = '/';
187 rb->talk_id(VOICE_CHAR_SLASH, true);
188 start = ptr + 1;
189 }
190 if (*start)
191 rb->talk_dir_or_spell(str_dirname, NULL, true);
192 }
193 else
194 {
195 rb->talk_spell(str_dirname, true);
196 }
197 break; 179 break;
198 case LANG_PROPERTIES_FILENAME: 180 case LANG_PROPERTIES_FILENAME:
199 rb->talk_file_or_spell(str_dirname, str_filename, NULL, true); 181 rb->talk_file_or_spell(str_dirname, str_filename, NULL, true);
@@ -230,7 +212,7 @@ static void setup_properties_list(struct dir_stats *stats)
230 nb_props = NUM_PLAYLIST_PROPERTIES; 212 nb_props = NUM_PLAYLIST_PROPERTIES;
231 else 213 else
232 nb_props = NUM_DIR_PROPERTIES; 214 nb_props = NUM_DIR_PROPERTIES;
233 215
234 rb->gui_synclist_init(&properties_lists, &get_props, stats, false, 2, NULL); 216 rb->gui_synclist_init(&properties_lists, &get_props, stats, false, 2, NULL);
235 rb->gui_synclist_set_title(&properties_lists, 217 rb->gui_synclist_set_title(&properties_lists,
236 rb->str(props_type == PROPS_DIR ? 218 rb->str(props_type == PROPS_DIR ?