diff options
Diffstat (limited to 'apps')
-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 ? |