63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
|
|
#include <list>
|
|
using namespace std;
|
|
|
|
#include <libsaria/audio.h>
|
|
#include <libsaria/print.h>
|
|
#include "library.h"
|
|
|
|
static list<TrackTag> play_list;
|
|
static list<TrackTag>::iterator cur_track = play_list.end();
|
|
|
|
static bool find_id(ino_t &inode, list<TrackTag>::iterator &it)
|
|
{
|
|
for (it = play_list.begin(); it != play_list.end(); it++) {
|
|
if (it->get_inode() == inode)
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
namespace libsaria
|
|
{
|
|
|
|
void library::rebuild_list()
|
|
{
|
|
list<LibraryPath> *path_list = get_path_list();
|
|
list<LibraryPath>::iterator it;
|
|
list<TrackTag> *tag_list;
|
|
list<TrackTag>::iterator i;
|
|
|
|
play_list.clear();
|
|
|
|
for (it = path_list->begin(); it != path_list->end(); it++) {
|
|
tag_list = it->get_list();
|
|
play_list.insert(play_list.end(), tag_list->begin(), tag_list->end());
|
|
}
|
|
}
|
|
|
|
void library::for_each(SourceModel *model)
|
|
{
|
|
list<TrackTag>::iterator it;
|
|
for (it = play_list.begin(); it != play_list.end(); it++) {
|
|
Track track = Track(&(*it));
|
|
model->insert(track);
|
|
}
|
|
}
|
|
|
|
void library::play_id(ino_t &id)
|
|
{
|
|
list<TrackTag>::iterator it;
|
|
if (find_id(id, it)) {
|
|
cur_track = it;
|
|
libsaria::audio::load(it->get_filepath());
|
|
}
|
|
}
|
|
|
|
unsigned int library::size()
|
|
{
|
|
return play_list.size();
|
|
}
|
|
|
|
}; /* Namespace: libsaria */
|