From 9c0e61b42dc6dc2cb088da42e824e864150f2816 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Sun, 6 Nov 2011 10:54:45 -0500 Subject: [PATCH] libsaria: Create track tags with an inode I need to store the inode somewhere if I want to use a linked list to store LibraryPath data. I currently have a map , so the obvious choice is to store the inode in the TrackTag structure. --- include/libsaria/tags.h | 5 +++-- libsaria/current.cpp | 2 +- libsaria/library/path.cpp | 4 ++-- libsaria/path/tags.cpp | 8 ++++++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/include/libsaria/tags.h b/include/libsaria/tags.h index e731c122..220a0622 100644 --- a/include/libsaria/tags.h +++ b/include/libsaria/tags.h @@ -22,14 +22,15 @@ class TrackTag int bitrate; int sample; int channels; + ino_t inode; void make_lenstr(); public: TrackTag(); TrackTag(const TrackTag &); - TrackTag(string); - TrackTag(InFile &); + TrackTag(string, ino_t); + TrackTag(InFile &, ino_t); ~TrackTag(); void save(OutFile &); diff --git a/libsaria/current.cpp b/libsaria/current.cpp index b69b7d8d..bd46f46d 100644 --- a/libsaria/current.cpp +++ b/libsaria/current.cpp @@ -26,7 +26,7 @@ namespace libsaria } if (!library::get_info(inode, func)) { - TrackTag tag(libsaria::audio::get_current_file()); + TrackTag tag(libsaria::audio::get_current_file(), inode); Track track(inode, &tag); func(track); } diff --git a/libsaria/library/path.cpp b/libsaria/library/path.cpp index 16bfcd69..f1693091 100644 --- a/libsaria/library/path.cpp +++ b/libsaria/library/path.cpp @@ -27,7 +27,7 @@ LibraryPath::LibraryPath(InFile &in, string dir) for (unsigned int i = 0; i < size; i++) { inode = in.read_ino(); - file_map[inode] = TrackTag(in); + file_map[inode] = TrackTag(in, inode); } } @@ -69,7 +69,7 @@ ScanTask::~ScanTask() void ScanTask::tag_file(file filepath) { try { - TrackTag tag(dir + "/" + filepath.name); + TrackTag tag(dir + "/" + filepath.name, filepath.d_ino); library->insert_track(filepath.d_ino, tag); } catch (string message) { println(message); diff --git a/libsaria/path/tags.cpp b/libsaria/path/tags.cpp index 3374e04c..7d826d92 100644 --- a/libsaria/path/tags.cpp +++ b/libsaria/path/tags.cpp @@ -28,9 +28,10 @@ TrackTag::TrackTag(const TrackTag &tag) bitrate = tag.bitrate; sample = tag.sample; channels = tag.channels; + inode = tag.inode; } -TrackTag::TrackTag(string file) +TrackTag::TrackTag(string file, ino_t inode) { Tag *tag; AudioProperties *prop; @@ -57,10 +58,12 @@ TrackTag::TrackTag(string file) sample = prop->sampleRate(); channels = prop->channels(); + inode = inode; + make_lenstr(); } -TrackTag::TrackTag(InFile &in) +TrackTag::TrackTag(InFile &in, ino_t inode) { filepath = in.read_str(); title = in.read_str(); @@ -75,6 +78,7 @@ TrackTag::TrackTag(InFile &in) bitrate = in.read_int(); sample = in.read_int(); channels = in.read_int(); + inode = inode; } TrackTag::~TrackTag()