aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-04-05 20:54:53 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-04-05 20:54:53 +0000
commit038c5112baac5291c36387d6e61ecbe480bb4d75 (patch)
tree5f00220cc63a2fb608ada74ece9be23f0a698727 /src/plugins
parentf454b7a09ec08e4a336fc9c7a00c7665060ccd84 (diff)
downloadqmmp-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/plugins')
-rw-r--r--src/plugins/General/kdenotify/translations/kdenotify_plugin_pl.ts29
-rw-r--r--src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp2
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_cs.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_de.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_it.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_lt.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_pl.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_tr.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_uk_UA.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_CN.ts12
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_zh_TW.ts12
-rw-r--r--src/plugins/Transports/CMakeLists.txt5
-rw-r--r--src/plugins/Transports/Transports.pro1
-rw-r--r--src/plugins/Transports/http/downloader.cpp9
-rw-r--r--src/plugins/Transports/http/downloader.h5
-rw-r--r--src/plugins/Transports/mms/CMakeLists.txt73
-rw-r--r--src/plugins/Transports/mms/downloader.cpp168
-rw-r--r--src/plugins/Transports/mms/downloader.h70
-rw-r--r--src/plugins/Transports/mms/mms.pro44
-rw-r--r--src/plugins/Transports/mms/mmsinputfactory.cpp66
-rw-r--r--src/plugins/Transports/mms/mmsinputfactory.h44
-rw-r--r--src/plugins/Transports/mms/mmsinputsource.cpp50
-rw-r--r--src/plugins/Transports/mms/mmsinputsource.h49
-rw-r--r--src/plugins/Transports/mms/settingsdialog.cpp46
-rw-r--r--src/plugins/Transports/mms/settingsdialog.h44
-rw-r--r--src/plugins/Transports/mms/settingsdialog.ui112
-rw-r--r--src/plugins/Transports/mms/streamreader.cpp134
-rw-r--r--src/plugins/Transports/mms/streamreader.h80
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_cs.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_de.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_it.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_lt.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_pl.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_ru.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_tr.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_uk_UA.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_zh_CN.ts45
-rw-r--r--src/plugins/Transports/mms/translations/mms_plugin_zh_TW.ts45
-rw-r--r--src/plugins/Transports/mms/translations/translations.qrc15
40 files changed, 1539 insertions, 77 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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autore: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Sukūrė: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Yazan: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Autore: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Sukūrė: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Yazan: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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 &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished">作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</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>