diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-09-19 15:11:58 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-09-19 15:11:58 +0000 |
| commit | a849e93804c5662d68c478e3b6fb9ea301795809 (patch) | |
| tree | aa71632f6b0b821280fb457b6090271b3d47cacf /src/plugins/Input | |
| parent | a09f7ea6f41f0744e9d34361aa146652e94cf74a (diff) | |
| download | qmmp-a849e93804c5662d68c478e3b6fb9ea301795809.tar.gz qmmp-a849e93804c5662d68c478e3b6fb9ea301795809.tar.bz2 qmmp-a849e93804c5662d68c478e3b6fb9ea301795809.zip | |
enabled vorbis plugin, fixed translation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1234 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input')
22 files changed, 504 insertions, 405 deletions
diff --git a/src/plugins/Input/CMakeLists.txt b/src/plugins/Input/CMakeLists.txt index 6ac96c92a..a22de859b 100644 --- a/src/plugins/Input/CMakeLists.txt +++ b/src/plugins/Input/CMakeLists.txt @@ -3,7 +3,7 @@ INCLUDE(FindPkgConfig) SET(USE_MAD TRUE CACHE BOOL "enable/disable mad plugin") #SET(USE_FLAC TRUE CACHE BOOL "enable/disable flac plugin") -#SET(USE_VORBIS TRUE CACHE BOOL "enable/disable ogg vorbis plugin") +SET(USE_VORBIS TRUE CACHE BOOL "enable/disable ogg vorbis plugin") #SET(USE_FFMPEG TRUE CACHE BOOL "enable/disable ffmpeg plugin") #SET(USE_MPC TRUE CACHE BOOL "enable/disable mpc plugin") #SET(USE_SNDFILE TRUE CACHE BOOL "enable/disable sndfile plugin") diff --git a/src/plugins/Input/mad/mpegmetadatamodel.h b/src/plugins/Input/mad/mpegmetadatamodel.h index 0b134fd3f..06ba24735 100644 --- a/src/plugins/Input/mad/mpegmetadatamodel.h +++ b/src/plugins/Input/mad/mpegmetadatamodel.h @@ -28,6 +28,7 @@ class QTextCodec; class MPEGMetaDataModel : public MetaDataModel { +Q_OBJECT public: MPEGMetaDataModel(const QString &path, QObject *parent); ~MPEGMetaDataModel(); diff --git a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts b/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts index b58ae0985..ca00fc666 100644 --- a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts +++ b/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="1.1" language="uk"> -<defaultcodec></defaultcodec> +<!DOCTYPE TS> +<TS version="2.0" language="uk"> <context> <name>DecoderMADFactory</name> <message> @@ -67,6 +67,9 @@ <translation>Гц</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="77"/> + <location filename="../mpegmetadatamodel.cpp" line="80"/> + <location filename="../mpegmetadatamodel.cpp" line="83"/> <location filename="../mpegmetadatamodel.cpp" line="86"/> <source>Mode</source> <translation>Режим</translation> @@ -82,26 +85,33 @@ <translation>Розмір файла</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="92"/> <location filename="../mpegmetadatamodel.cpp" line="94"/> <source>Protection</source> <translation>Захищено</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="92"/> + <location filename="../mpegmetadatamodel.cpp" line="96"/> <location filename="../mpegmetadatamodel.cpp" line="100"/> <source>Yes</source> <translation>Так</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="94"/> + <location filename="../mpegmetadatamodel.cpp" line="98"/> <location filename="../mpegmetadatamodel.cpp" line="102"/> <source>No</source> <translation>Ні</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="96"/> <location filename="../mpegmetadatamodel.cpp" line="98"/> <source>Copyright</source> <translation>Авторське право</translation> </message> <message> + <location filename="../mpegmetadatamodel.cpp" line="100"/> <location filename="../mpegmetadatamodel.cpp" line="102"/> <source>Original</source> <translation>Оригінал</translation> @@ -110,11 +120,15 @@ <context> <name>SettingsDialog</name> <message> + <location filename="../settingsdialog.ui" line="47"/> + <location filename="../settingsdialog.ui" line="94"/> <location filename="../settingsdialog.ui" line="141"/> <source>ID3v1</source> <translation></translation> </message> <message> + <location filename="../settingsdialog.ui" line="52"/> + <location filename="../settingsdialog.ui" line="99"/> <location filename="../settingsdialog.ui" line="146"/> <source>ID3v2</source> <translation></translation> @@ -145,11 +159,15 @@ <translation>Перший:</translation> </message> <message> + <location filename="../settingsdialog.ui" line="57"/> + <location filename="../settingsdialog.ui" line="104"/> <location filename="../settingsdialog.ui" line="151"/> <source>APE</source> <translation>APE</translation> </message> <message> + <location filename="../settingsdialog.ui" line="62"/> + <location filename="../settingsdialog.ui" line="109"/> <location filename="../settingsdialog.ui" line="156"/> <source>Disabled</source> <translation>Вимкнути</translation> diff --git a/src/plugins/Input/vorbis/CMakeLists.txt b/src/plugins/Input/vorbis/CMakeLists.txt index 5b10c736b..18b9e9226 100644 --- a/src/plugins/Input/vorbis/CMakeLists.txt +++ b/src/plugins/Input/vorbis/CMakeLists.txt @@ -34,13 +34,13 @@ link_directories(${VORBIS_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS}) SET(libvorbis_SRCS decoder_vorbis.cpp decodervorbisfactory.cpp - detailsdialog.cpp + vorbismetadatamodel.cpp ) SET(libvorbis_MOC_HDRS decodervorbisfactory.h decoder_vorbis.h - detailsdialog.h + vorbismetadatamodel.h ) SET(libvorbis_RCCS translations/translations.qrc) diff --git a/src/plugins/Input/vorbis/decoder_vorbis.cpp b/src/plugins/Input/vorbis/decoder_vorbis.cpp index 7325967b0..33836f016 100644 --- a/src/plugins/Input/vorbis/decoder_vorbis.cpp +++ b/src/plugins/Input/vorbis/decoder_vorbis.cpp @@ -58,7 +58,7 @@ static int oggseek(void *src, int64_t offset, int whence) static int oggclose(void *src) { DecoderVorbis *dogg = (DecoderVorbis *) src; - dogg->input()->close(); + //dogg->input()->close(); return 0; } @@ -73,8 +73,8 @@ static long oggtell(void *src) // Decoder class -DecoderVorbis::DecoderVorbis(QObject *parent, DecoderFactory *d, QIODevice *i, Output *o) - : Decoder(parent, d, i, o) +DecoderVorbis::DecoderVorbis(QIODevice *i) + : Decoder(i) { inited = FALSE; m_totalTime = 0; @@ -220,15 +220,15 @@ void DecoderVorbis::updateTags() + strlen ("discnumber=")))); } - stateHandler()->dispatch(metaData); + StateHandler::instance()->dispatch(metaData); } -void DecoderVorbis::seekAudio(qint64 time) +void DecoderVorbis::seek(qint64 time) { ov_time_seek(&oggfile, (double) time/1000); } -qint64 DecoderVorbis::readAudio(char *data, qint64 maxSize) +qint64 DecoderVorbis::read(char *data, qint64 maxSize) { len = -1; while (len < 0) diff --git a/src/plugins/Input/vorbis/decoder_vorbis.h b/src/plugins/Input/vorbis/decoder_vorbis.h index b20b26ab7..eeac19c07 100644 --- a/src/plugins/Input/vorbis/decoder_vorbis.h +++ b/src/plugins/Input/vorbis/decoder_vorbis.h @@ -15,7 +15,7 @@ class DecoderVorbis : public Decoder { public: - DecoderVorbis(QObject *, DecoderFactory *, QIODevice *, Output *); + DecoderVorbis(QIODevice *); virtual ~DecoderVorbis(); // Standard Decoder API @@ -24,8 +24,8 @@ public: int bitrate(); private: - virtual qint64 readAudio(char *data, qint64 maxSize); - void seekAudio(qint64 time); + virtual qint64 read(char *data, qint64 maxSize); + virtual void seek(qint64 time); // helper functions void deinit(); diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp index 8dcd738c7..ae81e46fa 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp +++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp @@ -22,8 +22,8 @@ #include <taglib/fileref.h> #include <taglib/vorbisfile.h> -#include "detailsdialog.h" #include "decoder_vorbis.h" +#include "vorbismetadatamodel.h" #include "decodervorbisfactory.h" @@ -54,13 +54,19 @@ const DecoderProperties DecoderVorbisFactory::properties() const properties.contentType = "application/ogg;audio/x-vorbis+ogg"; properties.hasAbout = TRUE; properties.hasSettings = FALSE; + properties.noInput = FALSE; return properties; } -Decoder *DecoderVorbisFactory::create(QObject *parent, QIODevice *input, - Output *output, const QString&) +Decoder *DecoderVorbisFactory::create(const QString &path, QIODevice *input) { - return new DecoderVorbis(parent, this, input, output); + Q_UNUSED(path); + return new DecoderVorbis(input); +} + +MetaDataModel* DecoderVorbisFactory::createMetaDataModel(const QString &path, QObject *parent) +{ + return new VorbisMetaDataModel(path, parent); } QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, bool useMetaData) @@ -105,13 +111,6 @@ QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, return list; } -QObject* DecoderVorbisFactory::showDetails(QWidget *parent, const QString &path) -{ - DetailsDialog *d = new DetailsDialog(parent, path); - d -> show(); - return d; -} - void DecoderVorbisFactory::showSettings(QWidget *) {} diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.h b/src/plugins/Input/vorbis/decodervorbisfactory.h index 5a80c26d8..9d940c855 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.h +++ b/src/plugins/Input/vorbis/decodervorbisfactory.h @@ -29,10 +29,11 @@ #include <qmmp/output.h> #include <qmmp/decoderfactory.h> #include <qmmp/fileinfo.h> +#include <qmmp/metadatamodel.h> - - - +/** + @author Ilya Kotov <forkotov02@hotmail.ru> +*/ class DecoderVorbisFactory : public QObject, DecoderFactory { @@ -43,8 +44,8 @@ public: bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; - Decoder *create(QObject *, QIODevice *, Output *, const QString &); - //FileInfo *createFileInfo(const QString &source); + Decoder *create(const QString &path, QIODevice *input); + MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); QObject* showDetails(QWidget *parent, const QString &path); void showSettings(QWidget *parent); diff --git a/src/plugins/Input/vorbis/detailsdialog.cpp b/src/plugins/Input/vorbis/detailsdialog.cpp deleted file mode 100644 index d3f1095c3..000000000 --- a/src/plugins/Input/vorbis/detailsdialog.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2009 by Ilya Kotov * - * forkotov02@hotmail.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include <taglib/tag.h> -#include <taglib/fileref.h> -#include <taglib/vorbisfile.h> -#include <taglib/xiphcomment.h> -#include <taglib/tmap.h> - -#include <QFile> -#include <QFileInfo> - -#include "detailsdialog.h" - -#define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8) -#define TStringToQString_qt4(s) QString::fromUtf8(s.toCString(TRUE)).trimmed() - -DetailsDialog::DetailsDialog(QWidget *parent, const QString &path) - : AbstractDetailsDialog(parent) -{ - m_path = path; - if (QFile::exists(m_path)) - { - loadVorbisInfo(); - loadTags(); - blockSaveButton(!QFileInfo(m_path).isWritable()); - } - else - blockSaveButton(); -} - -DetailsDialog::~DetailsDialog() -{} - -void DetailsDialog::loadVorbisInfo() -{ - TagLib::Ogg::Vorbis::File f (m_path.toLocal8Bit()); - QMap <QString, QString> ap; - QString text = QString("%1").arg(f.audioProperties()->length()/60); - text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0')); - ap.insert(tr("Length"), text); - ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate())); - ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels())); - ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate())); - ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024)); - setAudioProperties(ap); -} - -void DetailsDialog::loadTags() -{ - TagLib::FileRef f (m_path.toLocal8Bit()); - setMetaData(Qmmp::TITLE, TStringToQString_qt4(f.tag()->title())); - setMetaData(Qmmp::ARTIST, TStringToQString_qt4(f.tag()->artist())); - setMetaData(Qmmp::ALBUM, TStringToQString_qt4(f.tag()->album())); - setMetaData(Qmmp::COMMENT, TStringToQString_qt4(f.tag()->comment())); - setMetaData(Qmmp::GENRE, TStringToQString_qt4(f.tag()->genre())); - setMetaData(Qmmp::YEAR, f.tag()->year()); - setMetaData(Qmmp::TRACK, f.tag()->track()); - setMetaData(Qmmp::URL, m_path); - TagLib::Ogg::Vorbis::File *file = dynamic_cast<TagLib::Ogg::Vorbis::File *>(f.file()); - TagLib::StringList fld; - if(file->tag() && !(fld = file->tag()->fieldListMap()["COMPOSER"]).isEmpty()) - setMetaData(Qmmp::COMPOSER, TStringToQString_qt4(fld.toString())); - if(file->tag() && !(fld = file->tag()->fieldListMap()["DISCNUMBER"]).isEmpty()) - setMetaData(Qmmp::DISCNUMBER, TStringToQString_qt4(fld.toString())); -} - -void DetailsDialog::writeTags() -{ - TagLib::FileRef f (m_path.toLocal8Bit()); - f.tag()->setTitle(QStringToTString_qt4(strMetaData(Qmmp::TITLE))); - f.tag()->setArtist(QStringToTString_qt4(strMetaData(Qmmp::ARTIST))); - f.tag()->setAlbum(QStringToTString_qt4(strMetaData(Qmmp::ALBUM))); - f.tag()->setComment(QStringToTString_qt4(strMetaData(Qmmp::COMMENT))); - f.tag()->setGenre(QStringToTString_qt4(strMetaData(Qmmp::GENRE))); - f.tag()->setYear(intMetaData(Qmmp::YEAR)); - f.tag()->setTrack(intMetaData(Qmmp::TRACK)); - TagLib::Ogg::Vorbis::File *file = dynamic_cast<TagLib::Ogg::Vorbis::File *>(f.file()); - strMetaData(Qmmp::COMPOSER).isEmpty() ? - file->tag()->removeField("COMPOSER"): - file->tag()->addField("COMPOSER", QStringToTString_qt4(strMetaData(Qmmp::COMPOSER)), TRUE); - intMetaData(Qmmp::DISCNUMBER) == 0 ? - file->tag()->removeField("DISCNUMBER"): - file->tag()->addField("DISCNUMBER", - QStringToTString_qt4(strMetaData(Qmmp::DISCNUMBER)), TRUE); - f.save(); -} diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts index 13d62f3dd..a53e7bb22 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_cs.ts @@ -14,67 +14,67 @@ <translation>Soubory Ogg-Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>O modulu Ogg-Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Vstupní modul Qmmp Ogg-Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Zdrojový kód je založen na projektu mq3</translation> </message> </context> <context> - <name>DetailsDialog</name> - <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> - <translation>Délka</translation> + <translation type="unfinished">Délka</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> - <translation>Vzorkovací frekvence</translation> + <translation type="unfinished">Vzorkovací frekvence</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> + <location filename="../vorbismetadatamodel.cpp" line="51"/> <source>Channels</source> - <translation>Počet kanálů</translation> + <translation type="unfinished">Počet kanálů</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> - <translation>Datový tok</translation> + <translation type="unfinished">Datový tok</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> - <translation>Velikost souboru</translation> + <translation type="unfinished">Velikost souboru</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts index c3274f221..5dcb3d7c9 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_de.ts @@ -14,67 +14,67 @@ <translation>Ogg-Vorbis-Dateien</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Über Ogg-Vorbis-Audio-Modul</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Qmmp Ogg-Vorbis-Audio-Modul</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Quellcode basiert auf dem mq3-Projekt</translation> </message> </context> <context> - <name>DetailsDialog</name> - <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> - <translation>Länge</translation> + <translation type="unfinished">Länge</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> - <translation>Abtastrate</translation> + <translation type="unfinished">Abtastrate</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> + <location filename="../vorbismetadatamodel.cpp" line="51"/> <source>Channels</source> - <translation>Kanäle</translation> + <translation type="unfinished">Kanäle</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> - <translation>Bitrate</translation> + <translation type="unfinished">Bitrate</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> - <translation>Dateigröße</translation> + <translation type="unfinished">Dateigröße</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts index 0438b2859..bdb34081b 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_it.ts @@ -14,67 +14,67 @@ <translation>Brani Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Info sul modulo audio Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Modulo audio Ogg Vorbis per Qmmp</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autore: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Codice sorgente basato sul Progetto mq3</translation> </message> </context> <context> - <name>DetailsDialog</name> - <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="51"/> <source>Channels</source> - <translation>Canali</translation> + <translation type="unfinished">Canali</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> - <translation>Campionamento bit</translation> + <translation type="unfinished">Campionamento bit</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> - <translation>Dimensione file</translation> + <translation type="unfinished">Dimensione file</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts index 857a793a4..1f6cc045f 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_lt.ts @@ -14,67 +14,67 @@ <translation>Ogg Vorbis bylos</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Apie Ogg Vorbis audio įskiepį</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Qmmp Ogg Vorbis audio įskiepis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Išvesties kodas sukurtas mq3 pagrindu</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation type="unfinished"></translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts index a5a290b59..dfd604381 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_pl.ts @@ -14,67 +14,67 @@ <translation>Pliki Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>O wtyczce Ogg Vorbis Audio</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Wtyczka Ogg Vorbis dla Qmmp</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Kod źródłowy oparty jest na projekcie mq3</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> - <translation>Długość</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation></translation> + <translation type="unfinished">Długość</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> - <translation>Próbkowanie</translation> + <translation type="unfinished">Próbkowanie</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation>Kanały</translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation></translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished">Kanały</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> - <translation>Szybkość transmisji</translation> + <translation type="unfinished">Szybkość transmisji</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation></translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> - <translation>Wielkość pliku</translation> + <translation type="unfinished">Wielkość pliku</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished"></translation> </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts index 1cac01d3b..c27ae7eef 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts @@ -14,67 +14,67 @@ <translation>Файлы Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Об аудио-модуле Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Аудио-модуль Ogg Vorbis для Qmmp</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Исходный код основан на проекте mq3</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Гц</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation>Длительность</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation>Дискретизация</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation>Каналов</translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation>Гц</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>Кб/с</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation>Каналов</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> <translation>Битовая частота</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>Кб</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation>Кб/с</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> <translation>Размер файла</translation> </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation>Кб</translation> + </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts index 0a6c3c920..28a6315ae 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_tr.ts @@ -14,67 +14,67 @@ <translation>Ogg Vorbis Dosyaları</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Ogg Vorbis Ses Eklentisi Hakkında</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Qmmp Ogg Vorbis Ses Eklentisi</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Yazan: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Kaynak kodu mq3 projesi temellidir</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation type="unfinished"></translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts index 3780314f5..93cbba72b 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_uk_UA.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="1.1" language="uk"> -<defaultcodec></defaultcodec> +<!DOCTYPE TS> +<TS version="2.0" language="uk"> <context> <name>DecoderVorbisFactory</name> <message> @@ -14,67 +14,67 @@ <translation>Файли Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>Про аудіо-модуль Ogg Vorbis</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Аудіо-модуль Ogg Vorbis для Qmmp</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Розробник: Ілля Котов <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>Вихідний код базується на проекті mq3</translation> </message> </context> <context> - <name>DetailsDialog</name> - <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Гц</translation> - </message> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> - <translation>Тривалість</translation> + <translation type="unfinished">Тривалість</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> - <translation>Частота</translation> + <translation type="unfinished">Частота</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation>Канали</translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Гц</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>Кб/с</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished">Канали</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> - <translation>Бітрейт</translation> + <translation type="unfinished">Бітрейт</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>Кб</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">Кб/с</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> - <translation>Розмір файлу</translation> + <translation type="unfinished">Розмір файлу</translation> + </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">Кб</translation> </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts index 392a252e4..5ac594d04 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_CN.ts @@ -14,67 +14,67 @@ <translation>Ogg Vorbis 文件</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>关于 Ogg Vorbis 音频插件</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Qmmp Ogg Vorbis 音频插件</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>源代码基于 mq3 项目</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation type="unfinished"></translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts index 34f32f6eb..9b5d16014 100644 --- a/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts +++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_zh_TW.ts @@ -14,67 +14,67 @@ <translation>Ogg Vorbis 檔案</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="120"/> + <location filename="../decodervorbisfactory.cpp" line="119"/> <source>About Ogg Vorbis Audio Plugin</source> <translation>關於 Ogg Vorbis 聲訊插件</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="121"/> + <location filename="../decodervorbisfactory.cpp" line="120"/> <source>Qmmp Ogg Vorbis Audio Plugin</source> <translation>Qmmp Ogg Vorbis 聲訊插件</translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="122"/> + <location filename="../decodervorbisfactory.cpp" line="121"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decodervorbisfactory.cpp" line="123"/> + <location filename="../decodervorbisfactory.cpp" line="122"/> <source>Source code based on mq3 progect</source> <translation>源碼基於 mq3 項目</translation> </message> </context> <context> - <name>DetailsDialog</name> + <name>VorbisMetaDataModel</name> <message> - <location filename="../detailsdialog.cpp" line="59"/> - <source>Hz</source> - <translation>Hz</translation> - </message> - <message> - <location filename="../detailsdialog.cpp" line="58"/> + <location filename="../vorbismetadatamodel.cpp" line="49"/> <source>Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="59"/> + <location filename="../vorbismetadatamodel.cpp" line="50"/> <source>Sample rate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="60"/> - <source>Channels</source> - <translation type="unfinished"></translation> + <location filename="../vorbismetadatamodel.cpp" line="50"/> + <source>Hz</source> + <translation type="unfinished">Hz</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> - <source>kbps</source> - <translation>kbps</translation> + <location filename="../vorbismetadatamodel.cpp" line="51"/> + <source>Channels</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="61"/> + <location filename="../vorbismetadatamodel.cpp" line="52"/> <source>Bitrate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> - <source>KB</source> - <translation>KB</translation> + <location filename="../vorbismetadatamodel.cpp" line="52"/> + <source>kbps</source> + <translation type="unfinished">kbps</translation> </message> <message> - <location filename="../detailsdialog.cpp" line="62"/> + <location filename="../vorbismetadatamodel.cpp" line="53"/> <source>File size</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../vorbismetadatamodel.cpp" line="53"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> </context> </TS> diff --git a/src/plugins/Input/vorbis/vorbis.pro b/src/plugins/Input/vorbis/vorbis.pro index 08ae89b20..68e61c464 100644 --- a/src/plugins/Input/vorbis/vorbis.pro +++ b/src/plugins/Input/vorbis/vorbis.pro @@ -2,10 +2,10 @@ include(../../plugins.pri) FORMS += HEADERS += decodervorbisfactory.h \ decoder_vorbis.h \ - detailsdialog.h + vorbismetadatamodel.h SOURCES += decoder_vorbis.cpp \ decodervorbisfactory.cpp \ - detailsdialog.cpp + vorbismetadatamodel.cpp TARGET = $$PLUGINS_PREFIX/Input/vorbis QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libvorbis.so INCLUDEPATH += ../../../ diff --git a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp new file mode 100644 index 000000000..71b8d2de7 --- /dev/null +++ b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp @@ -0,0 +1,167 @@ +/*************************************************************************** + * Copyright (C) 2009 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <taglib/tag.h> +#include <taglib/fileref.h> +#include <taglib/vorbisfile.h> +#include <taglib/xiphcomment.h> +#include <taglib/tmap.h> +#include "vorbismetadatamodel.h" + +#define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8) +#define TStringToQString_qt4(s) QString::fromUtf8(s.toCString(TRUE)).trimmed() + +VorbisMetaDataModel::VorbisMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent) +{ + m_path = path; + m_tags << new VorbisCommentModel(path); +} + +VorbisMetaDataModel::~VorbisMetaDataModel() +{ + while(!m_tags.isEmpty()) + delete m_tags.takeFirst(); +} + +QHash<QString, QString> VorbisMetaDataModel::audioProperties() +{ + QHash<QString, QString> ap; + TagLib::Ogg::Vorbis::File f (m_path.toLocal8Bit()); + QString text = QString("%1").arg(f.audioProperties()->length()/60); + text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0')); + ap.insert(tr("Length"), text); + ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate())); + ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels())); + ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate())); + ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024)); + return ap; +} + +QList<TagModel* > VorbisMetaDataModel::tags() +{ + return m_tags; +} + +VorbisCommentModel::VorbisCommentModel(const QString &path) : TagModel(TagModel::Save) +{ + m_file = new TagLib::Ogg::Vorbis::File (path.toLocal8Bit().constData()); + m_tag = m_file->tag(); +} + +VorbisCommentModel::~VorbisCommentModel() +{ + delete m_file; +} + +const QString VorbisCommentModel::name() +{ + return "Vorbis Comment"; +} + +const QString VorbisCommentModel::value(Qmmp::MetaData key) +{ + if(!m_tag) + return QString(); + switch((int) key) + { + case Qmmp::TITLE: + return TStringToQString_qt4(m_tag->title()); + case Qmmp::ARTIST: + return TStringToQString_qt4(m_tag->artist()); + case Qmmp::ALBUM: + return TStringToQString_qt4(m_tag->album()); + case Qmmp::COMMENT: + return TStringToQString_qt4(m_tag->comment()); + case Qmmp::GENRE: + return TStringToQString_qt4(m_tag->genre()); + case Qmmp::COMPOSER: + if(m_tag->fieldListMap()["COMPOSER"].isEmpty()) + return QString(); + else + return TStringToQString_qt4(m_tag->fieldListMap()["COMPOSER"].front()); + case Qmmp::YEAR: + return QString::number(m_tag->year()); + case Qmmp::TRACK: + return QString::number(m_tag->track()); + case Qmmp::DISCNUMBER: + if(m_tag->fieldListMap()["DISCNUMBER"].isEmpty()) + return QString(); + else + return TStringToQString_qt4(m_tag->fieldListMap()["DISCNUMBER"].front()); + } + return QString(); +} + +void VorbisCommentModel::setValue(Qmmp::MetaData key, const QString &value) +{ + if(!m_tag) + return; + + TagLib::String str = QStringToTString_qt4(value); + + switch((int) key) + { + case Qmmp::TITLE: + m_tag->setTitle(str); + return; + case Qmmp::ARTIST: + m_tag->setArtist(str); + return; + case Qmmp::ALBUM: + m_tag->setAlbum(str); + return; + case Qmmp::COMMENT: + m_tag->setComment(str); + return; + case Qmmp::GENRE: + m_tag->setGenre(str); + return; + case Qmmp::COMPOSER: + value.isEmpty() ? + m_tag->removeField("COMPOSER"): + m_tag->addField("COMPOSER", str, TRUE); + return; + case Qmmp::YEAR: + m_tag->setYear(value.toInt()); + return; + case Qmmp::DISCNUMBER: + value.isEmpty() ? + m_tag->removeField("DISCNUMBER"): + m_tag->addField("DISCNUMBER", str, TRUE); + } +} + +bool VorbisCommentModel::exists() +{ + return TRUE; +} + +void VorbisCommentModel::create() +{ + m_tag = m_file->tag(); +} + +void VorbisCommentModel::remove() +{} + +void VorbisCommentModel::save() +{ + m_file->save(); +} diff --git a/src/plugins/Input/vorbis/detailsdialog.h b/src/plugins/Input/vorbis/vorbismetadatamodel.h index 2504108bc..33420ddd5 100644 --- a/src/plugins/Input/vorbis/detailsdialog.h +++ b/src/plugins/Input/vorbis/vorbismetadatamodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2009 by Ilya Kotov * + * Copyright (C) 2009 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -17,28 +17,45 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef DETAILSDIALOG_H -#define DETAILSDIALOG_H -#include <qmmp/abstractdetailsdialog.h> +#ifndef MPEGMETADATAMODEL_H +#define MPEGMETADATAMODEL_H -/** - @author Ilya Kotov <forkotov02@hotmail.ru> -*/ -class DetailsDialog : public AbstractDetailsDialog +#include <taglib/vorbisfile.h> +#include <taglib/xiphcomment.h> +#include <qmmp/metadatamodel.h> + +class VorbisMetaDataModel : public MetaDataModel { Q_OBJECT public: - DetailsDialog(QWidget *parent = 0, const QString &path = 0); - - ~DetailsDialog(); + VorbisMetaDataModel(const QString &path, QObject *parent); + ~VorbisMetaDataModel(); + QHash<QString, QString> audioProperties(); + QList<TagModel* > tags(); -private: - void loadVorbisInfo(); - void loadTags(); - void writeTags(); +private: QString m_path; + QList<TagModel* > m_tags; +}; + +class VorbisCommentModel : public TagModel +{ +public: + VorbisCommentModel(const QString &path); + ~VorbisCommentModel(); + const QString name(); + //QList<Qmmp::MetaData> keys(); + const QString value(Qmmp::MetaData key); + void setValue(Qmmp::MetaData key, const QString &value); + bool exists(); + void create(); + void remove(); + void save(); +private: + TagLib::Ogg::Vorbis::File *m_file; + TagLib::Ogg::XiphComment *m_tag; }; -#endif +#endif // MPEGMETADATAMODEL_H |
