From 637ea47a60ff8cede49d2c3a6e4a0605ad6a3347 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Sun, 6 Nov 2011 12:34:41 -0500 Subject: [PATCH] libsaria: Insert all tracks into one giant list This puts everything in one place for easy use (I hope) --- libsaria/library/library.h | 1 + libsaria/library/list.cpp | 13 +++++++++++++ libsaria/library/path.cpp | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/libsaria/library/library.h b/libsaria/library/library.h index e7e38f4b..d75bfde8 100644 --- a/libsaria/library/library.h +++ b/libsaria/library/library.h @@ -22,6 +22,7 @@ class LibraryPath LibraryPath(InFile &, string); ~LibraryPath(); + list *get_list(); void for_each(libsaria::SourceModel *); string get_path(); void get_info(void (*)(struct libsaria::library::PathInfo &)); diff --git a/libsaria/library/list.cpp b/libsaria/library/list.cpp index 8f636a68..6d20f8e6 100644 --- a/libsaria/library/list.cpp +++ b/libsaria/library/list.cpp @@ -1,11 +1,24 @@ +#include +using namespace std; + #include "library.h" +static list play_list; + namespace libsaria { void library::rebuild_list() { + list *path_list = get_path_list(); + list::iterator it; + list *tag_list; + + 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()); + } println("Rebuilding play list"); } diff --git a/libsaria/library/path.cpp b/libsaria/library/path.cpp index 863be70f..cacec2eb 100644 --- a/libsaria/library/path.cpp +++ b/libsaria/library/path.cpp @@ -21,6 +21,11 @@ string LibraryPath::get_path() return path; } +list *LibraryPath::get_list() +{ + return &file_list; +} + void LibraryPath::get_info(void (*info_func)(struct libsaria::library::PathInfo &)) { struct libsaria::library::PathInfo info;