X-Git-Url: http://git.treefish.org/~alex/usetaglib.git/blobdiff_plain/2fe2220a4c8446f5212094752657a11f6c7da201..9dbc165a7224f6d08ddf18f509a498694a9b47b9:/usetaglib.cpp diff --git a/usetaglib.cpp b/usetaglib.cpp index 43ae55c..3a8f435 100644 --- a/usetaglib.cpp +++ b/usetaglib.cpp @@ -54,25 +54,19 @@ tagpair splitToTagPair (const string &rawarg) return make_pair(rawarg.substr(0, delpos), rawarg.substr(delpos+1, string::npos)); } -void action_eraseTag (const TagLib::FileRef f, const string &key) +void action_eraseTag (TagLib::PropertyMap &propmap, const string &key) { - TagLib::PropertyMap propmap = f.file()->properties(); propmap.erase(key); - f.file()->setProperties(propmap); } -void action_replaceTag (const TagLib::FileRef f, const tagpair &tagPair) +void action_replaceTag (TagLib::PropertyMap &propmap, const tagpair &tagPair) { - TagLib::PropertyMap propmap = f.file()->properties(); propmap.replace(tagPair.first, argToStringList(tagPair.second)); - f.file()->setProperties(propmap); } -void action_insertTag (const TagLib::FileRef f, const tagpair &tagPair) +void action_insertTag (TagLib::PropertyMap &propmap, const tagpair &tagPair) { - TagLib::PropertyMap propmap = f.file()->properties(); propmap.insert(tagPair.first, argToStringList(tagPair.second)); - f.file()->setProperties(propmap); } int action_printTags (const TagLib::FileRef f) @@ -116,6 +110,8 @@ int action_printAudio (const TagLib::FileRef f) void printHelp () { + return; + cout << "Usage: usetaglib [ACTION]... [FILE]..." << endl; cout << "List and edit tags on mediafiles in formats supported by libtag." << endl; cout << endl; @@ -222,6 +218,7 @@ int main(int argc, char *argv[]) if(f.isNull()) continue; + TagLib::PropertyMap propmap = f.file()->properties(); bool FCHANGED = false; for (actionqueue::iterator actit = requestedActions.begin(); actit != requestedActions.end(); ++actit) { @@ -235,24 +232,26 @@ int main(int argc, char *argv[]) break; case ERASE: - action_eraseTag(f, actit->second); + action_eraseTag(propmap, actit->second); FCHANGED = true; break; case REPLACE: - action_replaceTag(f, splitToTagPair(actit->second)); + action_replaceTag(propmap, splitToTagPair(actit->second)); FCHANGED = true; break; case INSERT: - action_insertTag(f, splitToTagPair(actit->second)); + action_insertTag(propmap, splitToTagPair(actit->second)); FCHANGED = true; break; } } - if (FCHANGED) + if (FCHANGED) { + f.file()->setProperties(propmap); f.file()->save(); + } } return 0;