diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-04-05 20:54:53 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-04-05 20:54:53 +0000 |
| commit | 038c5112baac5291c36387d6e61ecbe480bb4d75 (patch) | |
| tree | 5f00220cc63a2fb608ada74ece9be23f0a698727 /src | |
| parent | f454b7a09ec08e4a336fc9c7a00c7665060ccd84 (diff) | |
| download | qmmp-038c5112baac5291c36387d6e61ecbe480bb4d75.tar.gz qmmp-038c5112baac5291c36387d6e61ecbe480bb4d75.tar.bz2 qmmp-038c5112baac5291c36387d6e61ecbe480bb4d75.zip | |
added mms plugin (experimental) (Closes issue 273)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1658 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
41 files changed, 1540 insertions, 78 deletions
diff --git a/src/plugins/General/kdenotify/translations/kdenotify_plugin_pl.ts b/src/plugins/General/kdenotify/translations/kdenotify_plugin_pl.ts index 3a183270b..50b67ed9a 100644 --- a/src/plugins/General/kdenotify/translations/kdenotify_plugin_pl.ts +++ b/src/plugins/General/kdenotify/translations/kdenotify_plugin_pl.ts @@ -4,7 +4,7 @@ <context> <name>KdeNotify</name> <message> - <location filename="../kdenotify.cpp" line="104"/> + <location filename="../kdenotify.cpp" line="122"/> <source>Qmmp now playing:</source> <translation>Qmmp teraz odtwarza:</translation> </message> @@ -37,22 +37,37 @@ <translation>Ustawienia wtyczki Powiadamianie KDE 4</translation> </message> <message> - <location filename="../settingsdialog.ui" line="29"/> - <source>Notification delay [ms]:</source> - <translation>Czas zanikania [ms]:</translation> + <location filename="../settingsdialog.ui" line="39"/> + <source>Options</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../settingsdialog.ui" line="46"/> + <location filename="../settingsdialog.ui" line="45"/> + <source>Notification delay [s]:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="75"/> + <source>Update visible notification instead create new</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="85"/> + <source>Appearance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="91"/> <source>Show covers</source> <translation>Pokaż okładki</translation> </message> <message> - <location filename="../settingsdialog.ui" line="55"/> + <location filename="../settingsdialog.ui" line="100"/> <source>Change template</source> <translation>Zmień szablon</translation> </message> <message> - <location filename="../settingsdialog.cpp" line="73"/> + <location filename="../settingsdialog.cpp" line="75"/> <source>Notification Template</source> <translation>Szablon powiadomień</translation> </message> diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp index 43477702b..37f54d017 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp @@ -89,6 +89,8 @@ bool DecoderFFmpegFactory::canDecode(QIODevice *i) const qWarning("DecoderFFmpegFactory: usupported format"); return false; } + if(filters.contains("*.wma") && !memcmp(fmt->name, "asf", 3)) + return true; if(filters.contains("*.mp3") && !memcmp(fmt->name, "mp3", 3)) return true; if(filters.contains("*.aac") && !memcmp(fmt->name, "aac", 3)) diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_cs.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_cs.ts index a43f5ecc0..68ffa02b3 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_cs.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_cs.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>O modulu FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Vstupní modul Qmmp FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>Modul FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>Formáty FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Přeloženo s libavformat-%1.%2.%3 a libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_de.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_de.ts index 74229ad5a..aaa190c5d 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_de.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_de.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>Über FFmpeg-Audio-Modul</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Qmmp FFmpeg-Audio-Modul</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>FFmpeg-Modul</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>FFmpeg-Formate</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Kompiliert gegen libavformat-%1.%2.%3 und libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_it.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_it.ts index 01df83436..cde3ca55f 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_it.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_it.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>Info sul modulo audi FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Modulo audio FFmpeg per Qmmp</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autore: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>Modulo FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>Formati FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Compilato con libavformat-%1.%2.%3 e libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_lt.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_lt.ts index f96c1236f..5d3a56387 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_lt.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_lt.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>Apie FFmpeg įskiepį</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>FFmpeg Qmmp audio įskiepis</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>FFmpeg įskiepis</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>FFmpeg bylų tipai</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Surinkta iš libavformat-%1.%2.%3 ir libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_pl.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_pl.ts index 9cf1c8478..c6bd2ffb9 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_pl.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_pl.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>Wtyczka FFMPEG</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>Formaty FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>O wtyczce FFmpeg Audio</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Wtyczka FFmpeg Audio dla Qmmp</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Skompilowane przy użyciu libavformat-%1.%2.%3 i libavcodec-%4.%5.%6</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts index a6ad3abfe..dae43b3a5 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>Об аудио-модуле FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Аудио-модуль FFmpeg для Qmmp</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>Модуль FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>Форматы FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Собрано с libavformat-%1.%2.%3 и libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_tr.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_tr.ts index 1cc911489..818dfb86b 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_tr.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_tr.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>FFmpeg Eklentisi</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>FFmpeg Biçimleri</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>FFmpeg Ses Eklentisi Hakkında</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Qmmp FFmpeg Ses Eklentisi</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>libavformat-%1.%2.%3 ve libavcodec-%4.%5.%6 ile derlenmiştir</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Yazan: Ilya Kotov <forkotov02@hotmail.ru></translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_uk_UA.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_uk_UA.ts index 88331b330..596d32db2 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_uk_UA.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_uk_UA.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>Про аудіо-модуль FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Аудіо-модуль FFmpeg для Qmmp</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>Розробник: Ілля Котов <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>Модуль FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>Формати FFmpeg</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>Зібрано з libavformat-%1.%2.%3 та libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_CN.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_CN.ts index e7bd0faae..11d990e0d 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_CN.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_CN.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>关于 FFmpeg 音频插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Qmmp FFmpeg 音频插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>FFmpeg 插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>FFmpeg 格式</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>编译依赖 libavformat-%1.%2.%3 和 libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_TW.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_TW.ts index ab834976a..451042f53 100644 --- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_TW.ts +++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_TW.ts @@ -4,32 +4,32 @@ <context> <name>DecoderFFmpegFactory</name> <message> - <location filename="../decoderffmpegfactory.cpp" line="179"/> + <location filename="../decoderffmpegfactory.cpp" line="181"/> <source>About FFmpeg Audio Plugin</source> <translation>關於 FFmpeg 聲訊插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="181"/> + <location filename="../decoderffmpegfactory.cpp" line="183"/> <source>Qmmp FFmpeg Audio Plugin</source> <translation>Qmmp FFmpeg 聲訊插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="191"/> + <location filename="../decoderffmpegfactory.cpp" line="193"/> <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="110"/> + <location filename="../decoderffmpegfactory.cpp" line="112"/> <source>FFmpeg Plugin</source> <translation>FFmpeg 插件</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="112"/> + <location filename="../decoderffmpegfactory.cpp" line="114"/> <source>FFmpeg Formats</source> <translation>FFmpeg 格式</translation> </message> <message> - <location filename="../decoderffmpegfactory.cpp" line="183"/> + <location filename="../decoderffmpegfactory.cpp" line="185"/> <source>Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6</source> <translation>編譯依賴 libavformat-%1.%2.%3 與 libavcodec-%4.%5.%6</translation> </message> diff --git a/src/plugins/Transports/CMakeLists.txt b/src/plugins/Transports/CMakeLists.txt index 1de020fbf..ba0c92ca6 100644 --- a/src/plugins/Transports/CMakeLists.txt +++ b/src/plugins/Transports/CMakeLists.txt @@ -1,5 +1,10 @@ SET(USE_CURL TRUE CACHE BOOL "enable/disable curl-based http plugin") +SET(USE_MMS TRUE CACHE BOOL "enable/disable mms plugin") IF(USE_CURL) add_subdirectory(http) ENDIF(USE_CURL) + +IF(USE_MMS) +add_subdirectory(mms) +ENDIF(USE_MMS) diff --git a/src/plugins/Transports/Transports.pro b/src/plugins/Transports/Transports.pro index 26d09c134..583a32413 100644 --- a/src/plugins/Transports/Transports.pro +++ b/src/plugins/Transports/Transports.pro @@ -1,4 +1,5 @@ include(../../../qmmp.pri) SUBDIRS += http +unix:SUBDIRS += mms TEMPLATE = subdirs diff --git a/src/plugins/Transports/http/downloader.cpp b/src/plugins/Transports/http/downloader.cpp index d7b2077bb..7e3fda2b9 100644 --- a/src/plugins/Transports/http/downloader.cpp +++ b/src/plugins/Transports/http/downloader.cpp @@ -220,10 +220,10 @@ void Downloader::abort() } } -int Downloader::bytesAvailable() +qint64 Downloader::bytesAvailable() { m_mutex.lock(); - int b = m_stream.buf_fill; + qint64 b = m_stream.buf_fill; m_mutex.unlock(); return b; } @@ -308,11 +308,6 @@ qint64 Downloader::readBuffer(char* data, qint64 maxlen) return 0; } -const QString &Downloader::title() const -{ - return m_title; -} - void Downloader::checkBuffer() { if (m_stream.buf_fill > m_buffer_size && !m_ready) diff --git a/src/plugins/Transports/http/downloader.h b/src/plugins/Transports/http/downloader.h index 5688fee00..fd61486ba 100644 --- a/src/plugins/Transports/http/downloader.h +++ b/src/plugins/Transports/http/downloader.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2008 by Ilya Kotov * + * Copyright (C) 2006-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -59,8 +59,7 @@ public: QMutex *mutex(); QString contentType(); void abort(); - int bytesAvailable(); - const QString& title() const; + qint64 bytesAvailable(); void checkBuffer(); bool isReady(); diff --git a/src/plugins/Transports/mms/CMakeLists.txt b/src/plugins/Transports/mms/CMakeLists.txt new file mode 100644 index 000000000..f4e6314d3 --- /dev/null +++ b/src/plugins/Transports/mms/CMakeLists.txt @@ -0,0 +1,73 @@ +project(libmms) + +cmake_minimum_required(VERSION 2.4.7) + +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) + cmake_policy(SET CMP0005 NEW) +endif(COMMAND cmake_policy) + +# qt plugin +ADD_DEFINITIONS( -Wall ) +ADD_DEFINITIONS(${QT_DEFINITIONS}) +ADD_DEFINITIONS(-DQT_PLUGIN) +ADD_DEFINITIONS(-DQT_NO_DEBUG) +ADD_DEFINITIONS(-DQT_SHARED) +ADD_DEFINITIONS(-DQT_THREAD) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +SET(QT_INCLUDES + ${QT_INCLUDES} + ${CMAKE_CURRENT_BINARY_DIR}/../../../ +) + +# libqmmp +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) + +# libcurl +pkg_search_module(MMS libmms>=0.4) +include_directories(${MMS_INCLUDE_DIRS}) +link_directories(${MMS_LIBRARY_DIRS}) + + +SET(libmms_SRCS + streamreader.cpp + downloader.cpp + mmsinputfactory.cpp + mmsinputsource.cpp + settingsdialog.cpp +) + +SET(libmms_MOC_HDRS + downloader.h + mmsinputfactory.h + mmsinputsource.h + streamreader.h + settingsdialog.h +) + +# resources +SET(libmms_RCCS translations/translations.qrc) +QT4_ADD_RESOURCES(libmms_RCC_SRCS ${libmms_RCCS}) + +# user interface +SET(libmms_UIS + settingsdialog.ui +) +QT4_WRAP_UI(libmms_UIS_H ${libmms_UIS}) + + + +QT4_WRAP_CPP(libmms_MOC_SRCS ${libmms_MOC_HDRS}) + +# Don't forget to include output directory, otherwise +# the UI file won't be wrapped! +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +IF(MMS_FOUND) +ADD_LIBRARY(mms MODULE ${libmms_SRCS} ${libmms_MOC_SRCS} ${libmms_UIS_H} ${libmms_RCC_SRCS}) +target_link_libraries(mms ${QT_LIBRARIES} -lqmmp ${MMS_LDFLAGS} ${MMS_CFLAGS}) +add_dependencies(mms qmmp) +install(TARGETS mms DESTINATION ${LIB_DIR}/qmmp/Transports) +ENDIF(MMS_FOUND) diff --git a/src/plugins/Transports/mms/downloader.cpp b/src/plugins/Transports/mms/downloader.cpp new file mode 100644 index 000000000..242a4f48c --- /dev/null +++ b/src/plugins/Transports/mms/downloader.cpp @@ -0,0 +1,168 @@ +/*************************************************************************** + * Copyright (C) 2010 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 <QApplication> +#include <QStringList> +#include <QDir> +#include <QMap> +#include <QSettings> +#include <QTextCodec> +#include <stdint.h> +#include <stdlib.h> +#include <qmmp/qmmpsettings.h> +#include <qmmp/qmmp.h> +#include <qmmp/statehandler.h> +#include "downloader.h" + +Downloader::Downloader(QObject *parent, const QString &url) + : QThread(parent) +{ + m_url = url; + m_handle = 0; + m_aborted = false; + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + m_prebuf_size = settings.value("MMS/buffer_size",128).toInt() * 1024; + m_buffer_size = m_prebuf_size; + m_buffer = (char *)malloc(m_buffer_size); + m_ready = false; + m_buffer_at = 0; +} + + +Downloader::~Downloader() +{ + abort(); + free(m_buffer); + m_buffer = 0; + m_buffer_at = 0; + m_buffer_size = 0; +} + +qint64 Downloader::read(char* data, qint64 maxlen) +{ + m_mutex.lock(); + qint64 len = qMin<qint64>(m_buffer_at, maxlen); + memmove(data, m_buffer, len); + m_buffer_at -= len; + memmove(m_buffer, m_buffer + len, m_buffer_at); + m_mutex.unlock(); + return len; +} + +QMutex *Downloader::mutex() +{ + return &m_mutex; +} + +QString Downloader::contentType() +{ + return "audio/x-ms-wma"; +} + +void Downloader::abort() +{ + m_mutex.lock(); + if (m_aborted) + { + m_mutex.unlock(); + return; + } + m_aborted = true; + m_ready = false; + m_mutex.unlock(); + wait(); + if (m_handle) + mms_close(m_handle); + m_handle = 0; +} + +qint64 Downloader::bytesAvailable() +{ + m_mutex.lock(); + qint64 b = m_buffer_at; + m_mutex.unlock(); + return b; +} + +void Downloader::run() +{ + m_handle = mms_connect (0, 0, m_url.toLocal8Bit().constData(), 128 * 1024); + if(!m_handle) + { + qWarning("Downloader: connection failed"); + return; + } + m_mutex.lock(); + if(m_aborted) + { + m_mutex.unlock(); + qDebug("Downloader: aborted"); + return; + } + m_mutex.unlock(); + qint64 len = 0; + forever + { + m_mutex.lock(); + int to_read = 1024; + if(m_buffer_at + to_read > m_buffer_size) + { + m_buffer_size = m_buffer_at + to_read; + m_buffer = (char *)realloc(m_buffer, m_buffer_size); + } + len = mms_read (0, m_handle, m_buffer + m_buffer_at, to_read); + if(len < 0) + { + qWarning("Downloader: error: %s", strerror(len)); + m_mutex.unlock(); + break; + } + m_buffer_at += len; + if(!m_ready) + checkBuffer(); + m_mutex.unlock(); + if(m_aborted) + break; + usleep(5000); + } +} + +void Downloader::checkBuffer() +{ + if (m_buffer_at > m_prebuf_size && !m_ready) + { + m_ready = true; + qDebug("Downloader: ready"); + QMap<Qmmp::MetaData, QString> metaData; + metaData.insert(Qmmp::URL, m_url); + StateHandler::instance()->dispatch(metaData); + emit readyRead(); + } + else if (!m_ready) + { + StateHandler::instance()->dispatchBuffer(100 * m_buffer_at / m_buffer_size); + qApp->processEvents(); + } +} + +bool Downloader::isReady() +{ + return m_ready; +} diff --git a/src/plugins/Transports/mms/downloader.h b/src/plugins/Transports/mms/downloader.h new file mode 100644 index 000000000..8ffcb5d0d --- /dev/null +++ b/src/plugins/Transports/mms/downloader.h @@ -0,0 +1,70 @@ +/*************************************************************************** + * Copyright (C) 2010 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. * + ***************************************************************************/ +#ifndef DOWNLOADER_H +#define DOWNLOADER_H + +#include <QThread> +#include <QMutex> +#include <QByteArray> +#include <QMap> +#define this var +#include <libmms/mms.h> +#undef this + + + +/*! @internal + * @author Ilya Kotov <forkotov02@hotmail.ru> + */ +class Downloader : public QThread +{ + Q_OBJECT +public: + Downloader(QObject *parent, const QString &url); + + ~Downloader(); + + qint64 read(char* data, qint64 maxlen); + QMutex *mutex(); + QString contentType(); + void abort(); + qint64 bytesAvailable(); + void checkBuffer(); + bool isReady(); + +signals: + void readyRead(); + +private: + QMutex m_mutex; + QString m_url; + mms_t *m_handle; + bool m_aborted; + qint64 m_buffer_size, m_prebuf_size; + char *m_buffer; + qint64 m_buffer_at; + bool m_ready; + +protected: + void run(); + +}; + +#endif diff --git a/src/plugins/Transports/mms/mms.pro b/src/plugins/Transports/mms/mms.pro new file mode 100644 index 000000000..8965c63e2 --- /dev/null +++ b/src/plugins/Transports/mms/mms.pro @@ -0,0 +1,44 @@ +include(../../plugins.pri) +HEADERS += downloader.h \ + streamreader.h \ + mmsinputfactory.h \ + mmsinputsource.h \ + settingsdialog.h +SOURCES += downloader.cpp \ + streamreader.cpp \ + mmsinputfactory.cpp \ + mmsinputsource.cpp \ + settingsdialog.cpp +win32:HEADERS += ../../../../src/qmmp/inputsource.h \ + ../../../../src/qmmp/inputsourcefactory.h +TARGET = $$PLUGINS_PREFIX/Transports/mms +unix:QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libmms.so +INCLUDEPATH += ../../../ +CONFIG += release \ + warn_on \ + plugin \ + link_pkgconfig +TEMPLATE = lib + +QMAKE_LIBDIR += ../../../../lib +LIBS += -lqmmp -L/usr/lib +PKGCONFIG += libmms +isEmpty(LIB_DIR):LIB_DIR = /lib +target.path = $$LIB_DIR/qmmp/Transports +INSTALLS += target + + +FORMS += settingsdialog.ui + +TRANSLATIONS = translations/mms_plugin_ru.ts \ + translations/mms_plugin_uk_UA.ts \ + translations/mms_plugin_zh_CN.ts \ + translations/mms_plugin_zh_TW.ts \ + translations/mms_plugin_cs.ts \ + translations/mms_plugin_pl.ts \ + translations/mms_plugin_de.ts \ + translations/mms_plugin_it.ts \ + translations/mms_plugin_tr.ts \ + translations/mms_plugin_lt.ts + +RESOURCES = translations/translations.qrc diff --git a/src/plugins/Transports/mms/mmsinputfactory.cpp b/src/plugins/Transports/mms/mmsinputfactory.cpp new file mode 100644 index 000000000..a0225620b --- /dev/null +++ b/src/plugins/Transports/mms/mmsinputfactory.cpp @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright (C) 2010 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 <QtPlugin> +#include <QMessageBox> +#include <QTranslator> +//#include <curl/curlver.h> +#include <qmmp/qmmp.h> +#include "settingsdialog.h" +#include "mmsinputsource.h" +#include "mmsinputfactory.h" + +const InputSourceProperties MMSInputFactory::properties() const +{ + InputSourceProperties p; + p.protocols = "mms"; + p.name = tr("MMS Plugin"); + p.shortName = "mms"; + p.hasAbout = true; + p.hasSettings = true; + return p; +} + +InputSource *MMSInputFactory::create(const QString &url, QObject *parent) +{ + return new MMSInputSource(url, parent); +} + +void MMSInputFactory::showSettings(QWidget *parent) +{ + SettingsDialog *s = new SettingsDialog(parent); + s->show(); +} + +void MMSInputFactory::showAbout(QWidget *parent) +{ + QMessageBox::about (parent, tr("About MMS Transport Plugin"), + tr("Qmmp MMS Transport Plugin")+"\n"+ + tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>")); +} + +QTranslator *MMSInputFactory::createTranslator(QObject *parent) +{ + QTranslator *translator = new QTranslator(parent); + QString locale = Qmmp::systemLanguageID(); + translator->load(QString(":/mms_plugin_") + locale); + return translator; +} +Q_EXPORT_PLUGIN2(mms, MMSInputFactory); diff --git a/src/plugins/Transports/mms/mmsinputfactory.h b/src/plugins/Transports/mms/mmsinputfactory.h new file mode 100644 index 000000000..a5997b697 --- /dev/null +++ b/src/plugins/Transports/mms/mmsinputfactory.h @@ -0,0 +1,44 @@ +/*************************************************************************** + * Copyright (C) 2010 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. * + ***************************************************************************/ + +#ifndef HTTPINPUTFACTORY_H +#define HTTPINPUTFACTORY_H + +#include <QObject> +#include <qmmp/inputsourcefactory.h> + +class QTranslator; + +/*! + * @author Ilya Kotov <forkotov02@hotmail.ru> + */ +class MMSInputFactory : public QObject, InputSourceFactory +{ +Q_OBJECT +Q_INTERFACES(InputSourceFactory); +public: + const InputSourceProperties properties() const; + InputSource *create(const QString &url, QObject *parent = 0); + void showSettings(QWidget *parent); + void showAbout(QWidget *parent); + QTranslator *createTranslator(QObject *parent); +}; + +#endif // HTTPINPUTFACTORY_H diff --git a/src/plugins/Transports/mms/mmsinputsource.cpp b/src/plugins/Transports/mms/mmsinputsource.cpp new file mode 100644 index 000000000..07328e051 --- /dev/null +++ b/src/plugins/Transports/mms/mmsinputsource.cpp @@ -0,0 +1,50 @@ +/*************************************************************************** + * 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 "streamreader.h" +#include "mmsinputsource.h" + +MMSInputSource::MMSInputSource(const QString &url, QObject *parent) : InputSource(url,parent) +{ + m_reader = new StreamReader(url, this); + connect(m_reader, SIGNAL(readyRead()),SLOT(open())); +} + +QIODevice *MMSInputSource::ioDevice() +{ + return m_reader; +} + +bool MMSInputSource::initialize() +{ + m_reader->downloadFile(); + return true; +} + +bool MMSInputSource::isReady() +{ + return m_reader->isOpen(); +} + +void MMSInputSource::open() +{ + m_reader->open(QIODevice::ReadOnly); + emit(ready(this)); +} diff --git a/src/plugins/Transports/mms/mmsinputsource.h b/src/plugins/Transports/mms/mmsinputsource.h new file mode 100644 index 000000000..20509c8c2 --- /dev/null +++ b/src/plugins/Transports/mms/mmsinputsource.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * 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. * + ***************************************************************************/ + +#ifndef HTTPINPUTSOURCE_H +#define HTTPINPUTSOURCE_H + +#include <qmmp/inputsource.h> + +class StreamReader; + +/** + @author Ilya Kotov <forkotov02@hotmail.ru> +*/ +class MMSInputSource : public InputSource +{ +Q_OBJECT +public: + MMSInputSource(const QString &url, QObject *parent = 0); + + QIODevice *ioDevice(); + bool initialize(); + bool isReady(); + +private slots: + void open(); + +private: + StreamReader *m_reader; + +}; + +#endif // HTTPINPUTSOURCE_H diff --git a/src/plugins/Transports/mms/settingsdialog.cpp b/src/plugins/Transports/mms/settingsdialog.cpp new file mode 100644 index 000000000..a102ed3bd --- /dev/null +++ b/src/plugins/Transports/mms/settingsdialog.cpp @@ -0,0 +1,46 @@ +/*************************************************************************** + * Copyright (C) 2010 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 <QTextCodec> +#include <QSettings> +#include <qmmp/qmmp.h> +#ifdef WITH_ENCA +#include <enca.h> +#endif +#include "settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + setAttribute(Qt::WA_DeleteOnClose); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + ui.bufferSizeSpinBox->setValue(settings.value("MMS/buffer_size",128).toInt()); +} + + +SettingsDialog::~SettingsDialog() +{} + +void SettingsDialog::accept() +{ + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); + settings.setValue("MMS/buffer_size", ui.bufferSizeSpinBox->value()); + QDialog::accept(); +} diff --git a/src/plugins/Transports/mms/settingsdialog.h b/src/plugins/Transports/mms/settingsdialog.h new file mode 100644 index 000000000..f5cf194e4 --- /dev/null +++ b/src/plugins/Transports/mms/settingsdialog.h @@ -0,0 +1,44 @@ +/*************************************************************************** + * Copyright (C) 2010 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. * + ***************************************************************************/ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include <QDialog> +#include "ui_settingsdialog.h" + +/** + @author Ilya Kotov <forkotov02@hotmail.ru> +*/ +class SettingsDialog : public QDialog +{ +Q_OBJECT +public: + SettingsDialog(QWidget *parent = 0); + + ~SettingsDialog(); + +private slots: + virtual void accept(); + +private: + Ui::SettingsDialog ui; +}; + +#endif diff --git a/src/plugins/Transports/mms/settingsdialog.ui b/src/plugins/Transports/mms/settingsdialog.ui new file mode 100644 index 000000000..c7aa6b39d --- /dev/null +++ b/src/plugins/Transports/mms/settingsdialog.ui @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>SettingsDialog</class> + <widget class="QDialog" name="SettingsDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>218</width> + <height>65</height> + </rect> + </property> + <property name="windowTitle"> + <string>HTTP Plugin Settings</string> + </property> + <layout class="QGridLayout" name="gridLayout_2"> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="label_17_2_2"> + <property name="text"> + <string>Buffer size:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="bufferSizeSpinBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimum"> + <number>20</number> + </property> + <property name="maximum"> + <number>1000</number> + </property> + <property name="singleStep"> + <number>20</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>KB</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>SettingsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>222</x> + <y>172</y> + </hint> + <hint type="destinationlabel"> + <x>70</x> + <y>90</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>SettingsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>222</x> + <y>172</y> + </hint> + <hint type="destinationlabel"> + <x>61</x> + <y>87</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/plugins/Transports/mms/streamreader.cpp b/src/plugins/Transports/mms/streamreader.cpp new file mode 100644 index 000000000..4210958ab --- /dev/null +++ b/src/plugins/Transports/mms/streamreader.cpp @@ -0,0 +1,134 @@ +/*************************************************************************** + * Copyright (C) 2010 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 <QApplication> +#include <QUrl> +#include "downloader.h" +#include "streamreader.h" + +StreamReader::StreamReader(const QString &name, QObject *parent) + : QIODevice(parent) +{ + m_downloader = new Downloader(this, name); + connect(m_downloader, SIGNAL(readyRead()), SIGNAL(readyRead())); +} + +StreamReader::~StreamReader() +{ + m_downloader->abort(); + qDebug("%s", Q_FUNC_INFO); +} + +bool StreamReader::atEnd () const +{ + return false; +} + +qint64 StreamReader::bytesAvailable () const +{ + return m_downloader->bytesAvailable (); +} + +qint64 StreamReader::bytesToWrite () const +{ + return -1; +} + +bool StreamReader::canReadLine () const +{ + return false; +} + +void StreamReader::close () +{ + m_downloader->abort(); +} + +bool StreamReader::isSequential () const +{ + return true; +} + +bool StreamReader::open ( OpenMode mode ) +{ + if (mode != QIODevice::ReadOnly) + return false; + //downloadFile(); + setOpenMode(QIODevice::ReadOnly); + if (m_downloader->isReady()) + return true; + else + return false; +} + +bool StreamReader::reset () +{ + QIODevice::reset(); + return true; +} + +bool StreamReader::seek ( qint64 pos ) +{ + QIODevice::seek(pos); + return false; +} + +qint64 StreamReader::size () const +{ + return bytesAvailable (); +} + +bool StreamReader::waitForBytesWritten (int msecs) +{ + Q_UNUSED(msecs); + //usleep(msecs*1000); + return true; +} + +bool StreamReader::waitForReadyRead (int msecs) +{ + Q_UNUSED(msecs); + //usleep(msecs*1000); + return true; +} + +qint64 StreamReader::readData(char* data, qint64 maxlen) +{ + return m_downloader->read (data, maxlen); +} + +qint64 StreamReader::writeData(const char*, qint64) +{ + return 0; +} + +void StreamReader::downloadFile() +{ + m_downloader->start(); +} + +const QString &StreamReader::contentType() +{ + m_downloader->mutex()->lock (); + m_contentType = m_downloader->contentType(); + m_downloader->mutex()->unlock(); + qApp->processEvents(); + qDebug("StreamReader: content type: %s", qPrintable(m_contentType)); + return m_contentType; +} diff --git a/src/plugins/Transports/mms/streamreader.h b/src/plugins/Transports/mms/streamreader.h new file mode 100644 index 000000000..8195126d1 --- /dev/null +++ b/src/plugins/Transports/mms/streamreader.h @@ -0,0 +1,80 @@ +/*************************************************************************** + * Copyright (C) 2010 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. * + ***************************************************************************/ +#ifndef STREAMREADER_H +#define STREAMREADER_H + +#include <QObject> +#include <QIODevice> +#include <QUrl> + +class QFileInfo; + +class Downloader; + +/*! @internal + * @author Ilya Kotov <forkotov02@hotmail.ru> + */ +class StreamReader : public QIODevice +{ + Q_OBJECT +public: + StreamReader(const QString &name, QObject *parent = 0); + + ~StreamReader(); + + /** + * QIODevice API + */ + bool atEnd () const; + qint64 bytesAvailable () const; + qint64 bytesToWrite () const; + bool canReadLine () const; + void close (); + bool isSequential () const; + bool open ( OpenMode mode ); + //qint64 pos () const; + bool reset (); + bool seek ( qint64 pos ); + qint64 size () const; + bool waitForBytesWritten ( int msecs ); + bool waitForReadyRead ( int msecs ); + + /** + * returns content type of a stream + */ + const QString &contentType(); + void downloadFile(); + +signals: + void readyRead(); + +protected: + qint64 readData(char*, qint64); + qint64 writeData(const char*, qint64); + +private: + //void downloadFile(); + void fillBuffer(); + QUrl m_url; + QString m_contentType; + Downloader *m_downloader; +}; + +#endif diff --git a/src/plugins/Transports/mms/translations/mms_plugin_cs.ts b/src/plugins/Transports/mms/translations/mms_plugin_cs.ts new file mode 100644 index 000000000..acb4c213d --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_cs.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="cs"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_de.ts b/src/plugins/Transports/mms/translations/mms_plugin_de.ts new file mode 100644 index 000000000..70955e5ab --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_de.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de_DE"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation>Einstellungen HTTP-Modul</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation>Puffer-Größe:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation>KB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_it.ts b/src/plugins/Transports/mms/translations/mms_plugin_it.ts new file mode 100644 index 000000000..9f4b44c32 --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_it.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="it"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autore: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation>Impostazioni del modulo HTTP</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation>Dimensione buffer:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation>KB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_lt.ts b/src/plugins/Transports/mms/translations/mms_plugin_lt.ts new file mode 100644 index 000000000..7567ddf2d --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_lt.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="lt"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Sukūrė: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished">КB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_pl.ts b/src/plugins/Transports/mms/translations/mms_plugin_pl.ts new file mode 100644 index 000000000..2193afaa6 --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_pl.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="pl"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Autor: Ilja Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_ru.ts b/src/plugins/Transports/mms/translations/mms_plugin_ru.ts new file mode 100644 index 000000000..86c085b2c --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_ru.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Разработчик: Илья Котов <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation>Настройки модуля HTTP</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation>Размер буфера:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation>КБ</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_tr.ts b/src/plugins/Transports/mms/translations/mms_plugin_tr.ts new file mode 100644 index 000000000..96921d912 --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_tr.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="tr_TR"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Yazan: Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_uk_UA.ts b/src/plugins/Transports/mms/translations/mms_plugin_uk_UA.ts new file mode 100644 index 000000000..484a0cb80 --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_uk_UA.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="uk"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">Розробник: Ілля Котов <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation>Налаштування модуля HTTP</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation>Розмір буфера:</translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation>Кб</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_zh_CN.ts b/src/plugins/Transports/mms/translations/mms_plugin_zh_CN.ts new file mode 100644 index 000000000..62bced06c --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_zh_CN.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_CN"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/mms_plugin_zh_TW.ts b/src/plugins/Transports/mms/translations/mms_plugin_zh_TW.ts new file mode 100644 index 000000000..381172867 --- /dev/null +++ b/src/plugins/Transports/mms/translations/mms_plugin_zh_TW.ts @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="zh_TW"> +<context> + <name>MMSInputFactory</name> + <message> + <location filename="../mmsinputfactory.cpp" line="34"/> + <source>MMS Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="54"/> + <source>About MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="55"/> + <source>Qmmp MMS Transport Plugin</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../mmsinputfactory.cpp" line="56"/> + <source>Writen by: Ilya Kotov <forkotov02@hotmail.ru></source> + <translation type="unfinished">作者:Ilya Kotov <forkotov02@hotmail.ru></translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <location filename="../settingsdialog.ui" line="14"/> + <source>HTTP Plugin Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="29"/> + <source>Buffer size:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../settingsdialog.ui" line="64"/> + <source>KB</source> + <translation type="unfinished">KB</translation> + </message> +</context> +</TS> diff --git a/src/plugins/Transports/mms/translations/translations.qrc b/src/plugins/Transports/mms/translations/translations.qrc new file mode 100644 index 000000000..04fd9deab --- /dev/null +++ b/src/plugins/Transports/mms/translations/translations.qrc @@ -0,0 +1,15 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource> + <file>mms_plugin_it.qm</file> + <file>mms_plugin_ru.qm</file> + <file>mms_plugin_uk_UA.qm</file> + <file>mms_plugin_zh_CN.qm</file> + <file>mms_plugin_zh_TW.qm</file> + <file>mms_plugin_cs.qm</file> + <file>mms_plugin_de.qm</file> + <file>mms_plugin_pl.qm</file> + <file>mms_plugin_tr.qm</file> + <file>mms_plugin_lt.qm</file> + </qresource> +</RCC> diff --git a/src/qmmpui/translations/libqmmpui_pl.ts b/src/qmmpui/translations/libqmmpui_pl.ts index 0f3ec57e4..9e391d6ae 100644 --- a/src/qmmpui/translations/libqmmpui_pl.ts +++ b/src/qmmpui/translations/libqmmpui_pl.ts @@ -72,7 +72,7 @@ p, li { white-space: pre-wrap; } <name>PlayListManager</name> <message> <location filename="../playlistmanager.cpp" line="115"/> - <location filename="../playlistmanager.cpp" line="334"/> + <location filename="../playlistmanager.cpp" line="335"/> <source>Playlist</source> <translation>Lista odtwarzania</translation> </message> |
