summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/SOURCES4
-rw-r--r--apps/debug_menu.c6
-rw-r--r--apps/main.c11
-rw-r--r--apps/main_menu.c7
-rw-r--r--apps/misc.c2
-rw-r--r--apps/onplay.c6
-rw-r--r--apps/playback.c2
-rw-r--r--apps/screens.c2
-rw-r--r--apps/settings.c9
-rw-r--r--apps/settings.h2
-rw-r--r--apps/settings_menu.c13
-rw-r--r--apps/tagcache.h2
-rw-r--r--apps/tagdb/album.c2
-rw-r--r--apps/tagdb/album.h2
-rw-r--r--apps/tagdb/array_buffer.c3
-rw-r--r--apps/tagdb/array_buffer.h2
-rw-r--r--apps/tagdb/artist.c2
-rw-r--r--apps/tagdb/artist.h2
-rw-r--r--apps/tagdb/config.h2
-rw-r--r--apps/tagdb/db.c2
-rw-r--r--apps/tagdb/db.h2
-rw-r--r--apps/tagdb/file.c2
-rw-r--r--apps/tagdb/file.h2
-rw-r--r--apps/tagdb/header.c3
-rw-r--r--apps/tagdb/header.h2
-rw-r--r--apps/tagdb/main.c2
-rw-r--r--apps/tagdb/malloc.c2
-rw-r--r--apps/tagdb/malloc.h2
-rw-r--r--apps/tagdb/parser.c2
-rw-r--r--apps/tagdb/song.c2
-rw-r--r--apps/tagdb/song.h2
-rw-r--r--apps/tagdb/tag_dummy.c2
-rw-r--r--apps/tagdb/tag_dummy.h2
-rw-r--r--apps/tagdb/unique.c2
-rw-r--r--apps/tagdb/unique.h2
-rw-r--r--apps/tagtree.h2
-rw-r--r--apps/tree.c63
-rw-r--r--docs/CREDITS1
-rw-r--r--firmware/export/config-e200.h3
-rw-r--r--firmware/export/config-fmrecorder.h3
-rw-r--r--firmware/export/config-gigabeat.h3
-rw-r--r--firmware/export/config-gmini120.h3
-rw-r--r--firmware/export/config-gminisp.h3
-rw-r--r--firmware/export/config-h10.h3
-rw-r--r--firmware/export/config-h100.h3
-rw-r--r--firmware/export/config-h10_5gb.h2
-rw-r--r--firmware/export/config-h120.h3
-rw-r--r--firmware/export/config-h300.h3
-rw-r--r--firmware/export/config-iaudiox5.h3
-rw-r--r--firmware/export/config-ifp7xx.h3
-rw-r--r--firmware/export/config-ipod3g.h3
-rw-r--r--firmware/export/config-ipod4g.h3
-rw-r--r--firmware/export/config-ipodcolor.h3
-rw-r--r--firmware/export/config-ipodmini.h3
-rwxr-xr-xfirmware/export/config-ipodmini2g.h3
-rw-r--r--firmware/export/config-ipodnano.h3
-rw-r--r--firmware/export/config-ipodvideo.h3
-rw-r--r--firmware/export/config-ondiofm.h3
-rw-r--r--firmware/export/config-ondiosp.h3
-rw-r--r--firmware/export/config-player.h3
-rw-r--r--firmware/export/config-recorder.h3
-rw-r--r--firmware/export/config-recorderv2.h3
-rw-r--r--firmware/export/config.h2
63 files changed, 237 insertions, 16 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index d759e49a6f..570ec6e24a 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -27,7 +27,9 @@ status.c
27talk.c 27talk.c
28#endif 28#endif
29tree.c 29tree.c
30#ifdef HAVE_TAGCACHE
30tagtree.c 31tagtree.c
32#endif
31filetree.c 33filetree.c
32scrobbler.c 34scrobbler.c
33 35
@@ -82,7 +84,9 @@ eq_arm.S
82eq_menu.c 84eq_menu.c
83#endif 85#endif
84metadata.c 86metadata.c
87#ifdef HAVE_TAGCACHE
85tagcache.c 88tagcache.c
89#endif
86#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ 90#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \
87 || (CONFIG_KEYPAD == IRIVER_H300_PAD) 91 || (CONFIG_KEYPAD == IRIVER_H300_PAD)
88keymaps/keymap-h1x0_h3x0.c 92keymaps/keymap-h1x0_h3x0.c
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 5243519c2c..806744b404 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -41,7 +41,9 @@
41#include "misc.h" 41#include "misc.h"
42#include "splash.h" 42#include "splash.h"
43#include "dircache.h" 43#include "dircache.h"
44#ifdef HAVE_TAGCACHE
44#include "tagcache.h" 45#include "tagcache.h"
46#endif
45#include "lcd-remote.h" 47#include "lcd-remote.h"
46#include "crc32.h" 48#include "crc32.h"
47#include "logf.h" 49#include "logf.h"
@@ -1917,6 +1919,7 @@ static bool dbg_dircache_info(void)
1917#endif /* HAVE_DIRCACHE */ 1919#endif /* HAVE_DIRCACHE */
1918 1920
1919#ifdef HAVE_LCD_BITMAP 1921#ifdef HAVE_LCD_BITMAP
1922#ifdef HAVE_TAGCACHE
1920static bool dbg_tagcache_info(void) 1923static bool dbg_tagcache_info(void)
1921{ 1924{
1922 bool done = false; 1925 bool done = false;
@@ -1960,6 +1963,7 @@ static bool dbg_tagcache_info(void)
1960 return false; 1963 return false;
1961} 1964}
1962#endif 1965#endif
1966#endif
1963 1967
1964#if CONFIG_CPU == SH7034 1968#if CONFIG_CPU == SH7034
1965bool dbg_save_roms(void) 1969bool dbg_save_roms(void)
@@ -2193,7 +2197,9 @@ bool debug_menu(void)
2193 { "View dircache info", dbg_dircache_info }, 2197 { "View dircache info", dbg_dircache_info },
2194#endif 2198#endif
2195#ifdef HAVE_LCD_BITMAP 2199#ifdef HAVE_LCD_BITMAP
2200#ifdef HAVE_TAGCACHE
2196 { "View tagcache info", dbg_tagcache_info }, 2201 { "View tagcache info", dbg_tagcache_info },
2202#endif
2197#if CONFIG_CODEC == SWCODEC || !defined(SIMULATOR) 2203#if CONFIG_CODEC == SWCODEC || !defined(SIMULATOR)
2198 { "View audio thread", dbg_audio_thread }, 2204 { "View audio thread", dbg_audio_thread },
2199#endif 2205#endif
diff --git a/apps/main.c b/apps/main.c
index 838a4859d2..4249fd0b8b 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -60,8 +60,10 @@
60#include "misc.h" 60#include "misc.h"
61#include "database.h" 61#include "database.h"
62#include "dircache.h" 62#include "dircache.h"
63#ifdef HAVE_TAGCACHE
63#include "tagcache.h" 64#include "tagcache.h"
64#include "tagtree.h" 65#include "tagtree.h"
66#endif
65#include "lang.h" 67#include "lang.h"
66#include "string.h" 68#include "string.h"
67#include "splash.h" 69#include "splash.h"
@@ -169,6 +171,7 @@ int init_dircache(bool preinit)
169#endif 171#endif
170} 172}
171 173
174#ifdef HAVE_TAGCACHE
172void init_tagcache(void) 175void init_tagcache(void)
173{ 176{
174 bool clear = false; 177 bool clear = false;
@@ -204,6 +207,7 @@ void init_tagcache(void)
204 show_logo(); 207 show_logo();
205 } 208 }
206} 209}
210#endif
207 211
208#ifdef SIMULATOR 212#ifdef SIMULATOR
209 213
@@ -230,7 +234,9 @@ void init(void)
230 settings_apply(); 234 settings_apply();
231 init_dircache(true); 235 init_dircache(true);
232 init_dircache(false); 236 init_dircache(false);
237#ifdef HAVE_TAGCACHE
233 init_tagcache(); 238 init_tagcache();
239#endif
234 sleep(HZ/2); 240 sleep(HZ/2);
235 tree_init(); 241 tree_init();
236 playlist_init(); 242 playlist_init();
@@ -436,16 +442,19 @@ void init(void)
436#endif 442#endif
437 settings_load(SETTINGS_ALL); 443 settings_load(SETTINGS_ALL);
438 444
439
440 if (init_dircache(true) < 0) 445 if (init_dircache(true) < 0)
441 { 446 {
447#ifdef HAVE_TAGCACHE
442 remove(TAGCACHE_STATEFILE); 448 remove(TAGCACHE_STATEFILE);
449#endif
443 } 450 }
444 451
445 gui_sync_wps_init(); 452 gui_sync_wps_init();
446 settings_apply(); 453 settings_apply();
447 init_dircache(false); 454 init_dircache(false);
455#ifdef HAVE_TAGCACHE
448 init_tagcache(); 456 init_tagcache();
457#endif
449 458
450#ifdef HAVE_EEPROM_SETTINGS 459#ifdef HAVE_EEPROM_SETTINGS
451 if (firmware_settings.initialized) 460 if (firmware_settings.initialized)
diff --git a/apps/main_menu.c b/apps/main_menu.c
index bc9934bf83..0ac4d94753 100644
--- a/apps/main_menu.c
+++ b/apps/main_menu.c
@@ -370,12 +370,7 @@ bool info_menu(void)
370#ifdef HAVE_LCD_CHARCELLS 370#ifdef HAVE_LCD_CHARCELLS
371static bool do_shutdown(void) 371static bool do_shutdown(void)
372{ 372{
373#ifndef SIMULATOR 373 sys_poweroff();
374 if (charger_inserted())
375 charging_splash();
376 else
377#endif
378 sys_poweroff();
379 return false; 374 return false;
380} 375}
381#endif 376#endif
diff --git a/apps/misc.c b/apps/misc.c
index 0936e85569..c36d61914b 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -543,12 +543,14 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter)
543#ifdef X5_BACKLIGHT_SHUTDOWN 543#ifdef X5_BACKLIGHT_SHUTDOWN
544 x5_backlight_shutdown(); 544 x5_backlight_shutdown();
545#endif 545#endif
546#ifdef HAVE_TAGCACHE
546 if (!tagcache_prepare_shutdown()) 547 if (!tagcache_prepare_shutdown())
547 { 548 {
548 cancel_shutdown(); 549 cancel_shutdown();
549 gui_syncsplash(HZ, true, str(LANG_TAGCACHE_BUSY)); 550 gui_syncsplash(HZ, true, str(LANG_TAGCACHE_BUSY));
550 return false; 551 return false;
551 } 552 }
553#endif
552 554
553 gui_syncsplash(0, true, str(LANG_SHUTTINGDOWN)); 555 gui_syncsplash(0, true, str(LANG_SHUTTINGDOWN));
554 556
diff --git a/apps/onplay.c b/apps/onplay.c
index 4fd9d41056..60a737938f 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -64,7 +64,9 @@
64#endif 64#endif
65#include "playlist_menu.h" 65#include "playlist_menu.h"
66#include "playlist_catalog.h" 66#include "playlist_catalog.h"
67#ifdef HAVE_TAGCACHE
67#include "tagtree.h" 68#include "tagtree.h"
69#endif
68 70
69static int context; 71static int context;
70static char* selected_file = NULL; 72static char* selected_file = NULL;
@@ -181,11 +183,13 @@ static bool add_to_playlist(int position, bool queue)
181 if (position == PLAYLIST_INSERT_SHUFFLED) 183 if (position == PLAYLIST_INSERT_SHUFFLED)
182 srand(current_tick); 184 srand(current_tick);
183 185
186#ifdef HAVE_TAGCACHE
184 if (context == CONTEXT_ID3DB) 187 if (context == CONTEXT_ID3DB)
185 { 188 {
186 tagtree_insert_selection_playlist(position, queue); 189 tagtree_insert_selection_playlist(position, queue);
187 } 190 }
188 else 191 else
192#endif
189 { 193 {
190 if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_MPA) 194 if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_MPA)
191 playlist_insert_track(NULL, selected_file, position, queue, true); 195 playlist_insert_track(NULL, selected_file, position, queue, true);
@@ -207,7 +211,7 @@ static bool add_to_playlist(int position, bool queue)
207 else if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_M3U) 211 else if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_M3U)
208 playlist_insert_playlist(NULL, selected_file, position, queue); 212 playlist_insert_playlist(NULL, selected_file, position, queue);
209 } 213 }
210 214
211 if (new_playlist && (playlist_amount() > 0)) 215 if (new_playlist && (playlist_amount() > 0))
212 { 216 {
213 /* nothing is currently playing so begin playing what we just 217 /* nothing is currently playing so begin playing what we just
diff --git a/apps/playback.c b/apps/playback.c
index b68a8b81f1..7b952e6919 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -59,7 +59,9 @@
59#include "buffer.h" 59#include "buffer.h"
60#include "dsp.h" 60#include "dsp.h"
61#include "abrepeat.h" 61#include "abrepeat.h"
62#ifdef HAVE_TAGCACHE
62#include "tagcache.h" 63#include "tagcache.h"
64#endif
63#ifdef HAVE_LCD_BITMAP 65#ifdef HAVE_LCD_BITMAP
64#include "icons.h" 66#include "icons.h"
65#include "peakmeter.h" 67#include "peakmeter.h"
diff --git a/apps/screens.c b/apps/screens.c
index 7836a8eecb..9787e682bc 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -574,7 +574,9 @@ bool quick_screen_quick(int button_enter)
574 [SHOW_SUPPORTED]={ STR(LANG_SYSFONT_FILTER_SUPPORTED) }, 574 [SHOW_SUPPORTED]={ STR(LANG_SYSFONT_FILTER_SUPPORTED) },
575 [SHOW_MUSIC]={ STR(LANG_SYSFONT_FILTER_MUSIC) }, 575 [SHOW_MUSIC]={ STR(LANG_SYSFONT_FILTER_MUSIC) },
576 [SHOW_PLAYLIST]={ STR(LANG_SYSFONT_FILTER_PLAYLIST) }, 576 [SHOW_PLAYLIST]={ STR(LANG_SYSFONT_FILTER_PLAYLIST) },
577#ifdef HAVE_TAGCACHE
577 [SHOW_ID3DB]={ STR(LANG_SYSFONT_FILTER_ID3DB) } 578 [SHOW_ID3DB]={ STR(LANG_SYSFONT_FILTER_ID3DB) }
579#endif
578 }; 580 };
579 static const struct opt_items right_items[] = { 581 static const struct opt_items right_items[] = {
580 [REPEAT_OFF]={ STR(LANG_SYSFONT_OFF) }, 582 [REPEAT_OFF]={ STR(LANG_SYSFONT_OFF) },
diff --git a/apps/settings.c b/apps/settings.c
index 1795f78cf7..9d618ebcb8 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -419,7 +419,11 @@ static const struct bit_entry hd_bits[] =
419 419
420 /* browser */ 420 /* browser */
421 {3, S_O(dirfilter), SHOW_SUPPORTED, 421 {3, S_O(dirfilter), SHOW_SUPPORTED,
422 "show files", "all,supported,music,playlists,id3 database" }, 422 "show files", "all,supported,music,playlists"
423#ifdef HAVE_TAGCACHE
424 ",id3 database"
425#endif
426 },
423 {1, S_O(sort_case), false, "sort case", off_on }, 427 {1, S_O(sort_case), false, "sort case", off_on },
424 {1, S_O(browse_current), false, "follow playlist", off_on }, 428 {1, S_O(browse_current), false, "follow playlist", off_on },
425 /* playlist */ 429 /* playlist */
@@ -593,10 +597,13 @@ static const struct bit_entry hd_bits[] =
593 {1, S_O(dircache), false, "dircache", off_on }, 597 {1, S_O(dircache), false, "dircache", off_on },
594 {22, S_O(dircache_size), 0, NULL, NULL }, 598 {22, S_O(dircache_size), 0, NULL, NULL },
595#endif 599#endif
600
601#ifdef HAVE_TAGCACHE
596#ifdef HAVE_TC_RAMCACHE 602#ifdef HAVE_TC_RAMCACHE
597 {1, S_O(tagcache_ram), 0, "tagcache_ram", off_on }, 603 {1, S_O(tagcache_ram), 0, "tagcache_ram", off_on },
598#endif 604#endif
599 {1, S_O(tagcache_autoupdate), 0, "tagcache_autoupdate", off_on }, 605 {1, S_O(tagcache_autoupdate), 0, "tagcache_autoupdate", off_on },
606#endif
600 607
601 {4, S_O(default_codepage), 0, "default codepage", 608 {4, S_O(default_codepage), 0, "default codepage",
602 "iso8859-1,iso8859-7,iso8859-8,cp1251,iso8859-11,cp1256,iso8859-9,iso8859-2,sjis,gb2312,ksx1001,big5,utf-8,cp1256" }, 609 "iso8859-1,iso8859-7,iso8859-8,cp1251,iso8859-11,cp1256,iso8859-9,iso8859-2,sjis,gb2312,ksx1001,big5,utf-8,cp1256" },
diff --git a/apps/settings.h b/apps/settings.h
index 5fc8c7e5f5..0dca11432c 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -389,10 +389,12 @@ struct user_settings
389 bool dircache; /* enable directory cache */ 389 bool dircache; /* enable directory cache */
390 int dircache_size; /* directory cache structure last size, 22 bits */ 390 int dircache_size; /* directory cache structure last size, 22 bits */
391#endif 391#endif
392#ifdef HAVE_TAGCACHE
392#ifdef HAVE_TC_RAMCACHE 393#ifdef HAVE_TC_RAMCACHE
393 bool tagcache_ram; /* load tagcache to ram? */ 394 bool tagcache_ram; /* load tagcache to ram? */
394#endif 395#endif
395 bool tagcache_autoupdate; /* automatically keep tagcache in sync? */ 396 bool tagcache_autoupdate; /* automatically keep tagcache in sync? */
397#endif
396 int default_codepage; /* set default codepage for tag conversion */ 398 int default_codepage; /* set default codepage for tag conversion */
397#ifdef HAVE_REMOTE_LCD 399#ifdef HAVE_REMOTE_LCD
398 unsigned char rwps_file[MAX_FILENAME+1]; /* last remote-wps */ 400 unsigned char rwps_file[MAX_FILENAME+1]; /* last remote-wps */
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index b66104220f..0cbe5344fb 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -49,8 +49,10 @@
49#include "database.h" 49#include "database.h"
50#include "dir.h" 50#include "dir.h"
51#include "dircache.h" 51#include "dircache.h"
52#ifdef HAVE_TAGCACHE
52#include "tagcache.h" 53#include "tagcache.h"
53#include "tagtree.h" 54#include "tagtree.h"
55#endif
54#include "rbunicode.h" 56#include "rbunicode.h"
55#include "splash.h" 57#include "splash.h"
56#include "yesno.h" 58#include "yesno.h"
@@ -749,10 +751,17 @@ static bool dir_filter(void)
749 { STR(LANG_FILTER_SUPPORTED) }, 751 { STR(LANG_FILTER_SUPPORTED) },
750 { STR(LANG_FILTER_MUSIC) }, 752 { STR(LANG_FILTER_MUSIC) },
751 { STR(LANG_FILTER_PLAYLIST) }, 753 { STR(LANG_FILTER_PLAYLIST) },
754#ifdef HAVE_TAGCACHE
752 { STR(LANG_FILTER_ID3DB) } 755 { STR(LANG_FILTER_ID3DB) }
756#endif
753 }; 757 };
758#ifdef HAVE_TAGCACHE
754 return set_option( str(LANG_FILTER), &global_settings.dirfilter, INT, 759 return set_option( str(LANG_FILTER), &global_settings.dirfilter, INT,
755 names, 5, NULL ); 760 names, 5, NULL );
761#else
762 return set_option( str(LANG_FILTER), &global_settings.dirfilter, INT,
763 names, 4, NULL );
764#endif
756} 765}
757 766
758static bool sort_case(void) 767static bool sort_case(void)
@@ -1632,6 +1641,7 @@ static bool dircache(void)
1632} 1641}
1633#endif /* HAVE_DIRCACHE */ 1642#endif /* HAVE_DIRCACHE */
1634 1643
1644#ifdef HAVE_TAGCACHE
1635#ifdef HAVE_TC_RAMCACHE 1645#ifdef HAVE_TC_RAMCACHE
1636static bool tagcache_ram(void) 1646static bool tagcache_ram(void)
1637{ 1647{
@@ -1688,6 +1698,7 @@ static bool tagcache_settings_menu(void)
1688 menu_exit(m); 1698 menu_exit(m);
1689 return result; 1699 return result;
1690} 1700}
1701#endif
1691 1702
1692#ifdef HAVE_HEADPHONE_DETECTION 1703#ifdef HAVE_HEADPHONE_DETECTION
1693static bool unplug_mode(void) 1704static bool unplug_mode(void)
@@ -1853,7 +1864,9 @@ static bool fileview_settings_menu(void)
1853 { ID2P(LANG_FOLLOW), browse_current }, 1864 { ID2P(LANG_FOLLOW), browse_current },
1854 { ID2P(LANG_SHOW_ICONS), show_icons }, 1865 { ID2P(LANG_SHOW_ICONS), show_icons },
1855 { ID2P(LANG_SHOW_PATH), show_path }, 1866 { ID2P(LANG_SHOW_PATH), show_path },
1867#ifdef HAVE_TAGCACHE
1856 { ID2P(LANG_TAGCACHE), tagcache_settings_menu}, 1868 { ID2P(LANG_TAGCACHE), tagcache_settings_menu},
1869#endif
1857 }; 1870 };
1858 1871
1859 m=menu_init( items, sizeof(items) / sizeof(*items), NULL, 1872 m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
diff --git a/apps/tagcache.h b/apps/tagcache.h
index cdd4722b79..26c500ef88 100644
--- a/apps/tagcache.h
+++ b/apps/tagcache.h
@@ -16,6 +16,7 @@
16 * KIND, either express or implied. 16 * KIND, either express or implied.
17 * 17 *
18 ****************************************************************************/ 18 ****************************************************************************/
19#ifdef HAVE_TAGCACHE
19#ifndef _TAGCACHE_H 20#ifndef _TAGCACHE_H
20#define _TAGCACHE_H 21#define _TAGCACHE_H
21 22
@@ -178,3 +179,4 @@ bool tagcache_update(void);
178bool tagcache_rebuild(void); 179bool tagcache_rebuild(void);
179 180
180#endif 181#endif
182#endif
diff --git a/apps/tagdb/album.c b/apps/tagdb/album.c
index 53b3660c90..0c06329fa5 100644
--- a/apps/tagdb/album.c
+++ b/apps/tagdb/album.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "malloc.h" // realloc() and free() 2#include "malloc.h" // realloc() and free()
2#include <strings.h> // strncasecmp() 3#include <strings.h> // strncasecmp()
3#include <string.h> // strlen() 4#include <string.h> // strlen()
@@ -452,3 +453,4 @@ int album_entry_add_song_file(FILE *fd, struct album_entry *e, struct album_size
452 453
453 return ERR_NO_INPLACE_UPDATE; 454 return ERR_NO_INPLACE_UPDATE;
454} 455}
456#endif
diff --git a/apps/tagdb/album.h b/apps/tagdb/album.h
index 08995a2940..3f4eacd754 100644
--- a/apps/tagdb/album.h
+++ b/apps/tagdb/album.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __ALBUM_H__ 2#ifndef __ALBUM_H__
2#define __ALBUM_H__ 3#define __ALBUM_H__
3 4
@@ -101,3 +102,4 @@ int album_entry_add_song_file(FILE *fd, struct album_entry *e, struct album_size
101 */ 102 */
102 103
103#endif 104#endif
105#endif
diff --git a/apps/tagdb/array_buffer.c b/apps/tagdb/array_buffer.c
index 24772d6bc9..2b8b017802 100644
--- a/apps/tagdb/array_buffer.c
+++ b/apps/tagdb/array_buffer.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "malloc.h" // malloc() and free() 2#include "malloc.h" // malloc() and free()
2 3
3#include "array_buffer.h" 4#include "array_buffer.h"
@@ -664,4 +665,4 @@ int array_buffer_write(FILE *fd, struct array_buffer *b) {
664 665
665 return ERR_NONE; 666 return ERR_NONE;
666} 667}
667 668#endif
diff --git a/apps/tagdb/array_buffer.h b/apps/tagdb/array_buffer.h
index 6dccefe917..d098c7a0fa 100644
--- a/apps/tagdb/array_buffer.h
+++ b/apps/tagdb/array_buffer.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __ARRAY_BUFFER_H__ 2#ifndef __ARRAY_BUFFER_H__
2#define __ARRAY_BUFFER_H__ 3#define __ARRAY_BUFFER_H__
3 4
@@ -157,3 +158,4 @@ int array_buffer_write(FILE *fd, struct array_buffer *b);
157 */ 158 */
158 159
159#endif 160#endif
161#endif
diff --git a/apps/tagdb/artist.c b/apps/tagdb/artist.c
index 82db81df2f..36ce560bee 100644
--- a/apps/tagdb/artist.c
+++ b/apps/tagdb/artist.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "malloc.h" // realloc() and free() 2#include "malloc.h" // realloc() and free()
2#include <string.h> // strncasecmp() 3#include <string.h> // strncasecmp()
3 4
@@ -368,3 +369,4 @@ int artist_entry_add_album_file(FILE *fd, struct artist_entry *e, struct artist_
368 369
369 return ERR_NO_INPLACE_UPDATE; 370 return ERR_NO_INPLACE_UPDATE;
370} 371}
372#endif
diff --git a/apps/tagdb/artist.h b/apps/tagdb/artist.h
index c741594936..102e2879a7 100644
--- a/apps/tagdb/artist.h
+++ b/apps/tagdb/artist.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __ARTIST_H__ 2#ifndef __ARTIST_H__
2#define __ARTIST_H__ 3#define __ARTIST_H__
3 4
@@ -98,3 +99,4 @@ int artist_entry_add_album_file(FILE *fd, struct artist_entry *e, struct artist_
98 */ 99 */
99 100
100#endif 101#endif
102#endif
diff --git a/apps/tagdb/config.h b/apps/tagdb/config.h
index 86461349e3..5e5e870248 100644
--- a/apps/tagdb/config.h
+++ b/apps/tagdb/config.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __CONFIG_H // Include me only once 2#ifndef __CONFIG_H // Include me only once
2#define __CONFIG_H 3#define __CONFIG_H
3 4
@@ -37,3 +38,4 @@
37#include <assert.h> 38#include <assert.h>
38 39
39#endif 40#endif
41#endif
diff --git a/apps/tagdb/db.c b/apps/tagdb/db.c
index 1c84b2b75c..4dfeb4708f 100644
--- a/apps/tagdb/db.c
+++ b/apps/tagdb/db.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include <string.h> // strlen() strcpy() strcat() 2#include <string.h> // strlen() strcpy() strcat()
2 3
3#include "malloc.h" 4#include "malloc.h"
@@ -601,3 +602,4 @@ int tag_info_destruct(struct tag_info *t) {
601 602
602 return ERR_NONE; 603 return ERR_NONE;
603} 604}
605#endif
diff --git a/apps/tagdb/db.h b/apps/tagdb/db.h
index be29581a09..709bf1fc9f 100644
--- a/apps/tagdb/db.h
+++ b/apps/tagdb/db.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __DB_H__ 2#ifndef __DB_H__
2#define __DB_H__ 3#define __DB_H__
3 4
@@ -35,3 +36,4 @@ struct tag_info* new_tag_info();
35int tag_info_destruct(struct tag_info *t); 36int tag_info_destruct(struct tag_info *t);
36 37
37#endif 38#endif
39#endif
diff --git a/apps/tagdb/file.c b/apps/tagdb/file.c
index de641fec38..762f0088d5 100644
--- a/apps/tagdb/file.c
+++ b/apps/tagdb/file.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "malloc.h" // realloc() and free() 2#include "malloc.h" // realloc() and free()
2#include <string.h> // strncasecmp() 3#include <string.h> // strncasecmp()
3 4
@@ -266,3 +267,4 @@ int file_size_destruct(struct file_size *s) {
266 free(s); 267 free(s);
267 return ERR_NONE; 268 return ERR_NONE;
268} 269}
270#endif
diff --git a/apps/tagdb/file.h b/apps/tagdb/file.h
index d2538a7569..103a601abf 100644
--- a/apps/tagdb/file.h
+++ b/apps/tagdb/file.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __FILE_H__ 2#ifndef __FILE_H__
2#define __FILE_H__ 3#define __FILE_H__
3 4
@@ -82,3 +83,4 @@ int file_size_destruct(struct file_size *s);
82 */ 83 */
83 84
84#endif 85#endif
86#ifdef HAVE_TAGCACHE
diff --git a/apps/tagdb/header.c b/apps/tagdb/header.c
index 01f973824b..524c5b7e84 100644
--- a/apps/tagdb/header.c
+++ b/apps/tagdb/header.c
@@ -1,4 +1,4 @@
1 1#ifdef HAVE_TAGCACHE
2#include <stdio.h> 2#include <stdio.h>
3 3
4#include "header.h" 4#include "header.h"
@@ -119,3 +119,4 @@ int header_write(FILE *fd, const struct header *h) {
119 119
120 return ERR_NONE; 120 return ERR_NONE;
121} 121}
122#endif
diff --git a/apps/tagdb/header.h b/apps/tagdb/header.h
index 08a563ec72..28a28d3fd9 100644
--- a/apps/tagdb/header.h
+++ b/apps/tagdb/header.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __HEADER_H__ 2#ifndef __HEADER_H__
2#define __HEADER_H__ 3#define __HEADER_H__
3 4
@@ -37,3 +38,4 @@ struct header {
37int header_write(FILE *fd, const struct header *header); 38int header_write(FILE *fd, const struct header *header);
38 39
39#endif 40#endif
41#endif
diff --git a/apps/tagdb/main.c b/apps/tagdb/main.c
index 61a0330c81..ce695e6ca2 100644
--- a/apps/tagdb/main.c
+++ b/apps/tagdb/main.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "config.h" 2#include "config.h"
2 3
3#include <stdio.h> 4#include <stdio.h>
@@ -113,3 +114,4 @@ int main(int argc, char* argv[]) {
113 114
114 return 0; 115 return 0;
115} 116}
117#endif
diff --git a/apps/tagdb/malloc.c b/apps/tagdb/malloc.c
index 78d24f9d4e..dbc2c5b048 100644
--- a/apps/tagdb/malloc.c
+++ b/apps/tagdb/malloc.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "config.h" 2#include "config.h"
2#include "malloc.h" 3#include "malloc.h"
3 4
@@ -129,3 +130,4 @@ void malloc_stats() {
129 printf(" Maximum amount of allocated memory: %dbytes\n", max_total); 130 printf(" Maximum amount of allocated memory: %dbytes\n", max_total);
130 printf(" Current amount of allocated memory: %dbytes\n", total); 131 printf(" Current amount of allocated memory: %dbytes\n", total);
131} 132}
133#endif
diff --git a/apps/tagdb/malloc.h b/apps/tagdb/malloc.h
index c8c885bf6f..c09649bdad 100644
--- a/apps/tagdb/malloc.h
+++ b/apps/tagdb/malloc.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __MALLOC_H__ 2#ifndef __MALLOC_H__
2#define __MALLOC_H__ 3#define __MALLOC_H__
3 4
@@ -14,3 +15,4 @@ void *do_realloc(void *ptr, size_t size);
14void malloc_stats(); 15void malloc_stats();
15 16
16#endif 17#endif
18#endif
diff --git a/apps/tagdb/parser.c b/apps/tagdb/parser.c
index 6eec3bad1c..6e2eeff5b0 100644
--- a/apps/tagdb/parser.c
+++ b/apps/tagdb/parser.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include <stdio.h> 2#include <stdio.h>
2#include <stdint.h> 3#include <stdint.h>
3#include <stdlib.h> 4#include <stdlib.h>
@@ -215,3 +216,4 @@ int main(int argc, char *argv[]) {
215 216
216 return 0; 217 return 0;
217} 218}
219#endif
diff --git a/apps/tagdb/song.c b/apps/tagdb/song.c
index 16ae385eda..f62ecad5d8 100644
--- a/apps/tagdb/song.c
+++ b/apps/tagdb/song.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "malloc.h" // realloc() and free() 2#include "malloc.h" // realloc() and free()
2#include <string.h> // strncasecmp() 3#include <string.h> // strncasecmp()
3 4
@@ -448,3 +449,4 @@ int song_size_destruct(struct song_size *s) {
448 free(s); 449 free(s);
449 return ERR_NONE; 450 return ERR_NONE;
450} 451}
452#endif
diff --git a/apps/tagdb/song.h b/apps/tagdb/song.h
index 1be81ccf0a..ac155b42f4 100644
--- a/apps/tagdb/song.h
+++ b/apps/tagdb/song.h
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#ifndef __SONG_H__ 2#ifndef __SONG_H__
2#define __SONG_H__ 3#define __SONG_H__
3 4
@@ -91,3 +92,4 @@ int song_size_destruct(struct song_size *s);
91 */ 92 */
92 93
93#endif 94#endif
95#endif
diff --git a/apps/tagdb/tag_dummy.c b/apps/tagdb/tag_dummy.c
index f0125f32ea..4318724ac4 100644
--- a/apps/tagdb/tag_dummy.c
+++ b/apps/tagdb/tag_dummy.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "config.h" 2#include "config.h"
2#include "malloc.h" 3#include "malloc.h"
3 4
@@ -9,3 +10,4 @@ int tag_dummy(char *file, struct tag_info *t) {
9 strcpy(t->song, file); 10 strcpy(t->song, file);
10 return ERR_NONE; 11 return ERR_NONE;
11} 12}
13#endif
diff --git a/apps/tagdb/tag_dummy.h b/apps/tagdb/tag_dummy.h
index 856a0a5a2e..e05595a9a1 100644
--- a/apps/tagdb/tag_dummy.h
+++ b/apps/tagdb/tag_dummy.h
@@ -1,3 +1,5 @@
1#ifdef HAVE_TAGCACHE
1#include "db.h" 2#include "db.h"
2 3
3int tag_dummy(char *file, struct tag_info *t); 4int tag_dummy(char *file, struct tag_info *t);
5#endif
diff --git a/apps/tagdb/unique.c b/apps/tagdb/unique.c
index 471f59e67f..3fd4359aea 100644
--- a/apps/tagdb/unique.c
+++ b/apps/tagdb/unique.c
@@ -1,3 +1,4 @@
1#ifdef HAVE_TAGCACHE
1#include "unique.h" 2#include "unique.h"
2 3
3#include <string.h> 4#include <string.h>
@@ -14,3 +15,4 @@ char *create_unique_name(char *buffer, const char *prefix, const char *suffix, i
14 15
15 return buffer; 16 return buffer;
16} 17}
18#endif
diff --git a/apps/tagdb/unique.h b/apps/tagdb/unique.h
index 03dc261141..bd5ebd8770 100644
--- a/apps/tagdb/unique.h
+++ b/apps/tagdb/unique.h
@@ -1,6 +1,8 @@
1#ifdef
1#ifndef __UNIQUE_H__ 2#ifndef __UNIQUE_H__
2#define __UNIQUE_H__ 3#define __UNIQUE_H__
3 4
4char *create_unique_name(char *buffer, const char *prefix, const char *suffix, int digits); 5char *create_unique_name(char *buffer, const char *prefix, const char *suffix, int digits);
5 6
6#endif 7#endif
8#endif
diff --git a/apps/tagtree.h b/apps/tagtree.h
index 2c85bf90e1..ccb71c4470 100644
--- a/apps/tagtree.h
+++ b/apps/tagtree.h
@@ -16,6 +16,7 @@
16 * KIND, either express or implied. 16 * KIND, either express or implied.
17 * 17 *
18 ****************************************************************************/ 18 ****************************************************************************/
19#ifdef HAVE_TAGCACHE
19#ifndef _TAGTREE_H 20#ifndef _TAGTREE_H
20#define _TAGTREE_H 21#define _TAGTREE_H
21 22
@@ -53,3 +54,4 @@ int tagtree_get_icon(struct tree_context* c);
53int tagtree_get_filename(struct tree_context* c, char *buf, int buflen); 54int tagtree_get_filename(struct tree_context* c, char *buf, int buflen);
54 55
55#endif 56#endif
57#endif
diff --git a/apps/tree.c b/apps/tree.c
index bfb6412bfe..772e2351bb 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -61,7 +61,9 @@
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#ifdef HAVE_TAGCACHE
64#include "tagcache.h" 65#include "tagcache.h"
66#endif
65#include "yesno.h" 67#include "yesno.h"
66#include "gwps-common.h" 68#include "gwps-common.h"
67#include "eeprom_settings.h" 69#include "eeprom_settings.h"
@@ -177,6 +179,7 @@ char * tree_get_filename(int selected_item, void * data, char *buffer)
177 struct tree_context * local_tc=(struct tree_context *)data; 179 struct tree_context * local_tc=(struct tree_context *)data;
178 char *name; 180 char *name;
179 int attr=0; 181 int attr=0;
182#ifdef HAVE_TAGCACHE
180 bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; 183 bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB;
181 184
182 if (id3db) 185 if (id3db)
@@ -184,6 +187,7 @@ char * tree_get_filename(int selected_item, void * data, char *buffer)
184 return tagtree_get_entry(&tc, selected_item)->name; 187 return tagtree_get_entry(&tc, selected_item)->name;
185 } 188 }
186 else 189 else
190#endif
187 { 191 {
188 struct entry* dc = local_tc->dircache; 192 struct entry* dc = local_tc->dircache;
189 struct entry* e = &dc[selected_item]; 193 struct entry* e = &dc[selected_item];
@@ -205,11 +209,14 @@ char * tree_get_filename(int selected_item, void * data, char *buffer)
205void tree_get_fileicon(int selected_item, void * data, ICON * icon) 209void tree_get_fileicon(int selected_item, void * data, ICON * icon)
206{ 210{
207 struct tree_context * local_tc=(struct tree_context *)data; 211 struct tree_context * local_tc=(struct tree_context *)data;
212#ifdef HAVE_TAGCACHE
208 bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB; 213 bool id3db = *(local_tc->dirfilter) == SHOW_ID3DB;
209 if (id3db) { 214 if (id3db) {
210 *icon = (ICON)tagtree_get_icon(&tc); 215 *icon = (ICON)tagtree_get_icon(&tc);
211 } 216 }
212 else { 217 else
218#endif
219 {
213 struct entry* dc = local_tc->dircache; 220 struct entry* dc = local_tc->dircache;
214 struct entry* e = &dc[selected_item]; 221 struct entry* e = &dc[selected_item];
215 *icon = (ICON)filetype_get_icon(e->attr); 222 *icon = (ICON)filetype_get_icon(e->attr);
@@ -304,8 +311,9 @@ int tree_get_file_position(char * filename)
304 */ 311 */
305static int update_dir(void) 312static int update_dir(void)
306{ 313{
314 bool changed = false;
315#ifdef HAVE_TAGCACHE
307 bool id3db = *tc.dirfilter == SHOW_ID3DB; 316 bool id3db = *tc.dirfilter == SHOW_ID3DB;
308 bool changed = false;
309 /* Checks for changes */ 317 /* Checks for changes */
310 if (id3db) { 318 if (id3db) {
311 if (tc.currtable != lasttable || 319 if (tc.currtable != lasttable ||
@@ -322,7 +330,9 @@ static int update_dir(void)
322 changed = true; 330 changed = true;
323 } 331 }
324 } 332 }
325 else { 333 else
334#endif
335 {
326 /* if the tc.currdir has been changed, reload it ...*/ 336 /* if the tc.currdir has been changed, reload it ...*/
327 if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) { 337 if (strncmp(tc.currdir, lastdir, sizeof(lastdir)) || reload_dir) {
328 338
@@ -345,12 +355,17 @@ static int update_dir(void)
345 } 355 }
346 if (changed) 356 if (changed)
347 { 357 {
348 if(!id3db && (tc.dirfull || 358 if(
359#ifdef HAVE_TAGCACHE
360 !id3db &&
361#endif
362 (tc.dirfull ||
349 tc.filesindir == global_settings.max_files_in_dir) ) 363 tc.filesindir == global_settings.max_files_in_dir) )
350 { 364 {
351 gui_syncsplash(HZ, true, str(LANG_SHOWDIR_BUFFER_FULL)); 365 gui_syncsplash(HZ, true, str(LANG_SHOWDIR_BUFFER_FULL));
352 } 366 }
353 } 367 }
368#ifdef HAVE_TAGCACHE
354 if (id3db) 369 if (id3db)
355 { 370 {
356 if (global_settings.show_path_in_browser == SHOW_PATH_FULL 371 if (global_settings.show_path_in_browser == SHOW_PATH_FULL
@@ -366,6 +381,7 @@ static int update_dir(void)
366 } 381 }
367 } 382 }
368 else 383 else
384#endif
369 { 385 {
370 if (global_settings.show_path_in_browser == SHOW_PATH_FULL) 386 if (global_settings.show_path_in_browser == SHOW_PATH_FULL)
371 { 387 {
@@ -417,7 +433,9 @@ static int update_dir(void)
417/* load tracks from specified directory to resume play */ 433/* load tracks from specified directory to resume play */
418void resume_directory(const char *dir) 434void resume_directory(const char *dir)
419{ 435{
436#ifdef HAVE_TAGCACHE
420 bool id3db = *tc.dirfilter == SHOW_ID3DB; 437 bool id3db = *tc.dirfilter == SHOW_ID3DB;
438#endif
421 439
422 if (ft_load(&tc, dir) < 0) 440 if (ft_load(&tc, dir) < 0)
423 return; 441 return;
@@ -425,8 +443,10 @@ void resume_directory(const char *dir)
425 443
426 ft_build_playlist(&tc, 0); 444 ft_build_playlist(&tc, 0);
427 445
446#ifdef HAVE_TAGCACHE
428 if (id3db) 447 if (id3db)
429 tagtree_load(&tc); 448 tagtree_load(&tc);
449#endif
430} 450}
431 451
432/* Returns the current working directory and also writes cwd to buf if 452/* Returns the current working directory and also writes cwd to buf if
@@ -504,10 +524,12 @@ void set_current_file(char *path)
504 char *name; 524 char *name;
505 int i; 525 int i;
506 526
527#ifdef HAVE_TAGCACHE
507 /* in ID3DB mode it is a bad idea to call this function */ 528 /* in ID3DB mode it is a bad idea to call this function */
508 /* (only happens with `follow playlist') */ 529 /* (only happens with `follow playlist') */
509 if( *tc.dirfilter == SHOW_ID3DB ) 530 if( *tc.dirfilter == SHOW_ID3DB )
510 return; 531 return;
532#endif
511 533
512 /* separate directory from filename */ 534 /* separate directory from filename */
513 /* gets the directory's name and put it into tc.currdir */ 535 /* gets the directory's name and put it into tc.currdir */
@@ -552,6 +574,7 @@ void set_current_file(char *path)
552 } 574 }
553} 575}
554 576
577#ifdef HAVE_TAGCACHE
555static bool check_changed_id3mode(bool currmode) 578static bool check_changed_id3mode(bool currmode)
556{ 579{
557 if (currmode != (global_settings.dirfilter == SHOW_ID3DB)) { 580 if (currmode != (global_settings.dirfilter == SHOW_ID3DB)) {
@@ -571,6 +594,8 @@ static bool check_changed_id3mode(bool currmode)
571 } 594 }
572 return currmode; 595 return currmode;
573} 596}
597#endif
598
574/* main loop, handles key events */ 599/* main loop, handles key events */
575static bool dirbrowse(void) 600static bool dirbrowse(void)
576{ 601{
@@ -586,11 +611,13 @@ static bool dirbrowse(void)
586 long thumbnail_time = -1; /* for delaying a thumbnail */ 611 long thumbnail_time = -1; /* for delaying a thumbnail */
587 612
588 char* currdir = tc.currdir; /* just a shortcut */ 613 char* currdir = tc.currdir; /* just a shortcut */
614#ifdef HAVE_TAGCACHE
589 bool id3db = *tc.dirfilter == SHOW_ID3DB; 615 bool id3db = *tc.dirfilter == SHOW_ID3DB;
590 616
591 if (id3db) 617 if (id3db)
592 curr_context=CONTEXT_ID3DB; 618 curr_context=CONTEXT_ID3DB;
593 else 619 else
620#endif
594 curr_context=CONTEXT_TREE; 621 curr_context=CONTEXT_TREE;
595 tc.selected_item = 0; 622 tc.selected_item = 0;
596 tc.dirlevel=0; 623 tc.dirlevel=0;
@@ -659,7 +686,11 @@ static bool dirbrowse(void)
659 if ( numentries == 0 ) 686 if ( numentries == 0 )
660 break; 687 break;
661 688
689#ifdef HAVE_TAGCACHE
662 switch (id3db?tagtree_enter(&tc):ft_enter(&tc)) 690 switch (id3db?tagtree_enter(&tc):ft_enter(&tc))
691#else
692 switch (ft_enter(&tc))
693#endif
663 { 694 {
664 case 1: reload_dir = true; break; 695 case 1: reload_dir = true; break;
665 case 2: start_wps = true; break; 696 case 2: start_wps = true; break;
@@ -677,10 +708,12 @@ static bool dirbrowse(void)
677 /* if we are in /, nothing to do */ 708 /* if we are in /, nothing to do */
678 if (tc.dirlevel == 0 && !strcmp(currdir,"/")) 709 if (tc.dirlevel == 0 && !strcmp(currdir,"/"))
679 break; 710 break;
680 711
712#ifdef HAVE_TAGCACHE
681 if (id3db) 713 if (id3db)
682 tagtree_exit(&tc); 714 tagtree_exit(&tc);
683 else 715 else
716#endif
684 if (ft_exit(&tc) == 3) 717 if (ft_exit(&tc) == 3)
685 exit_func = true; 718 exit_func = true;
686 719
@@ -737,9 +770,11 @@ static bool dirbrowse(void)
737 reload_dir = true; 770 reload_dir = true;
738 restore = true; 771 restore = true;
739 772
773#ifdef HAVE_TAGCACHE
740 id3db = check_changed_id3mode(id3db); 774 id3db = check_changed_id3mode(id3db);
741 if(id3db) 775 if(id3db)
742 reload_dir = true; 776 reload_dir = true;
777#endif
743 } 778 }
744 else /* use it as a quick exit instead */ 779 else /* use it as a quick exit instead */
745 exit_func = true; 780 exit_func = true;
@@ -769,8 +804,10 @@ static bool dirbrowse(void)
769 reload_dir = true; 804 reload_dir = true;
770 restore = true; 805 restore = true;
771 806
807#ifdef HAVE_TAGCACHE
772 id3db = check_changed_id3mode(id3db); 808 id3db = check_changed_id3mode(id3db);
773 reload_dir = true; 809 reload_dir = true;
810#endif
774 } 811 }
775 break; 812 break;
776#endif 813#endif
@@ -794,6 +831,7 @@ static bool dirbrowse(void)
794 if(!numentries) 831 if(!numentries)
795 onplay_result = onplay(NULL, 0, curr_context); 832 onplay_result = onplay(NULL, 0, curr_context);
796 else { 833 else {
834#ifdef HAVE_TAGCACHE
797 if (id3db) 835 if (id3db)
798 { 836 {
799 if (tagtree_get_attr(&tc) == TREE_ATTR_MPA) 837 if (tagtree_get_attr(&tc) == TREE_ATTR_MPA)
@@ -805,6 +843,7 @@ static bool dirbrowse(void)
805 attr = ATTR_DIRECTORY; 843 attr = ATTR_DIRECTORY;
806 } 844 }
807 else 845 else
846#endif
808 { 847 {
809 attr = dircache[tc.selected_item].attr; 848 attr = dircache[tc.selected_item].attr;
810 849
@@ -843,12 +882,14 @@ static bool dirbrowse(void)
843 int attr; 882 int attr;
844 char* name; 883 char* name;
845 884
885#ifdef HAVE_TAGCACHE
846 if (id3db) 886 if (id3db)
847 { 887 {
848 attr = tagtree_get_attr(&tc); 888 attr = tagtree_get_attr(&tc);
849 name = tagtree_get_entry(&tc, lasti)->name; 889 name = tagtree_get_entry(&tc, lasti)->name;
850 } 890 }
851 else 891 else
892#endif
852 { 893 {
853 attr = dircache[lasti].attr; 894 attr = dircache[lasti].attr;
854 name = dircache[lasti].name; 895 name = dircache[lasti].name;
@@ -880,7 +921,9 @@ static bool dirbrowse(void)
880 921
881#ifdef HAVE_HOTSWAP 922#ifdef HAVE_HOTSWAP
882 case SYS_FS_CHANGED: 923 case SYS_FS_CHANGED:
924#ifdef HAVE_TAGCACHE
883 if (!id3db) 925 if (!id3db)
926#endif
884 reload_dir = true; 927 reload_dir = true;
885 /* The 'dir no longer valid' situation will be caught later 928 /* The 'dir no longer valid' situation will be caught later
886 * by checking the showdir() result. */ 929 * by checking the showdir() result. */
@@ -916,13 +959,17 @@ static bool dirbrowse(void)
916 reload_dir = true; 959 reload_dir = true;
917#ifdef HAVE_HOTSWAP 960#ifdef HAVE_HOTSWAP
918 else 961 else
962#ifdef HAVE_TAGCACHE
919 if (!id3db) /* Try reload to catch 'no longer valid' case. */ 963 if (!id3db) /* Try reload to catch 'no longer valid' case. */
964#endif
920 reload_dir = true; 965 reload_dir = true;
921#endif 966#endif
922#ifdef HAVE_LCD_COLOR 967#ifdef HAVE_LCD_COLOR
923 show_main_backdrop(); 968 show_main_backdrop();
924#endif 969#endif
970#ifdef HAVE_TAGCACHE
925 id3db = check_changed_id3mode(id3db); 971 id3db = check_changed_id3mode(id3db);
972#endif
926 restore = true; 973 restore = true;
927 start_wps=false; 974 start_wps=false;
928 } 975 }
@@ -985,12 +1032,14 @@ static bool dirbrowse(void)
985 thumbnail_time = -1; /* Cancel whatever we were 1032 thumbnail_time = -1; /* Cancel whatever we were
986 about to say */ 1033 about to say */
987 1034
1035#ifdef HAVE_TAGCACHE
988 if (id3db) 1036 if (id3db)
989 { 1037 {
990 attr = tagtree_get_attr(&tc); 1038 attr = tagtree_get_attr(&tc);
991 name = tagtree_get_entry(&tc, tc.selected_item)->name; 1039 name = tagtree_get_entry(&tc, tc.selected_item)->name;
992 } 1040 }
993 else 1041 else
1042#endif
994 { 1043 {
995 attr = dircache[tc.selected_item].attr; 1044 attr = dircache[tc.selected_item].attr;
996 name = dircache[tc.selected_item].name; 1045 name = dircache[tc.selected_item].name;
@@ -1380,7 +1429,9 @@ void ft_play_filename(char *dir, char *file)
1380void tree_flush(void) 1429void tree_flush(void)
1381{ 1430{
1382 scrobbler_shutdown(); 1431 scrobbler_shutdown();
1432#ifdef HAVE_TAGCACHE
1383 tagcache_shutdown(); 1433 tagcache_shutdown();
1434#endif
1384 playlist_shutdown(); 1435 playlist_shutdown();
1385 1436
1386#ifdef HAVE_TC_RAMCACHE 1437#ifdef HAVE_TC_RAMCACHE
@@ -1440,6 +1491,8 @@ void tree_restore(void)
1440 } 1491 }
1441 } 1492 }
1442#endif 1493#endif
1494#ifdef HAVE_TAGCACHE
1443 tagcache_start_scan(); 1495 tagcache_start_scan();
1496#endif
1444 scrobbler_init(); 1497 scrobbler_init();
1445} 1498}
diff --git a/docs/CREDITS b/docs/CREDITS
index b39c9c6009..abac76db52 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -244,3 +244,4 @@ David Quesada
244Jared Stafford 244Jared Stafford
245Martin Hensel 245Martin Hensel
246Stéphane Doyen 246Stéphane Doyen
247Austin Appel
diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h
index 3793a716ec..e0c245725a 100644
--- a/firmware/export/config-e200.h
+++ b/firmware/export/config-e200.h
@@ -18,6 +18,9 @@
18/* define this if you have access to the quickscreen */ 18/* define this if you have access to the quickscreen */
19#define HAVE_QUICKSCREEN 19#define HAVE_QUICKSCREEN
20 20
21/* define this if you would like tagcache to build on this target */
22#define HAVE_TAGCACHE
23
21/* LCD dimensions */ 24/* LCD dimensions */
22#define LCD_WIDTH 176 25#define LCD_WIDTH 176
23#define LCD_HEIGHT 220 26#define LCD_HEIGHT 220
diff --git a/firmware/export/config-fmrecorder.h b/firmware/export/config-fmrecorder.h
index 995ca3658b..d9377bc6f9 100644
--- a/firmware/export/config-fmrecorder.h
+++ b/firmware/export/config-fmrecorder.h
@@ -15,6 +15,9 @@
15/* define this if you have access to the pitchscreen */ 15/* define this if you have access to the pitchscreen */
16#define HAVE_PITCHSCREEN 16#define HAVE_PITCHSCREEN
17 17
18/* define this if you would like tagcache to build on this target */
19#define HAVE_TAGCACHE
20
18/* LCD dimensions */ 21/* LCD dimensions */
19#define LCD_WIDTH 112 22#define LCD_WIDTH 112
20#define LCD_HEIGHT 64 23#define LCD_HEIGHT 64
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index fee2b79b2e..ea72c348ea 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -14,6 +14,9 @@
14/* define this if you have a colour LCD */ 14/* define this if you have a colour LCD */
15#define HAVE_LCD_COLOR 1 15#define HAVE_LCD_COLOR 1
16 16
17/* define this if you would like tagcache to build on this target */
18#define HAVE_TAGCACHE
19
17/* LCD dimensions */ 20/* LCD dimensions */
18#define LCD_WIDTH 240 21#define LCD_WIDTH 240
19#define LCD_HEIGHT 320 22#define LCD_HEIGHT 320
diff --git a/firmware/export/config-gmini120.h b/firmware/export/config-gmini120.h
index 5aed9a5f7d..a393b17a8a 100644
--- a/firmware/export/config-gmini120.h
+++ b/firmware/export/config-gmini120.h
@@ -16,6 +16,9 @@
16/* define this if you have RTC RAM available for settings */ 16/* define this if you have RTC RAM available for settings */
17#define HAVE_RTC_RAM 1 17#define HAVE_RTC_RAM 1
18 18
19/* define this if you would like tagcache to build on this target */
20#define HAVE_TAGCACHE
21
19/* LCD dimensions */ 22/* LCD dimensions */
20#define LCD_WIDTH 128 23#define LCD_WIDTH 128
21#define LCD_HEIGHT 64 24#define LCD_HEIGHT 64
diff --git a/firmware/export/config-gminisp.h b/firmware/export/config-gminisp.h
index b309c173a9..1c1f299afa 100644
--- a/firmware/export/config-gminisp.h
+++ b/firmware/export/config-gminisp.h
@@ -7,6 +7,9 @@
7/* define this if you can invert the colours on your LCD */ 7/* define this if you can invert the colours on your LCD */
8#define HAVE_LCD_INVERT 8#define HAVE_LCD_INVERT
9 9
10/* define this if you would like tagcache to build on this target */
11#define HAVE_TAGCACHE
12
10/* LCD dimensions */ 13/* LCD dimensions */
11#define LCD_WIDTH 128 14#define LCD_WIDTH 128
12#define LCD_HEIGHT 64 15#define LCD_HEIGHT 64
diff --git a/firmware/export/config-h10.h b/firmware/export/config-h10.h
index dbb7583304..8cea98d2bf 100644
--- a/firmware/export/config-h10.h
+++ b/firmware/export/config-h10.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 160 29#define LCD_WIDTH 160
27#define LCD_HEIGHT 128 30#define LCD_HEIGHT 128
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index 71baa83100..12f1066d3a 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -24,6 +24,9 @@
24/* define this if you have access to the pitchscreen */ 24/* define this if you have access to the pitchscreen */
25#define HAVE_PITCHSCREEN 25#define HAVE_PITCHSCREEN
26 26
27/* define this if you would like tagcache to build on this target */
28#define HAVE_TAGCACHE
29
27/* LCD dimensions */ 30/* LCD dimensions */
28#define LCD_WIDTH 160 31#define LCD_WIDTH 160
29#define LCD_HEIGHT 128 32#define LCD_HEIGHT 128
diff --git a/firmware/export/config-h10_5gb.h b/firmware/export/config-h10_5gb.h
index 6fcc0f29f0..26042e8042 100644
--- a/firmware/export/config-h10_5gb.h
+++ b/firmware/export/config-h10_5gb.h
@@ -22,6 +22,8 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
25 27
26/* LCD dimensions */ 28/* LCD dimensions */
27#define LCD_WIDTH 128 29#define LCD_WIDTH 128
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index d8038f21af..21451dcdac 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -20,6 +20,9 @@
20/* define this if you have access to the pitchscreen */ 20/* define this if you have access to the pitchscreen */
21#define HAVE_PITCHSCREEN 21#define HAVE_PITCHSCREEN
22 22
23/* define this if you would like tagcache to build on this target */
24#define HAVE_TAGCACHE
25
23/* LCD dimensions */ 26/* LCD dimensions */
24#define LCD_WIDTH 160 27#define LCD_WIDTH 160
25#define LCD_HEIGHT 128 28#define LCD_HEIGHT 128
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index c42965d082..c9aad436f1 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -20,6 +20,9 @@
20/* define this if you have access to the pitchscreen */ 20/* define this if you have access to the pitchscreen */
21#define HAVE_PITCHSCREEN 21#define HAVE_PITCHSCREEN
22 22
23/* define this if you would like tagcache to build on this target */
24#define HAVE_TAGCACHE
25
23/* LCD dimensions */ 26/* LCD dimensions */
24#define LCD_WIDTH 220 27#define LCD_WIDTH 220
25#define LCD_HEIGHT 176 28#define LCD_HEIGHT 176
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index 83f0767723..df24850892 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -24,6 +24,9 @@
24/* define this if you have access to the pitchscreen */ 24/* define this if you have access to the pitchscreen */
25#define HAVE_PITCHSCREEN 25#define HAVE_PITCHSCREEN
26 26
27/* define this if you would like tagcache to build on this target */
28#define HAVE_TAGCACHE
29
27/* LCD dimensions */ 30/* LCD dimensions */
28#define LCD_WIDTH 160 31#define LCD_WIDTH 160
29#define LCD_HEIGHT 128 32#define LCD_HEIGHT 128
diff --git a/firmware/export/config-ifp7xx.h b/firmware/export/config-ifp7xx.h
index cebb319a13..9b8693a659 100644
--- a/firmware/export/config-ifp7xx.h
+++ b/firmware/export/config-ifp7xx.h
@@ -15,6 +15,9 @@
15/* define this if you have a colour LCD */ 15/* define this if you have a colour LCD */
16/* #define HAVE_LCD_COLOR 1 */ 16/* #define HAVE_LCD_COLOR 1 */
17 17
18/* define this if you would like tagcache to build on this target */
19#define HAVE_TAGCACHE
20
18/* LCD dimensions */ 21/* LCD dimensions */
19#define LCD_WIDTH 128 22#define LCD_WIDTH 128
20#define LCD_HEIGHT 64 23#define LCD_HEIGHT 64
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 446f56be8e..1cb4f883f7 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 160 29#define LCD_WIDTH 160
27#define LCD_HEIGHT 128 30#define LCD_HEIGHT 128
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index cbaa1504f5..065c653fab 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 160 29#define LCD_WIDTH 160
27#define LCD_HEIGHT 128 30#define LCD_HEIGHT 128
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index 1c583e98ca..efc57265a0 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 220 29#define LCD_WIDTH 220
27#define LCD_HEIGHT 176 30#define LCD_HEIGHT 176
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index 09ce7d6868..2e5da2e447 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 138 29#define LCD_WIDTH 138
27#define LCD_HEIGHT 110 30#define LCD_HEIGHT 110
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index 5020ac6952..8f1fc1ad9f 100755
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 138 29#define LCD_WIDTH 138
27#define LCD_HEIGHT 110 30#define LCD_HEIGHT 110
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index e4a2b80d6f..db85fa8ee8 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 176 29#define LCD_WIDTH 176
27#define LCD_HEIGHT 132 30#define LCD_HEIGHT 132
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 113bcc229a..543bfbfe65 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -22,6 +22,9 @@
22/* define this if you have access to the pitchscreen */ 22/* define this if you have access to the pitchscreen */
23#define HAVE_PITCHSCREEN 23#define HAVE_PITCHSCREEN
24 24
25/* define this if you would like tagcache to build on this target */
26#define HAVE_TAGCACHE
27
25/* LCD dimensions */ 28/* LCD dimensions */
26#define LCD_WIDTH 320 29#define LCD_WIDTH 320
27#define LCD_HEIGHT 240 30#define LCD_HEIGHT 240
diff --git a/firmware/export/config-ondiofm.h b/firmware/export/config-ondiofm.h
index 745b1ba782..0ccba0de20 100644
--- a/firmware/export/config-ondiofm.h
+++ b/firmware/export/config-ondiofm.h
@@ -10,6 +10,9 @@
10/* define this if you can invert the colours on your LCD */ 10/* define this if you can invert the colours on your LCD */
11#define HAVE_LCD_INVERT 11#define HAVE_LCD_INVERT
12 12
13/* define this if you would like tagcache to build on this target */
14#define HAVE_TAGCACHE
15
13/* LCD dimensions */ 16/* LCD dimensions */
14#define LCD_WIDTH 112 17#define LCD_WIDTH 112
15#define LCD_HEIGHT 64 18#define LCD_HEIGHT 64
diff --git a/firmware/export/config-ondiosp.h b/firmware/export/config-ondiosp.h
index 19c59c3aca..a535e47905 100644
--- a/firmware/export/config-ondiosp.h
+++ b/firmware/export/config-ondiosp.h
@@ -7,6 +7,9 @@
7/* define this if you can invert the colours on your LCD */ 7/* define this if you can invert the colours on your LCD */
8#define HAVE_LCD_INVERT 8#define HAVE_LCD_INVERT
9 9
10/* define this if you would like tagcache to build on this target */
11#define HAVE_TAGCACHE
12
10/* LCD dimensions */ 13/* LCD dimensions */
11#define LCD_WIDTH 112 14#define LCD_WIDTH 112
12#define LCD_HEIGHT 64 15#define LCD_HEIGHT 64
diff --git a/firmware/export/config-player.h b/firmware/export/config-player.h
index 3dfdb0e727..76f3415db3 100644
--- a/firmware/export/config-player.h
+++ b/firmware/export/config-player.h
@@ -1,6 +1,9 @@
1/* define this if you have a charcell LCD display */ 1/* define this if you have a charcell LCD display */
2#define HAVE_LCD_CHARCELLS 1 2#define HAVE_LCD_CHARCELLS 1
3 3
4/* define this if you would like tagcache to build on this target */
5#define HAVE_TAGCACHE
6
4/* LCD dimensions (for the simulator) */ 7/* LCD dimensions (for the simulator) */
5#define LCD_WIDTH 132 /* Display width in pixels */ 8#define LCD_WIDTH 132 /* Display width in pixels */
6#define LCD_HEIGHT 64 /* Display height in pixels */ 9#define LCD_HEIGHT 64 /* Display height in pixels */
diff --git a/firmware/export/config-recorder.h b/firmware/export/config-recorder.h
index a3ba43ee7f..4b79e0b3ae 100644
--- a/firmware/export/config-recorder.h
+++ b/firmware/export/config-recorder.h
@@ -15,6 +15,9 @@
15/* define this if you have access to the pitchscreen */ 15/* define this if you have access to the pitchscreen */
16#define HAVE_PITCHSCREEN 16#define HAVE_PITCHSCREEN
17 17
18/* define this if you would like tagcache to build on this target */
19#define HAVE_TAGCACHE
20
18/* LCD dimensions */ 21/* LCD dimensions */
19#define LCD_WIDTH 112 22#define LCD_WIDTH 112
20#define LCD_HEIGHT 64 23#define LCD_HEIGHT 64
diff --git a/firmware/export/config-recorderv2.h b/firmware/export/config-recorderv2.h
index 58a0b78ebe..38ca974761 100644
--- a/firmware/export/config-recorderv2.h
+++ b/firmware/export/config-recorderv2.h
@@ -15,6 +15,9 @@
15/* define this if you have access to the pitchscreen */ 15/* define this if you have access to the pitchscreen */
16#define HAVE_PITCHSCREEN 16#define HAVE_PITCHSCREEN
17 17
18/* define this if you would like tagcache to build on this target */
19#define HAVE_TAGCACHE
20
18/* LCD dimensions */ 21/* LCD dimensions */
19#define LCD_WIDTH 112 22#define LCD_WIDTH 112
20#define LCD_HEIGHT 64 23#define LCD_HEIGHT 64
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 6a3091de30..6f6d253fe9 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -217,8 +217,10 @@
217 * plenty of RAM. Both features can be enabled independently. */ 217 * plenty of RAM. Both features can be enabled independently. */
218#if (MEMORYSIZE > 8 || MEM > 8) && !defined(BOOTLOADER) 218#if (MEMORYSIZE > 8 || MEM > 8) && !defined(BOOTLOADER)
219#define HAVE_DIRCACHE 219#define HAVE_DIRCACHE
220#ifdef HAVE_TAGCACHE
220#define HAVE_TC_RAMCACHE 221#define HAVE_TC_RAMCACHE
221#endif 222#endif
223#endif
222 224
223#if (CONFIG_CODEC == SWCODEC) && !defined(SIMULATOR) && !defined(BOOTLOADER) 225#if (CONFIG_CODEC == SWCODEC) && !defined(SIMULATOR) && !defined(BOOTLOADER)
224#define HAVE_PRIORITY_SCHEDULING 226#define HAVE_PRIORITY_SCHEDULING