diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2024-07-28 16:45:43 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2024-07-28 17:01:53 -0400 |
commit | 86bff6214df36816abf760b3ec742dfdb4d62566 (patch) | |
tree | 548e47c9b577aab13c1b4bacc469bbf83162d2ed | |
parent | 78283bda64ee09502029cd2eee459fef1bd31385 (diff) | |
download | rockbox-86bff6214df36816abf760b3ec742dfdb4d62566.tar.gz rockbox-86bff6214df36816abf760b3ec742dfdb4d62566.zip |
properties: Use talk_fullpath() for voicing directory names
Change-Id: Ib40c881e7b3053e7e4ef5c5adbe5c3bfec27efed
-rw-r--r-- | apps/plugin.c | 2 | ||||
-rw-r--r-- | apps/plugin.h | 2 | ||||
-rw-r--r-- | apps/plugins/properties.c | 22 |
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 | ||
845 | static int plugin_buffer_handle; | 847 | static 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 ? |