diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-16 15:33:17 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-01-16 15:33:17 +0000 |
| commit | 435f1da1de18bafe57e43e47fd8a6fc69fd8bab7 (patch) | |
| tree | e332293971b3b3883685b79c62bcd50bf2f49c12 /src/plugins/Output | |
| parent | 2fa169a585994ceb40db55405f46783d06820947 (diff) | |
| download | qmmp-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')
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: |
