aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-11-18 21:51:28 +0100
committerMax Kellermann <max@duempel.org>2008-11-18 21:51:28 +0100
commite12ebb484bf369ea425e93521d99cc6813996e4e (patch)
tree1050c03b3a84055c5d5334459034927d25c1e6e8
parent17a8acbf69f4c6649f274ab506a0bb01c00b7a1a (diff)
downloadmpd-e12ebb484bf369ea425e93521d99cc6813996e4e.tar.gz
mpd-e12ebb484bf369ea425e93521d99cc6813996e4e.tar.xz
mpd-e12ebb484bf369ea425e93521d99cc6813996e4e.zip
filelist: filelist_find_song() returns position instead of pointer
Making the function return the index makes it more flexible: those who want the pointer can use filelist_get(), and the others may use the index for other purposes.
-rw-r--r--src/filelist.c6
-rw-r--r--src/filelist.h2
-rw-r--r--src/screen_browser.c6
3 files changed, 8 insertions, 6 deletions
diff --git a/src/filelist.c b/src/filelist.c
index 415eec402..2e078635a 100644
--- a/src/filelist.c
+++ b/src/filelist.c
@@ -118,7 +118,7 @@ filelist_sort(struct filelist *filelist, GCompareFunc compare_func)
compare_func);
}
-struct filelist_entry *
+int
filelist_find_song(struct filelist *fl, const struct mpd_song *song)
{
guint i;
@@ -133,11 +133,11 @@ filelist_find_song(struct filelist *fl, const struct mpd_song *song)
struct mpd_song *song2 = entity->info.song;
if (strcmp(song->file, song2->file) == 0)
- return entry;
+ return i;
}
}
- return NULL;
+ return -1;
}
int
diff --git a/src/filelist.h b/src/filelist.h
index d7d4dff88..bc467fb65 100644
--- a/src/filelist.h
+++ b/src/filelist.h
@@ -73,7 +73,7 @@ filelist_move(struct filelist *filelist, struct filelist *from);
void
filelist_sort(struct filelist *filelist, GCompareFunc compare_func);
-struct filelist_entry *
+int
filelist_find_song(struct filelist *flist, const struct mpd_song *song);
int
diff --git a/src/screen_browser.c b/src/screen_browser.c
index b5ce64171..6a5bbd233 100644
--- a/src/screen_browser.c
+++ b/src/screen_browser.c
@@ -56,11 +56,13 @@ clear_highlights(mpdclient_filelist_t *fl)
static void
set_highlight(mpdclient_filelist_t *fl, mpd_Song *song, int highlight)
{
- struct filelist_entry *entry = filelist_find_song(fl, song);
+ int i = filelist_find_song(fl, song);
+ struct filelist_entry *entry;
- if (entry == NULL)
+ if (i < 0)
return;
+ entry = filelist_get(fl, i);
if (highlight)
entry->flags |= HIGHLIGHT;
else