mirror of
https://github.com/taglib/taglib.git
synced 2025-05-27 21:20:26 -04:00
tagreader: Fix displaying of seconds in length, UTF-8 for ostream
The padding was wrong, 8 seconds were displayed as 0:80 instead of 0:08. Also make the output of tagreader and tagreader_c the same, including the encoding, which was still ISO-8859-1 for std::ostream.
This commit is contained in:
parent
0db487bf61
commit
135c0eb647
@ -56,18 +56,19 @@ int main(int argc, char *argv[])
|
||||
cout << "genre - \"" << tag->genre() << "\"" << endl;
|
||||
|
||||
TagLib::PropertyMap tags = f.properties();
|
||||
|
||||
unsigned int longest = 0;
|
||||
for(auto i = tags.cbegin(); i != tags.cend(); ++i) {
|
||||
if (i->first.size() > longest) {
|
||||
longest = i->first.size();
|
||||
if(!tags.isEmpty()) {
|
||||
unsigned int longest = 0;
|
||||
for(auto i = tags.cbegin(); i != tags.cend(); ++i) {
|
||||
if (i->first.size() > longest) {
|
||||
longest = i->first.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cout << "-- TAG (properties) --" << endl;
|
||||
for(auto i = tags.cbegin(); i != tags.cend(); ++i) {
|
||||
for(auto j = i->second.begin(); j != i->second.end(); ++j) {
|
||||
cout << left << std::setfill(' ') << std::setw(longest) << i->first << " - " << '"' << *j << '"' << endl;
|
||||
cout << "-- TAG (properties) --" << endl;
|
||||
for(auto i = tags.cbegin(); i != tags.cend(); ++i) {
|
||||
for(auto j = i->second.begin(); j != i->second.end(); ++j) {
|
||||
cout << left << std::setfill(' ') << std::setw(longest) << i->first << " - " << '"' << *j << '"' << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -113,7 +114,7 @@ int main(int argc, char *argv[])
|
||||
cout << "bitrate - " << properties->bitrate() << endl;
|
||||
cout << "sample rate - " << properties->sampleRate() << endl;
|
||||
cout << "channels - " << properties->channels() << endl;
|
||||
cout << "length - " << minutes << ":" << setfill('0') << setw(2) << seconds << endl;
|
||||
cout << "length - " << minutes << ":" << setfill('0') << setw(2) << right << seconds << endl;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
@ -98,11 +98,11 @@ int main(int argc, char *argv[])
|
||||
while(*keyPtr) {
|
||||
TagLib_Complex_Property_Attribute*** properties =
|
||||
taglib_complex_property_get(file, *keyPtr);
|
||||
printf("%s:\n", *keyPtr);
|
||||
if(properties != NULL) {
|
||||
TagLib_Complex_Property_Attribute*** propPtr = properties;
|
||||
while(*propPtr) {
|
||||
TagLib_Complex_Property_Attribute** attrPtr = *propPtr;
|
||||
printf("%s:\n", *keyPtr);
|
||||
while(*attrPtr) {
|
||||
TagLib_Complex_Property_Attribute *attr = *attrPtr;
|
||||
TagLib_Variant_Type type = attr->value.type;
|
||||
@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
||||
printf("%f\n", attr->value.value.doubleValue);
|
||||
break;
|
||||
case TagLib_Variant_String:
|
||||
printf("%s\n", attr->value.value.stringValue);
|
||||
printf("\"%s\"\n", attr->value.value.stringValue);
|
||||
break;
|
||||
case TagLib_Variant_StringList:
|
||||
if(attr->value.value.stringListValue) {
|
||||
|
@ -706,6 +706,6 @@ TagLib::String operator+(const TagLib::String &s1, const char *s2)
|
||||
|
||||
std::ostream &operator<<(std::ostream &s, const TagLib::String &str)
|
||||
{
|
||||
s << str.to8Bit();
|
||||
s << str.to8Bit(true);
|
||||
return s;
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ public:
|
||||
void operator()(const TagLib::String &v)
|
||||
{
|
||||
s << '"';
|
||||
for (char c : v.to8Bit()) {
|
||||
for (char c : v.to8Bit(true)) {
|
||||
if(c == '"') {
|
||||
s << "\\\"";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user