aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/General/converter/converter.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/General/converter/converter.cpp b/src/plugins/General/converter/converter.cpp
index c7bb6c02e..be34cf433 100644
--- a/src/plugins/General/converter/converter.cpp
+++ b/src/plugins/General/converter/converter.cpp
@@ -27,6 +27,7 @@
#include <QtEndian>
#include <taglib/fileref.h>
#include <taglib/tag.h>
+#include <taglib/mpegfile.h>
#include "converter.h"
#define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8)
@@ -207,7 +208,7 @@ void Converter::run()
0x64, 0x61, 0x74, 0x61, //"data"
0x00, 0x00, 0x00, 0x00 }; //chunk size*/
- quint16 sample_size = preset["use_16bit"].toBool() ? 2 : ap.sampleSize();
+ quint16 sample_size = preset["use_16bit"].toBool() ? 2 : ap.sampleSize();
quint32 sample_rate = qToLittleEndian(ap.sampleRate());
quint16 channels = qToLittleEndian((quint16)ap.channels());
quint16 block_align = qToLittleEndian((quint16)sample_size * ap.channels());
@@ -270,7 +271,14 @@ void Converter::run()
file.tag()->setComment(QStringToTString_qt4(metadata[Qmmp::COMMENT]));
file.tag()->setYear(metadata[Qmmp::YEAR].toUInt());
file.tag()->setTrack(metadata[Qmmp::TRACK].toUInt());
- file.save();
+
+ if(full_path.endsWith(".mp3"))
+ {
+ TagLib::MPEG::File *mpeg_file = dynamic_cast <TagLib::MPEG::File *> (file.file());
+ mpeg_file->save(TagLib::MPEG::File::ID3v2, true);
+ }
+ else
+ file.save();
}
}
}