summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2007-11-23 23:36:42 +0000
committerRobert Kukla <roolku@rockbox.org>2007-11-23 23:36:42 +0000
commita334bd2891d50fca3b073e2262d6b37ae624f1a0 (patch)
tree24dc8802d56f9542a1525215a6d922893057dd89
parentded6554cb0393bf95ab119086b4c8d704e8fd23d (diff)
downloadrockbox-a334bd2891d50fca3b073e2262d6b37ae624f1a0.tar.gz
rockbox-a334bd2891d50fca3b073e2262d6b37ae624f1a0.zip
revise commit r15463 - we still get the immediate display of runtime data in the wps, but avoid unnecessary calls while initialising/updating the database.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15781 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/metadata.c7
-rw-r--r--apps/playback.c5
-rw-r--r--apps/tagtree.c6
-rw-r--r--apps/tagtree.h1
4 files changed, 5 insertions, 14 deletions
diff --git a/apps/metadata.c b/apps/metadata.c
index 97926fe652..66719754ad 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -26,9 +26,6 @@
26#include "playback.h" 26#include "playback.h"
27#include "debug.h" 27#include "debug.h"
28#include "logf.h" 28#include "logf.h"
29#ifdef HAVE_TAGCACHE
30#include "tagtree.h"
31#endif
32#include "cuesheet.h" 29#include "cuesheet.h"
33 30
34#if CONFIG_CODEC == SWCODEC 31#if CONFIG_CODEC == SWCODEC
@@ -322,10 +319,6 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
322 lseek(fd, 0, SEEK_SET); 319 lseek(fd, 0, SEEK_SET);
323 strncpy(id3->path, trackname, sizeof(id3->path)); 320 strncpy(id3->path, trackname, sizeof(id3->path));
324 321
325#ifdef HAVE_TAGCACHE
326 tagtree_buffer_event(id3);
327#endif
328
329 return true; 322 return true;
330} 323}
331 324
diff --git a/apps/playback.c b/apps/playback.c
index 8bebe1835b..a880e4ef13 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1698,6 +1698,9 @@ static bool audio_load_track(int offset, bool start_play)
1698 { 1698 {
1699 if (get_metadata(&id3, fd, trackname)) 1699 if (get_metadata(&id3, fd, trackname))
1700 { 1700 {
1701 if (track_buffer_callback)
1702 track_buffer_callback(&id3);
1703
1701 tracks[track_widx].id3_hid = 1704 tracks[track_widx].id3_hid =
1702 bufalloc(&id3, sizeof(struct mp3entry), TYPE_ID3); 1705 bufalloc(&id3, sizeof(struct mp3entry), TYPE_ID3);
1703 tracks[track_widx].taginfo_ready = (tracks[track_widx].id3_hid >= 0); 1706 tracks[track_widx].taginfo_ready = (tracks[track_widx].id3_hid >= 0);
@@ -1871,8 +1874,6 @@ static void audio_generate_postbuffer_events(void)
1871 { 1874 {
1872 /* Mark the event 'sent' even if we don't really send one */ 1875 /* Mark the event 'sent' even if we don't really send one */
1873 tracks[cur_idx].event_sent = true; 1876 tracks[cur_idx].event_sent = true;
1874 if (track_buffer_callback && tracks[cur_idx].id3_hid >= 0)
1875 track_buffer_callback(bufgetid3(tracks[cur_idx].id3_hid));
1876 } 1877 }
1877 if (cur_idx == track_widx) 1878 if (cur_idx == track_widx)
1878 break; 1879 break;
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 8f83c861bb..8298fe24ae 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -633,7 +633,7 @@ static int compare(const void *p1, const void *p2)
633 return strncasecmp(e1->name, e2->name, MAX_PATH); 633 return strncasecmp(e1->name, e2->name, MAX_PATH);
634} 634}
635 635
636void tagtree_buffer_event(struct mp3entry *id3) 636static void tagtree_buffer_event(struct mp3entry *id3)
637{ 637{
638 /* Do not gather data unless proper setting has been enabled. */ 638 /* Do not gather data unless proper setting has been enabled. */
639 if (!global_settings.runtimedb) 639 if (!global_settings.runtimedb)
@@ -700,7 +700,7 @@ static void tagtree_unbuffer_event(struct mp3entry *id3)
700 logf("ube:%s", id3->path); 700 logf("ube:%s", id3->path);
701 logf("-> %ld/%ld", playcount, playtime); 701 logf("-> %ld/%ld", playcount, playtime);
702 logf("-> %ld/%ld/%ld", id3->elapsed, id3->length, MIN(id3->length, id3->elapsed + 15 * 1000)); 702 logf("-> %ld/%ld/%ld", id3->elapsed, id3->length, MIN(id3->length, id3->elapsed + 15 * 1000));
703 703
704 /* Queue the updates to the tagcache system. */ 704 /* Queue the updates to the tagcache system. */
705 tagcache_update_numeric(id3->tagcache_idx, tag_playcount, playcount); 705 tagcache_update_numeric(id3->tagcache_idx, tag_playcount, playcount);
706 tagcache_update_numeric(id3->tagcache_idx, tag_playtime, playtime); 706 tagcache_update_numeric(id3->tagcache_idx, tag_playtime, playtime);
@@ -921,9 +921,7 @@ void tagtree_init(void)
921 root_menu = 0; 921 root_menu = 0;
922 922
923 uniqbuf = buffer_alloc(UNIQBUF_SIZE); 923 uniqbuf = buffer_alloc(UNIQBUF_SIZE);
924#if CONFIG_CODEC != SWCODEC
925 audio_set_track_buffer_event(tagtree_buffer_event); 924 audio_set_track_buffer_event(tagtree_buffer_event);
926#endif
927 audio_set_track_unbuffer_event(tagtree_unbuffer_event); 925 audio_set_track_unbuffer_event(tagtree_unbuffer_event);
928} 926}
929 927
diff --git a/apps/tagtree.h b/apps/tagtree.h
index 76060cbe40..e915dcec05 100644
--- a/apps/tagtree.h
+++ b/apps/tagtree.h
@@ -48,7 +48,6 @@ char *tagtree_get_title(struct tree_context* c);
48int tagtree_get_attr(struct tree_context* c); 48int tagtree_get_attr(struct tree_context* c);
49int tagtree_get_icon(struct tree_context* c); 49int tagtree_get_icon(struct tree_context* c);
50int tagtree_get_filename(struct tree_context* c, char *buf, int buflen); 50int tagtree_get_filename(struct tree_context* c, char *buf, int buflen);
51void tagtree_buffer_event(struct mp3entry *id3);
52 51
53#endif 52#endif
54#endif 53#endif