diff --git a/libsaria/library/path.cpp b/libsaria/library/path.cpp index 819761f8..f7019900 100644 --- a/libsaria/library/path.cpp +++ b/libsaria/library/path.cpp @@ -2,7 +2,6 @@ #include using namespace std; -#include #include #include "library.h" @@ -18,83 +17,14 @@ LibraryPath::~LibraryPath() { } -void LibraryPath::insert_track(TrackTag &tag) -{ - file_list.push_back(tag); -} - -void LibraryPath::update() -{ - ScanTask *task = new ScanTask(this, path, false); - task->queue(); -} - unsigned int LibraryPath::size() { return file_list.size(); } - -/* - * Definitions for the ScanTask class - */ -ScanTask::ScanTask(LibraryPath *lib_path, string scan_dir, bool end) -{ - library = lib_path; - dir = scan_dir; - end_dir = end; -} - -ScanTask::~ScanTask() -{} - -void ScanTask::tag_file(file filepath) -{ - try { - TrackTag tag(dir + "/" + filepath.name, filepath.d_ino); - library->insert_track(tag); - } catch (string message) { - println(message); - } -} - -/* - * 1) Read a directory - * 2) Find tags for each music file - * 3) Create and queue a new ScanTask for each subdirectory - */ -void ScanTask::run_task() -{ - int last, i = 0; - list files; - list dirs; - list::iterator it; - ScanTask *scan; - SaveTask *save; - - readdir(dir, files, dirs); - - for (it = files.begin(); it != files.end(); it++) - tag_file(*it); - - last = dirs.size() - 1; - for (it = dirs.begin(); it != dirs.end(); it++) { - scan = new ScanTask(library, dir + "/" + (*it).name, i == last); - scan->queue(); - i++; - } - - if (end_dir == true) { - print("Library path size: "); - println(library->size()); - save = new SaveTask(libsaria::library::save); - save->queue_front(); - libsaria::library::refresh(); - } -} - namespace libsaria { + void library::add_path(string dir) { get_path_list()->push_back(LibraryPath(dir)); @@ -116,8 +46,4 @@ namespace libsaria } } - void library::update_path(string dir) - { - get_path(dir)->update(); - } }; /* Namespace: libsaria */ diff --git a/libsaria/library/update.cpp b/libsaria/library/update.cpp new file mode 100644 index 00000000..ee1a48e6 --- /dev/null +++ b/libsaria/library/update.cpp @@ -0,0 +1,83 @@ + +#include +#include +#include "library.h" + +void LibraryPath::insert_track(TrackTag &tag) +{ + file_list.push_back(tag); +} + +void LibraryPath::update() +{ + ScanTask *task = new ScanTask(this, path, false); + task->queue(); +} + +/* + * Definitions for the ScanTask class + */ +ScanTask::ScanTask(LibraryPath *lib_path, string scan_dir, bool end) +{ + library = lib_path; + dir = scan_dir; + end_dir = end; +} + +ScanTask::~ScanTask() +{} + +void ScanTask::tag_file(file filepath) +{ + try { + TrackTag tag(dir + "/" + filepath.name, filepath.d_ino); + library->insert_track(tag); + } catch (string message) { + println(message); + } +} + +/* + * 1) Read a directory + * 2) Find tags for each music file + * 3) Create and queue a new ScanTask for each subdirectory + */ +void ScanTask::run_task() +{ + int last, i = 0; + list files; + list dirs; + list::iterator it; + ScanTask *scan; + SaveTask *save; + + readdir(dir, files, dirs); + + for (it = files.begin(); it != files.end(); it++) + tag_file(*it); + + last = dirs.size() - 1; + for (it = dirs.begin(); it != dirs.end(); it++) { + scan = new ScanTask(library, dir + "/" + (*it).name, i == last); + scan->queue(); + i++; + } + + if (end_dir == true) { + print("Library path size: "); + println(library->size()); + save = new SaveTask(libsaria::library::save); + save->queue_front(); + libsaria::library::refresh(); + } +} + +namespace libsaria +{ + + void library::update_path(string dir) + { + get_path(dir)->update(); + } + +}; /* Namespace: libsaria */