libsaria: Sort the Playlist
I do this whenever the sort() function is called. I eventually want a more automatic way of doing this, so I expect the function won't exist for long.
This commit is contained in:
parent
f352952924
commit
7b6ecfdd99
|
@ -32,6 +32,7 @@ namespace libsaria
|
|||
void rm_ids(list<sid_t> &);
|
||||
void rm_track(Track *);
|
||||
|
||||
void sort();
|
||||
unsigned int size();
|
||||
sid_t next();
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Copyright (c) 2011 Bryan Schumaker.
|
||||
#include <libsaria/track.h>
|
||||
#include <libsaria/library.h>
|
||||
#include "../library.h"
|
||||
#include "list.h"
|
||||
|
||||
#include <list>
|
||||
|
@ -15,19 +16,17 @@ namespace libsaria
|
|||
|
||||
void iter::reset()
|
||||
{
|
||||
it = track_list.begin();
|
||||
lib_playlist.iter_reset();
|
||||
}
|
||||
|
||||
libsaria::Track *iter::next()
|
||||
{
|
||||
libsaria::Track *track = *it;
|
||||
it++;
|
||||
return track;
|
||||
return lib_playlist.iter_next();
|
||||
}
|
||||
|
||||
bool iter::end()
|
||||
{
|
||||
return it == track_list.end();
|
||||
return lib_playlist.iter_end();
|
||||
}
|
||||
|
||||
} /* Namespace: library */
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace libsaria
|
|||
void library::sort_list()
|
||||
{
|
||||
track_list.sort(compare_tracks);
|
||||
lib_playlist.sort();
|
||||
}
|
||||
|
||||
unsigned int library::size()
|
||||
|
|
|
@ -1,7 +1,16 @@
|
|||
// Copyright (c) 2012 Bryan Schumaker.
|
||||
#include <libsaria/files.h>
|
||||
#include <libsaria/library.h>
|
||||
#include <libsaria/playlist.h>
|
||||
|
||||
static bool compare_tracks(sid_t one, sid_t two)
|
||||
{
|
||||
libsaria::Track *t_1 = libsaria::library::get_info(one);
|
||||
libsaria::Track *t_2 = libsaria::library::get_info(two);
|
||||
/* I want to compare tracks and not pointers */
|
||||
return *t_1 < *t_2;
|
||||
}
|
||||
|
||||
namespace libsaria
|
||||
{
|
||||
|
||||
|
@ -43,6 +52,11 @@ namespace libsaria
|
|||
plist.remove(track->get_songid());
|
||||
}
|
||||
|
||||
void Playlist::sort()
|
||||
{
|
||||
plist.sort(compare_tracks);
|
||||
}
|
||||
|
||||
unsigned int Playlist::size()
|
||||
{
|
||||
return plist.size();
|
||||
|
|
Loading…
Reference in New Issue