diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/apps/tree.c b/apps/tree.c index b11d28f1f8..5efacd5993 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -57,10 +57,11 @@ | |||
57 | #include "filetypes.h" | 57 | #include "filetypes.h" |
58 | #include "misc.h" | 58 | #include "misc.h" |
59 | #include "filetree.h" | 59 | #include "filetree.h" |
60 | #include "dbtree.h" | 60 | #include "tagtree.h" |
61 | #include "recorder/recording.h" | 61 | #include "recorder/recording.h" |
62 | #include "rtc.h" | 62 | #include "rtc.h" |
63 | #include "dircache.h" | 63 | #include "dircache.h" |
64 | #include "tagcache.h" | ||
64 | #include "yesno.h" | 65 | #include "yesno.h" |
65 | 66 | ||
66 | /* gui api */ | 67 | /* gui api */ |
@@ -164,7 +165,8 @@ char * tree_get_filename(int selected_item, void * data, char *buffer) | |||
164 | bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; | 165 | bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; |
165 | 166 | ||
166 | if (id3db) { | 167 | if (id3db) { |
167 | name = ((char**)local_tc->dircache)[selected_item * local_tc->dentry_size]; | 168 | char **buf = local_tc->dircache; |
169 | name = buf[selected_item * (local_tc->dentry_size/sizeof(int))]; | ||
168 | } | 170 | } |
169 | else { | 171 | else { |
170 | struct entry* dc = local_tc->dircache; | 172 | struct entry* dc = local_tc->dircache; |
@@ -189,7 +191,7 @@ void tree_get_fileicon(int selected_item, void * data, ICON * icon) | |||
189 | struct tree_context * local_tc=(struct tree_context *)data; | 191 | struct tree_context * local_tc=(struct tree_context *)data; |
190 | bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; | 192 | bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; |
191 | if (id3db) { | 193 | if (id3db) { |
192 | *icon = (ICON)db_get_icon(&tc); | 194 | *icon = (ICON)tagtree_get_icon(&tc); |
193 | } | 195 | } |
194 | else { | 196 | else { |
195 | struct entry* dc = local_tc->dircache; | 197 | struct entry* dc = local_tc->dircache; |
@@ -267,6 +269,7 @@ struct tree_context* tree_get_context(void) | |||
267 | int tree_get_file_position(char * filename) | 269 | int tree_get_file_position(char * filename) |
268 | { | 270 | { |
269 | int i; | 271 | int i; |
272 | |||
270 | /* use lastfile to determine the selected item (default=0) */ | 273 | /* use lastfile to determine the selected item (default=0) */ |
271 | for (i=0; i < tc.filesindir; i++) | 274 | for (i=0; i < tc.filesindir; i++) |
272 | { | 275 | { |
@@ -292,7 +295,7 @@ static int update_dir(void) | |||
292 | tc.currextra != lastextra || | 295 | tc.currextra != lastextra || |
293 | tc.firstpos != lastfirstpos) | 296 | tc.firstpos != lastfirstpos) |
294 | { | 297 | { |
295 | if (db_load(&tc) < 0) | 298 | if (tagtree_load(&tc) < 0) |
296 | return -1; | 299 | return -1; |
297 | 300 | ||
298 | lasttable = tc.currtable; | 301 | lasttable = tc.currtable; |
@@ -494,7 +497,7 @@ static bool check_changed_id3mode(bool currmode) | |||
494 | currmode = global_settings.dirfilter == SHOW_ID3DB; | 497 | currmode = global_settings.dirfilter == SHOW_ID3DB; |
495 | if (currmode) { | 498 | if (currmode) { |
496 | curr_context=CONTEXT_ID3DB; | 499 | curr_context=CONTEXT_ID3DB; |
497 | db_load(&tc); | 500 | tagtree_load(&tc); |
498 | } | 501 | } |
499 | else | 502 | else |
500 | { | 503 | { |
@@ -600,7 +603,7 @@ static bool dirbrowse(void) | |||
600 | if ( numentries == 0 ) | 603 | if ( numentries == 0 ) |
601 | break; | 604 | break; |
602 | 605 | ||
603 | switch (id3db?db_enter(&tc):ft_enter(&tc)) | 606 | switch (id3db?tagtree_enter(&tc):ft_enter(&tc)) |
604 | { | 607 | { |
605 | case 1: reload_dir = true; break; | 608 | case 1: reload_dir = true; break; |
606 | case 2: start_wps = true; break; | 609 | case 2: start_wps = true; break; |
@@ -624,7 +627,7 @@ static bool dirbrowse(void) | |||
624 | break; | 627 | break; |
625 | 628 | ||
626 | if (id3db) | 629 | if (id3db) |
627 | db_exit(&tc); | 630 | tagtree_exit(&tc); |
628 | else | 631 | else |
629 | if (ft_exit(&tc) == 3) | 632 | if (ft_exit(&tc) == 3) |
630 | exit_func = true; | 633 | exit_func = true; |
@@ -732,6 +735,7 @@ static bool dirbrowse(void) | |||
732 | restore = true; | 735 | restore = true; |
733 | 736 | ||
734 | id3db = check_changed_id3mode(id3db); | 737 | id3db = check_changed_id3mode(id3db); |
738 | reload_dir = true; | ||
735 | break; | 739 | break; |
736 | } | 740 | } |
737 | 741 | ||
@@ -772,7 +776,7 @@ static bool dirbrowse(void) | |||
772 | case songs4artist: | 776 | case songs4artist: |
773 | case searchsongs: | 777 | case searchsongs: |
774 | attr=TREE_ATTR_MPA; | 778 | attr=TREE_ATTR_MPA; |
775 | db_get_filename(&tc, buf, sizeof(buf)); | 779 | tagtree_get_filename(&tc, buf, sizeof(buf)); |
776 | break; | 780 | break; |
777 | } | 781 | } |
778 | } | 782 | } |
@@ -906,6 +910,7 @@ static bool dirbrowse(void) | |||
906 | lastextra = -1; | 910 | lastextra = -1; |
907 | reload_root = false; | 911 | reload_root = false; |
908 | } | 912 | } |
913 | |||
909 | if (! reload_dir ) | 914 | if (! reload_dir ) |
910 | { | 915 | { |
911 | gui_synclist_select_item(&tree_lists, 0); | 916 | gui_synclist_select_item(&tree_lists, 0); |
@@ -935,6 +940,7 @@ static bool dirbrowse(void) | |||
935 | need_update = true; | 940 | need_update = true; |
936 | reload_dir = false; | 941 | reload_dir = false; |
937 | } | 942 | } |
943 | |||
938 | if(need_update) { | 944 | if(need_update) { |
939 | tc.selected_item = gui_synclist_get_sel_pos(&tree_lists); | 945 | tc.selected_item = gui_synclist_get_sel_pos(&tree_lists); |
940 | need_update=false; | 946 | need_update=false; |
@@ -1177,8 +1183,6 @@ void tree_init(void) | |||
1177 | memset(&tc, 0, sizeof(tc)); | 1183 | memset(&tc, 0, sizeof(tc)); |
1178 | tc.dirfilter = &global_settings.dirfilter; | 1184 | tc.dirfilter = &global_settings.dirfilter; |
1179 | 1185 | ||
1180 | tagdb_init(); | ||
1181 | |||
1182 | tc.name_buffer_size = AVERAGE_FILENAME_LENGTH * max_files; | 1186 | tc.name_buffer_size = AVERAGE_FILENAME_LENGTH * max_files; |
1183 | tc.name_buffer = buffer_alloc(tc.name_buffer_size); | 1187 | tc.name_buffer = buffer_alloc(tc.name_buffer_size); |
1184 | 1188 | ||
@@ -1331,9 +1335,9 @@ void ft_play_filename(char *dir, char *file) | |||
1331 | /* These two functions are called by the USB and shutdown handlers */ | 1335 | /* These two functions are called by the USB and shutdown handlers */ |
1332 | void tree_flush(void) | 1336 | void tree_flush(void) |
1333 | { | 1337 | { |
1334 | rundb_shutdown(); | 1338 | tagcache_stop_scan(); |
1335 | tagdb_shutdown(); | ||
1336 | playlist_shutdown(); | 1339 | playlist_shutdown(); |
1340 | |||
1337 | #ifdef HAVE_DIRCACHE | 1341 | #ifdef HAVE_DIRCACHE |
1338 | if (global_settings.dircache) | 1342 | if (global_settings.dircache) |
1339 | { | 1343 | { |
@@ -1351,8 +1355,6 @@ void tree_flush(void) | |||
1351 | 1355 | ||
1352 | void tree_restore(void) | 1356 | void tree_restore(void) |
1353 | { | 1357 | { |
1354 | tagdb_init(); | ||
1355 | rundb_init(); | ||
1356 | #ifdef HAVE_DIRCACHE | 1358 | #ifdef HAVE_DIRCACHE |
1357 | if (global_settings.dircache) | 1359 | if (global_settings.dircache) |
1358 | { | 1360 | { |
@@ -1376,5 +1378,6 @@ void tree_restore(void) | |||
1376 | gui_textarea_clear(&screens[i]); | 1378 | gui_textarea_clear(&screens[i]); |
1377 | } | 1379 | } |
1378 | } | 1380 | } |
1381 | tagcache_start_scan(); | ||
1379 | #endif | 1382 | #endif |
1380 | } | 1383 | } |