propmap.insert(tagPair.first, argToStringList(tagPair.second));
}
-int action_printTags (const TagLib::FileRef f)
+int action_printTags (const TagLib::FileRef f, TagLib::PropertyMap &propmap)
{
if(f.tag()) {
- TagLib::PropertyMap tags = f.file()->properties();
unsigned int longest = 0;
- for(TagLib::PropertyMap::ConstIterator i = tags.begin(); i != tags.end(); ++i) {
+ for(TagLib::PropertyMap::ConstIterator i = propmap.begin(); i != propmap.end(); ++i) {
if (i->first.size() > longest) {
longest = i->first.size();
}
}
cout << "-- TAG (properties) --" << endl;
- for(TagLib::PropertyMap::ConstIterator i = tags.begin(); i != tags.end(); ++i) {
+ for(TagLib::PropertyMap::ConstIterator i = propmap.begin(); i != propmap.end(); ++i) {
for(TagLib::StringList::ConstIterator j = i->second.begin(); j != i->second.end(); ++j) {
cout << i->first << "=" << *j << endl;
}
}
void printHelp ()
-{
- return;
-
+{
cout << "Usage: usetaglib [ACTION]... [FILE]..." << endl;
- cout << "List and edit tags on mediafiles in formats supported by libtag." << endl;
+ cout << "Read and edit meta-data of audio formats supported by taglib." << endl;
cout << endl;
cout << "-h, --help Show this help" << endl;
cout << endl;
cout << "ACTIONS" << endl;
+ cout << " If multiple actions are specified they are executed in given order." << endl;
+ cout << endl;
cout << setfill(' ') << setw(37) << left << " -l, --list"
<< "list all tags (implicit if no action specified)"<< endl;
cout << setfill(' ') << setw(37) << left << " -a, --listaudio"
cout << "EXAMPLES" << endl;
cout << " usetaglib file.ogg" << endl;
cout << " usetaglib -e ALBUM file.flac" << endl;
- cout << " usetaglib -i ARTIST=Horst=Hubert file.mp3" << endl;
- cout << " usetaglib -r ARTIST=Horst file.ogg" << endl;
+ cout << " usetaglib -r \"ALBUM=New Album\" -i ARTIST=Horst=Hubert file.mp3" << endl;
+ cout << " usetaglib -r ARTIST=Horst -l file1.ogg file2.mp3" << endl;
+ cout << " usetaglib -i \"ALBUMARTIST=Horst und Hubert\" file.ogg" << endl;
+ cout << " usetaglib --insert=\"ALBUMARTIST=Horst und Hubert\" file.ogg" << endl;
}
int main(int argc, char *argv[])
for (actionqueue::iterator actit = requestedActions.begin(); actit != requestedActions.end(); ++actit) {
switch (actit->first) {
case LIST:
- action_printTags(f);
+ action_printTags(f, propmap);
break;
case AUDIO: