diff options
author | Alexey Yakovenko <wakeroid@gmail.com> | 2010-08-29 17:21:06 +0200 |
---|---|---|
committer | Alexey Yakovenko <wakeroid@gmail.com> | 2010-08-29 17:21:06 +0200 |
commit | 53df4f53af196e90a7998d037f95f62105f96434 (patch) | |
tree | 6846c94dd837e31e597dda06b175db21c1a3e594 | |
parent | f14f8c26054b31c8bd23c76091664b26b9ec99a2 (diff) |
fixed current track redraw in search window
-rw-r--r-- | deadbeef.h | 1 | ||||
-rw-r--r-- | playlist.c | 9 | ||||
-rw-r--r-- | playlist.h | 3 | ||||
-rw-r--r-- | plugins.c | 1 | ||||
-rw-r--r-- | plugins/gtkui/gtkui.c | 10 |
5 files changed, 17 insertions, 7 deletions
@@ -361,6 +361,7 @@ typedef struct { DB_playItem_t *(*pl_insert_dir) (DB_playItem_t *after, const char *dirname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data); DB_playItem_t *(*pl_insert_file) (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data); int (*pl_get_idx_of) (DB_playItem_t *it); + int (*pl_get_idx_of_iter) (DB_playItem_t *it, int iter); DB_playItem_t * (*pl_get_for_idx) (int idx); DB_playItem_t * (*pl_get_for_idx_and_iter) (int idx, int iter); float (*pl_get_totaltime) (void); @@ -1539,11 +1539,16 @@ pl_get_for_idx (int idx) { int pl_get_idx_of (playItem_t *it) { + return pl_get_idx_of_iter (it, PL_MAIN); +} + +int +pl_get_idx_of_iter (playItem_t *it, int iter) { LOCK; - playItem_t *c = playlist->head[PL_MAIN]; + playItem_t *c = playlist->head[iter]; int idx = 0; while (c && c != it) { - c = c->next[PL_MAIN]; + c = c->next[iter]; idx++; } if (!c) { @@ -183,6 +183,9 @@ pl_get_for_idx_and_iter (int idx, int iter); int pl_get_idx_of (playItem_t *it); +int +pl_get_idx_of_iter (playItem_t *it, int iter); + playItem_t * pl_insert_cue_from_buffer (playItem_t *after, playItem_t *origin, const uint8_t *buffer, int buffersize, int numsamples, int samplerate); @@ -132,6 +132,7 @@ static DB_functions_t deadbeef_api = { .pl_insert_dir = (DB_playItem_t *(*) (DB_playItem_t *after, const char *dirname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data))pl_insert_dir, .pl_insert_file = (DB_playItem_t *(*) (DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data))pl_insert_file, .pl_get_idx_of = (int (*) (DB_playItem_t *it))pl_get_idx_of, + .pl_get_idx_of_iter = (int (*) (DB_playItem_t *it, int iter))pl_get_idx_of_iter, .pl_get_for_idx = (DB_playItem_t * (*)(int))pl_get_for_idx, .pl_get_for_idx_and_iter = (DB_playItem_t * (*) (int idx, int iter))pl_get_for_idx_and_iter, .pl_set_item_duration = (void (*) (DB_playItem_t *it, float duration))pl_set_item_duration, diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c index ea2299a0..5b41dcf0 100644 --- a/plugins/gtkui/gtkui.c +++ b/plugins/gtkui/gtkui.c @@ -415,11 +415,11 @@ gtkui_set_titlebar (DB_playItem_t *it) { } static void -trackinfochanged_wrapper (DdbListview *playlist, DB_playItem_t *track) { +trackinfochanged_wrapper (DdbListview *playlist, DB_playItem_t *track, int iter) { if (track) { - int idx = deadbeef->pl_get_idx_of (track); + int idx = deadbeef->pl_get_idx_of_iter (track, iter); if (idx != -1) { - ddb_listview_draw_row (DDB_LISTVIEW (playlist), idx, (DdbListviewIter)track); + ddb_listview_draw_row (playlist, idx, (DdbListviewIter)track); } } } @@ -428,11 +428,11 @@ static gboolean trackinfochanged_cb (gpointer data) { DB_playItem_t *track = (DB_playItem_t *)data; GtkWidget *playlist = lookup_widget (mainwin, "playlist"); - trackinfochanged_wrapper (DDB_LISTVIEW (playlist), track); + trackinfochanged_wrapper (DDB_LISTVIEW (playlist), track, PL_MAIN); if (searchwin && gtk_widget_get_visible (searchwin)) { GtkWidget *search = lookup_widget (searchwin, "searchlist"); - trackinfochanged_wrapper (DDB_LISTVIEW (search), track); + trackinfochanged_wrapper (DDB_LISTVIEW (search), track, PL_SEARCH); } DB_playItem_t *curr = deadbeef->streamer_get_playing_track (); |