aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-01-16 15:33:17 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-01-16 15:33:17 +0000
commit435f1da1de18bafe57e43e47fd8a6fc69fd8bab7 (patch)
treee332293971b3b3883685b79c62bcd50bf2f49c12 /src/plugins/Output
parent2fa169a585994ceb40db55405f46783d06820947 (diff)
downloadqmmp-435f1da1de18bafe57e43e47fd8a6fc69fd8bab7.tar.gz
qmmp-435f1da1de18bafe57e43e47fd8a6fc69fd8bab7.tar.bz2
qmmp-435f1da1de18bafe57e43e47fd8a6fc69fd8bab7.zip
updated audio engine
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1503 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output')
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp36
-rw-r--r--src/plugins/Output/alsa/outputalsa.h5
-rw-r--r--src/plugins/Output/alsa/settingsdialog.ui9
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_cs.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_de.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_it.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_lt.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_pl.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_ru.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_tr.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_uk_UA.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_zh_CN.ts22
-rw-r--r--src/plugins/Output/alsa/translations/alsa_plugin_zh_TW.ts22
-rw-r--r--src/plugins/Output/jack/outputjack.cpp10
-rw-r--r--src/plugins/Output/jack/outputjack.h2
-rw-r--r--src/plugins/Output/oss/outputoss.cpp21
-rw-r--r--src/plugins/Output/oss/outputoss.h4
-rw-r--r--src/plugins/Output/pulseaudio/CMakeLists.txt2
-rw-r--r--src/plugins/Output/pulseaudio/outputpulseaudio.cpp20
-rw-r--r--src/plugins/Output/pulseaudio/outputpulseaudio.h4
20 files changed, 171 insertions, 162 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index 829641638..16cc7d0a8 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -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 *
@@ -57,7 +57,7 @@ OutputALSA::~OutputALSA()
free (pcm_name);
}
-void OutputALSA::configure(quint32 freq, int chan, int prec)
+void OutputALSA::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
{
// we need to configure
@@ -99,32 +99,32 @@ void OutputALSA::configure(quint32 freq, int chan, int prec)
return;
}
}
- snd_pcm_format_t format = SND_PCM_FORMAT_UNKNOWN;
- switch (prec)
+ snd_pcm_format_t alsa_format = SND_PCM_FORMAT_UNKNOWN;
+ switch (format)
{
- case 8:
- format = SND_PCM_FORMAT_S8;
+ case Qmmp::PCM_S8:
+ alsa_format = SND_PCM_FORMAT_S8;
break;
- case 16:
- format = SND_PCM_FORMAT_S16_LE;
+ case Qmmp::PCM_S16LE:
+ alsa_format = SND_PCM_FORMAT_S16_LE;
break;
- case 24:
- format = SND_PCM_FORMAT_S24_LE;
+ case Qmmp::PCM_S24LE:
+ alsa_format = SND_PCM_FORMAT_S24_LE;
break;
- case 32:
- format = SND_PCM_FORMAT_S32_LE;
+ case Qmmp::PCM_S32LE:
+ alsa_format = SND_PCM_FORMAT_S32_LE;
break;
default:
qWarning("OutputALSA: unsupported format detected");
return;
}
- if ((err = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format)) < 0)
+ if ((err = snd_pcm_hw_params_set_format(pcm_handle, hwparams, alsa_format)) < 0)
{
qDebug("OutputALSA: Error setting format: %s", snd_strerror(err));
return;
}
exact_rate = rate;// = 11000;
- qDebug("OutputALSA: frequency=%d, channels=%d, bits=%d", rate, chan,prec);
+ //qDebug("OutputALSA: frequency=%d, channels=%d, bits=%d", rate, chan,prec);
if ((err = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &exact_rate, 0)) < 0)
{
@@ -181,13 +181,13 @@ void OutputALSA::configure(quint32 freq, int chan, int prec)
return;
}
//setup needed values
- m_bits_per_frame = snd_pcm_format_physical_width(format) * chan;
+ m_bits_per_frame = snd_pcm_format_physical_width(alsa_format) * chan;
m_chunk_size = period_size;
m_can_pause = snd_pcm_hw_params_can_pause(hwparams) && use_pause;
qDebug("OutputALSA: can pause: %d", m_can_pause);
- Output::configure(freq, chan, prec); //apply configuration
+ Output::configure(freq, chan, format); //apply configuration
//create alsa prebuffer;
- m_prebuf_size = Buffer::size() + m_bits_per_frame * m_chunk_size / 8;
+ m_prebuf_size = QMMP_BLOCK_SIZE + m_bits_per_frame * m_chunk_size / 8;
m_prebuf = (uchar *)malloc(m_prebuf_size);
}
@@ -225,7 +225,7 @@ bool OutputALSA::initialize()
qint64 OutputALSA::latency()
{
- return m_prebuf_fill * 8000 / sampleRate() / numChannels() / sampleSize();
+ return m_prebuf_fill * 1000 / sampleRate() / numChannels() / sampleSize();
}
void OutputALSA::pause()
diff --git a/src/plugins/Output/alsa/outputalsa.h b/src/plugins/Output/alsa/outputalsa.h
index b3dc92a68..b0afcebce 100644
--- a/src/plugins/Output/alsa/outputalsa.h
+++ b/src/plugins/Output/alsa/outputalsa.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 *
@@ -42,7 +42,7 @@ public:
~OutputALSA();
bool initialize();
- void configure(quint32, int, int);
+ void configure(quint32, int, Qmmp::AudioFormat format);
qint64 latency();
void pause();
@@ -94,5 +94,4 @@ private:
bool m_use_mmap;
};
-
#endif // OUTPUTALSA_H
diff --git a/src/plugins/Output/alsa/settingsdialog.ui b/src/plugins/Output/alsa/settingsdialog.ui
index c39d3937d..b578a1d52 100644
--- a/src/plugins/Output/alsa/settingsdialog.ui
+++ b/src/plugins/Output/alsa/settingsdialog.ui
@@ -14,6 +14,15 @@
<string>ALSA Plugin Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
+ <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" colspan="2">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_cs.ts b/src/plugins/Output/alsa/translations/alsa_plugin_cs.ts
index a00c1a805..5b9f18c0a 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_cs.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_cs.ts
@@ -32,57 +32,57 @@
<translation>Nastavení pluginu ALSA</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Nastavení zařízení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Zvukové zařízení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Mixér</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Zvuková karta:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Ovládání hlasitosti:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Pokročilá nastavení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Zvuková karta</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Velikost bufferu (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Délka periody (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Použít mmap</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_de.ts b/src/plugins/Output/alsa/translations/alsa_plugin_de.ts
index 7890c64ca..5e1cbee8c 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_de.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_de.ts
@@ -32,57 +32,57 @@
<translation>Einstellungen ALSA-Modul</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Geräte-Einstellungen</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Audiogerät</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Mixer</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Mixerkarte:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Mixergerät:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Erweiterte Einstellungen</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Soundkarte</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Pufferzeit (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Zeitraster (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Mmap-Unterstützung aktivieren</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>„snd_pcm_pause“-Funktion verwenden</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_it.ts b/src/plugins/Output/alsa/translations/alsa_plugin_it.ts
index af23e7a7c..80c581637 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_it.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_it.ts
@@ -32,57 +32,57 @@
<translation>Impostazioni modulo ALSA</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Impostazione del device</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Dispositivo audio</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Mixer</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Scheda Mixer:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Dispositivo Mixer:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Impostazoni avanzate</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Scheda audio</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Tempo di buffering (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Periodo (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Usa accesso Mmap</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>Usa la funzione snd_pcm_pause</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_lt.ts b/src/plugins/Output/alsa/translations/alsa_plugin_lt.ts
index 7c97d1c14..7bc83016a 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_lt.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_lt.ts
@@ -27,52 +27,52 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Įrangos nustatymai</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Garso įranga</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Glotintuvas</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Glotintuvo plokštė :</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Glotintuvo įranga:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Papildomi nustatymai</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Garso plokštė</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Buferio laikas (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Periodo laikas (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>Naudoti snd_pcm_pause funciją</translation>
</message>
@@ -82,7 +82,7 @@
<translation>ALSA įskiepio nustatymai</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Naudoti mmap prieigą</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_pl.ts b/src/plugins/Output/alsa/translations/alsa_plugin_pl.ts
index 1b9abdb69..cbf5e07b5 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_pl.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_pl.ts
@@ -32,57 +32,57 @@
<translation>Ustawienia wtyczki ALSA</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Ustawienia urządzenia</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Urządzenie dźwiękowe</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Mikser</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Karta miksująca:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Urządzenie miksujące:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Zaawansowane ustawienia</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Karta dźwiękowa</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Wielkość buforu (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Czas cyklu (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Użyj dostępu mmap</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>Użyj funkcji snd_pcm_pause</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_ru.ts b/src/plugins/Output/alsa/translations/alsa_plugin_ru.ts
index 244715907..7b4557086 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_ru.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_ru.ts
@@ -27,52 +27,52 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Параметры устройства</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Аудио устройство</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Микшер</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Карта микшера:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Устройство микшера:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Дополнительные настройки</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Звуковая карта</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Время буферизации (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Время периода (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>Использовать функцию snd_pcm_pause</translation>
</message>
@@ -82,7 +82,7 @@
<translation>Настройки модуля ALSA</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Использовать доступ mmap</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_tr.ts b/src/plugins/Output/alsa/translations/alsa_plugin_tr.ts
index 898446c40..7ee692993 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_tr.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_tr.ts
@@ -32,57 +32,57 @@
<translation>ALSA Eklentisi Ayarları</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Aygıt Ayarları</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Ses aygıtı</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Karıştırıcı</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Karıştırıcı kartı:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Karıştırıcı aygıtı:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Gelişmiş Ayarlar</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Ses kartı</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Arabellek süresi (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Periyot süresi (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>mmap erişimi kullan</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_uk_UA.ts b/src/plugins/Output/alsa/translations/alsa_plugin_uk_UA.ts
index 9b415534e..716f7fa4d 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_uk_UA.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_uk_UA.ts
@@ -27,52 +27,52 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>Параметри пристроїв</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>Аудіо пристрій</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>Мікшер</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>Карта мікшера:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>Пристрій мікшера:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>Додаткові налаштування</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>Звукова карта</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>Час буферизації (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>Час періоду (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation>Використовувати функцію snd_pcm_pause</translation>
</message>
@@ -82,7 +82,7 @@
<translation>Налаштування модуля ALSA</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>Використовувати доступ mmap</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_zh_CN.ts b/src/plugins/Output/alsa/translations/alsa_plugin_zh_CN.ts
index 196cb3e87..c5368dbfa 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_zh_CN.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_zh_CN.ts
@@ -27,52 +27,52 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>设备设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>音频设备</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>混频</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>混频卡:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>混频设备:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>高级设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>声卡</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>缓冲时间(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>周期时间(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation type="unfinished"></translation>
</message>
@@ -82,7 +82,7 @@
<translation>ALSA 插件设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>使用内存映射</translation>
</message>
diff --git a/src/plugins/Output/alsa/translations/alsa_plugin_zh_TW.ts b/src/plugins/Output/alsa/translations/alsa_plugin_zh_TW.ts
index 409330b4a..b509bcc07 100644
--- a/src/plugins/Output/alsa/translations/alsa_plugin_zh_TW.ts
+++ b/src/plugins/Output/alsa/translations/alsa_plugin_zh_TW.ts
@@ -27,52 +27,52 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="24"/>
+ <location filename="../settingsdialog.ui" line="33"/>
<source>Device Settings</source>
<translation>裝置設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="36"/>
+ <location filename="../settingsdialog.ui" line="45"/>
<source>Audio device</source>
<translation>聲訊裝置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="48"/>
+ <location filename="../settingsdialog.ui" line="57"/>
<source>Mixer</source>
<translation>混頻</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="63"/>
+ <location filename="../settingsdialog.ui" line="72"/>
<source>Mixer card:</source>
<translation>混頻卡:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="73"/>
+ <location filename="../settingsdialog.ui" line="82"/>
<source>Mixer device:</source>
<translation>混頻裝置:</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="90"/>
+ <location filename="../settingsdialog.ui" line="99"/>
<source>Advanced Settings</source>
<translation>進階設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="102"/>
+ <location filename="../settingsdialog.ui" line="111"/>
<source>Soundcard</source>
<translation>音效卡</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="108"/>
+ <location filename="../settingsdialog.ui" line="117"/>
<source>Buffer time (ms):</source>
<translation>緩衝時間(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="144"/>
+ <location filename="../settingsdialog.ui" line="153"/>
<source>Period time (ms):</source>
<translation>周期時間(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="200"/>
+ <location filename="../settingsdialog.ui" line="209"/>
<source>Use snd_pcm_pause function</source>
<translation type="unfinished"></translation>
</message>
@@ -82,7 +82,7 @@
<translation>ALSA 插件設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="180"/>
+ <location filename="../settingsdialog.ui" line="189"/>
<source>Use mmap access</source>
<translation>使用內存對映</translation>
</message>
diff --git a/src/plugins/Output/jack/outputjack.cpp b/src/plugins/Output/jack/outputjack.cpp
index b064590f4..c60087711 100644
--- a/src/plugins/Output/jack/outputjack.cpp
+++ b/src/plugins/Output/jack/outputjack.cpp
@@ -23,8 +23,8 @@
#include <QtGlobal>
#include <QDir>
#include <QSettings>
-
#include "outputjack.h"
+#include <qmmp/audioparameters.h>
#include <qmmp/buffer.h>
#include <qmmp/visual.h>
@@ -42,10 +42,10 @@ OutputJACK::~OutputJACK()
uninitialize();
}
-void OutputJACK::configure(quint32 freq, int chan, int prec)
+void OutputJACK::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
{
qDebug("OutputJACK: configure");
- if(JACK_Open(&jack_device, prec, (unsigned long *)&freq, chan))
+ if(JACK_Open(&jack_device, AudioParameters::sampleSize(format)*8, (unsigned long *)&freq, chan))
{
m_configure = FALSE;
m_inited = FALSE;
@@ -54,7 +54,7 @@ void OutputJACK::configure(quint32 freq, int chan, int prec)
else
m_configure = TRUE;
m_inited = TRUE;
- Output::configure(freq, chan, prec);
+ Output::configure(freq, chan, format);
qDebug("OutputJACK: configure end");
}
@@ -72,7 +72,7 @@ bool OutputJACK::initialize()
{
qDebug("Unable to connect to JACK server.");
}
- return FALSE;
+ return FALSE;
}
jack_client_close (client);
m_inited = TRUE;
diff --git a/src/plugins/Output/jack/outputjack.h b/src/plugins/Output/jack/outputjack.h
index 8a340002d..f2d6357b6 100644
--- a/src/plugins/Output/jack/outputjack.h
+++ b/src/plugins/Output/jack/outputjack.h
@@ -40,7 +40,7 @@ public:
~OutputJACK();
bool initialize();
- void configure(quint32, int, int);
+ void configure(quint32, int, Qmmp::AudioFormat format);
qint64 latency();
private:
diff --git a/src/plugins/Output/oss/outputoss.cpp b/src/plugins/Output/oss/outputoss.cpp
index 9402d99bd..84d3d652e 100644
--- a/src/plugins/Output/oss/outputoss.cpp
+++ b/src/plugins/Output/oss/outputoss.cpp
@@ -65,7 +65,7 @@ OutputOSS* OutputOSS::instance()
OutputOSS::OutputOSS(QObject * parent)
: Output(parent), m_inited(FALSE),
- m_frequency(-1), m_channels(-1), m_precision(-1),
+ m_frequency(-1), m_channels(-1),
do_select(TRUE),
m_audio_fd(-1)
{
@@ -89,12 +89,11 @@ OutputOSS::~OutputOSS()
}
}
-void OutputOSS::configure(quint32 freq, int chan, int prec)
+void OutputOSS::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
{
// we need to configure
- if (freq != m_frequency || chan != m_channels || prec != m_precision)
+ if (freq != m_frequency || chan != m_channels)
{
- qDebug("OutputOSS: frequency=%d, channels=%d, bits=%d", freq, chan, prec);
// we have already configured, but are changing settings...
// reset the device
resetDSP();
@@ -111,15 +110,14 @@ void OutputOSS::configure(quint32 freq, int chan, int prec)
#endif
m_frequency = freq;
m_channels = chan;
- m_precision = prec;
//m_bps = freq * chan * (prec / 8);
int p;
- switch (prec)
+ switch (format)
{
default:
- case 16:
+ case Qmmp::PCM_S16LE:
#if defined(AFMT_S16_NE)
p = AFMT_S16_NE;
#else
@@ -127,7 +125,7 @@ void OutputOSS::configure(quint32 freq, int chan, int prec)
#endif
break;
- case 8:
+ case Qmmp::PCM_S8:
p = AFMT_S8;
break;
@@ -135,8 +133,8 @@ void OutputOSS::configure(quint32 freq, int chan, int prec)
if (ioctl(m_audio_fd, SNDCTL_DSP_SETFMT, &p) == -1)
qWarning("OutputOSS: can't set audio format");
- if(ioctl(m_audio_fd, SNDCTL_DSP_SAMPLESIZE, &prec) == -1)
- qDebug("OutputOSS: can't set audio format");
+ /*if(ioctl(m_audio_fd, SNDCTL_DSP_SAMPLESIZE, &prec) == -1)
+ qDebug("OutputOSS: can't set audio format");*/
int stereo = (chan > 1) ? 1 : 0;
ioctl(m_audio_fd, SNDCTL_DSP_STEREO, &stereo);
/*if (ioctl(m_audio_fd, SNDCTL_DSP_SPEED, &m_channels) == -1)
@@ -146,7 +144,7 @@ void OutputOSS::configure(quint32 freq, int chan, int prec)
if (ioctl(m_audio_fd, SNDCTL_DSP_SPEED, &freq) == -1)
qWarning("OutputOSS: can't set audio format");
}
- Output::configure(freq, chan, prec);
+ Output::configure(freq, chan, format);
}
void OutputOSS::reset()
@@ -226,7 +224,6 @@ void OutputOSS::uninitialize()
m_inited = FALSE;
m_frequency = -1;
m_channels = -1;
- m_precision = -1;
resetDSP();
if (m_audio_fd > 0)
{
diff --git a/src/plugins/Output/oss/outputoss.h b/src/plugins/Output/oss/outputoss.h
index cd9d919aa..7fb0e4c94 100644
--- a/src/plugins/Output/oss/outputoss.h
+++ b/src/plugins/Output/oss/outputoss.h
@@ -36,7 +36,7 @@ public:
virtual ~OutputOSS();
bool initialize();
- void configure(quint32, int, int);
+ void configure(quint32, int, Qmmp::AudioFormat format);
qint64 latency();
int audio_fd();
static OutputOSS* instance();
@@ -62,7 +62,7 @@ private:
bool m_inited;
quint32 m_frequency;
- int m_channels, m_precision;
+ int m_channels;
bool do_select;
int m_audio_fd;
diff --git a/src/plugins/Output/pulseaudio/CMakeLists.txt b/src/plugins/Output/pulseaudio/CMakeLists.txt
index c3072e4d5..c1501e08d 100644
--- a/src/plugins/Output/pulseaudio/CMakeLists.txt
+++ b/src/plugins/Output/pulseaudio/CMakeLists.txt
@@ -26,7 +26,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
# pulseaudio
-pkg_check_modules(PULSE libpulse-simple)
+pkg_check_modules(PULSE libpulse-simple>=0.9.15)
include_directories(${PULSE_INCLUDE_DIRS})
link_directories(${PULSE_LIBRARY_DIRS})
diff --git a/src/plugins/Output/pulseaudio/outputpulseaudio.cpp b/src/plugins/Output/pulseaudio/outputpulseaudio.cpp
index e122e0c64..1765444fd 100644
--- a/src/plugins/Output/pulseaudio/outputpulseaudio.cpp
+++ b/src/plugins/Output/pulseaudio/outputpulseaudio.cpp
@@ -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 *
@@ -46,19 +46,24 @@ OutputPulseAudio::~OutputPulseAudio()
uninitialize();
}
-void OutputPulseAudio::configure(quint32 freq, int chan, int prec)
+void OutputPulseAudio::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
{
pa_sample_spec ss;
- switch (prec)
+ switch (format)
{
- case 8:
+ case Qmmp::PCM_S8:
ss.format = PA_SAMPLE_U8;
break;
- case 32:
+ case Qmmp::PCM_S16LE:
+ ss.format = PA_SAMPLE_S16LE;
+ break;
+ case Qmmp::PCM_S24LE:
+ ss.format = PA_SAMPLE_S24_32LE;
+ break;
+ case Qmmp::PCM_S32LE:
ss.format = PA_SAMPLE_S32LE;
break;
- case 16:
default:
ss.format = PA_SAMPLE_S16LE;
}
@@ -81,8 +86,7 @@ void OutputPulseAudio::configure(quint32 freq, int chan, int prec)
qWarning("OutputPulseAudio: pa_simple_new() failed: %s", pa_strerror(error));
return;
}
- qDebug("OutputPulseAudio: frequency=%d, channels=%d, bits=%d", uint(freq), chan, prec);
- Output::configure(freq, chan, prec);
+ Output::configure(freq, chan, format);
}
bool OutputPulseAudio::initialize()
diff --git a/src/plugins/Output/pulseaudio/outputpulseaudio.h b/src/plugins/Output/pulseaudio/outputpulseaudio.h
index 5cc0bd93f..1a85e557a 100644
--- a/src/plugins/Output/pulseaudio/outputpulseaudio.h
+++ b/src/plugins/Output/pulseaudio/outputpulseaudio.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 *
@@ -40,7 +40,7 @@ public:
~OutputPulseAudio();
bool initialize();
- void configure(quint32, int, int);
+ void configure(quint32, int, Qmmp::AudioFormat format);
qint64 latency();
private: