From 0ae40fd97183b0d6564a25373610b2d99ba17cf8 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 25 Jun 2009 19:55:30 +0000 Subject: ported oss plugin git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@976 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Output/oss/CMakeLists.txt | 7 + src/plugins/Output/oss/oss.pro | 2 + src/plugins/Output/oss/outputoss.cpp | 391 ++++++++------------- src/plugins/Output/oss/outputoss.h | 61 +++- src/plugins/Output/oss/outputossfactory.cpp | 18 +- src/plugins/Output/oss/outputossfactory.h | 6 +- src/plugins/Output/oss/settingsdialog.cpp | 6 +- src/plugins/Output/oss/settingsdialog.ui | 225 +++++------- .../Output/oss/translations/oss_plugin_cs.ts | 27 +- .../Output/oss/translations/oss_plugin_de.ts | 24 +- .../Output/oss/translations/oss_plugin_it.ts | 28 +- .../Output/oss/translations/oss_plugin_pl.ts | 24 +- .../Output/oss/translations/oss_plugin_ru.ts | 27 +- .../Output/oss/translations/oss_plugin_uk_UA.ts | 28 +- .../Output/oss/translations/oss_plugin_zh_CN.ts | 27 +- .../Output/oss/translations/oss_plugin_zh_TW.ts | 27 +- 16 files changed, 406 insertions(+), 522 deletions(-) (limited to 'src/plugins/Output/oss') diff --git a/src/plugins/Output/oss/CMakeLists.txt b/src/plugins/Output/oss/CMakeLists.txt index eb4369dfb..45c743fdf 100644 --- a/src/plugins/Output/oss/CMakeLists.txt +++ b/src/plugins/Output/oss/CMakeLists.txt @@ -6,6 +6,8 @@ if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) +INCLUDE(CheckIncludeFile) + # qt plugin ADD_DEFINITIONS( -Wall ) ADD_DEFINITIONS(${QT_DEFINITIONS}) @@ -20,6 +22,11 @@ SET(QT_INCLUDES ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/../../../ ) +#OSS +CHECK_INCLUDE_FILE(sys/soundcard.h SYS_SOUNDCARD_H_FOUND) +IF(SYS_SOUNDCARD_H_FOUND) +ADD_DEFINITIONS(-DHAVE_SYS_SOUNDCARD_H) +ENDIF(SYS_SOUNDCARD_H_FOUND) # libqmmp include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) diff --git a/src/plugins/Output/oss/oss.pro b/src/plugins/Output/oss/oss.pro index a2f636fd3..7dcb6273a 100644 --- a/src/plugins/Output/oss/oss.pro +++ b/src/plugins/Output/oss/oss.pro @@ -21,6 +21,8 @@ warn_on \ thread \ plugin +DEFINES += HAVE_SYS_SOUNDCARD_H + TEMPLATE = lib LIBS += -lqmmp diff --git a/src/plugins/Output/oss/outputoss.cpp b/src/plugins/Output/oss/outputoss.cpp index 49a4c5793..5f3bbfa10 100644 --- a/src/plugins/Output/oss/outputoss.cpp +++ b/src/plugins/Output/oss/outputoss.cpp @@ -20,6 +20,7 @@ ***************************************************************************/ #include + extern "C" { #ifdef HAVE_SYS_SOUNDCARD_H @@ -42,45 +43,6 @@ extern "C" #include -//extern Q_EXPORT QApplication* qApp; - - -void OutputOSS::stop() -{ - m_userStop = TRUE; -} - -void OutputOSS::status() -{ - long ct = (m_totalWritten - latency()) / m_bps; - - if (ct < 0) - ct = 0; - - if (ct > m_currentSeconds) - { - m_currentSeconds = ct; - dispatch(m_currentSeconds, m_totalWritten, m_rate, - m_frequency, m_precision, m_channels); - } -} - -long OutputOSS::written() -{ - return m_totalWritten; -} - -void OutputOSS::seek(long pos) -{ - /*recycler()->mutex()->lock(); - recycler()->clear(); - recycler()->mutex()->unlock();*/ - - m_totalWritten = (pos * m_bps); - m_currentSeconds = -1; -} - - #include #include #include @@ -94,37 +56,41 @@ void OutputOSS::seek(long pos) # include #endif +OutputOSS *OutputOSS::m_instance = 0; +VolumeControlOSS *VolumeControlOSS::m_instance = 0; + +OutputOSS* OutputOSS::instance() +{ + return m_instance; +} OutputOSS::OutputOSS(QObject * parent) - : Output(parent), m_inited(FALSE), m_pause(FALSE), m_play(FALSE), - m_userStop(FALSE), - m_totalWritten(0), m_currentSeconds(-1), - m_bps(1), m_frequency(-1), m_channels(-1), m_precision(-1), + : Output(parent), m_inited(FALSE), + m_frequency(-1), m_channels(-1), m_precision(-1), do_select(TRUE), - m_audio_fd(-1), m_mixer_fd(-1) + m_audio_fd(-1) { - QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); - m_master = true; + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_audio_device = settings.value("OSS/device","/dev/dsp").toString(); - m_mixer_device = settings.value("OSS/mixer_device","/dev/mixer").toString(); - openMixer(); + m_instance = this; +} + +int OutputOSS::audio_fd() +{ + return m_audio_fd; } OutputOSS::~OutputOSS() { + m_instance = 0; if (m_audio_fd > 0) { close(m_audio_fd); m_audio_fd = -1; } - if (m_mixer_fd > 0) - { - close(m_mixer_fd); - m_mixer_fd = -1; - } } -void OutputOSS::configure(long freq, int chan, int prec, int rate) +void OutputOSS::configure(quint32 freq, int chan, int prec) { // we need to configure if (freq != m_frequency || chan != m_channels || prec != m_precision) @@ -133,12 +99,22 @@ void OutputOSS::configure(long freq, int chan, int prec, int rate) // we have already configured, but are changing settings... // reset the device resetDSP(); - +#if SOUND_VERSION >= 0x040000 + if (VolumeControlOSS::instance()) + { + long cmd; + int v; + cmd = SNDCTL_DSP_SETPLAYVOL; + v = (VolumeControlOSS::instance()->right() << 8) | VolumeControlOSS::instance()->left(); + if(m_audio_fd > 1) + ioctl(m_audio_fd, cmd, &v); + } +#endif m_frequency = freq; m_channels = chan; m_precision = prec; - m_bps = freq * chan * (prec / 8); + //m_bps = freq * chan * (prec / 8); int p; switch (prec) @@ -160,22 +136,20 @@ void OutputOSS::configure(long freq, int chan, int prec, int rate) 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");*/ - /*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) - qWarning("OutputOSS: can't set number of channels"); - if (chan != m_channels) - qWarning("OutputOSS: can't set number of channels, using %d instead", m_channels); + 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) + qWarning("OutputOSS: can't set number of channels");*/ + /*if (chan != m_channels) + qWarning("OutputOSS: can't set number of channels, using %d instead", m_channels);*/ if (ioctl(m_audio_fd, SNDCTL_DSP_SPEED, &freq) == -1) qWarning("OutputOSS: can't set audio format"); } - - m_rate = rate; + Output::configure(freq, chan, prec); } - void OutputOSS::reset() { if (m_audio_fd > 0) @@ -188,8 +162,7 @@ void OutputOSS::reset() if (m_audio_fd < 0) { - error(QString("OSSOutput: failed to open output device '%1'"). - arg(m_audio_device)); + qWarning("OSSOutput: failed to open output device '%s'", qPrintable(m_audio_device)); return; } @@ -207,39 +180,6 @@ void OutputOSS::reset() tv.tv_sec = 0l; tv.tv_usec = 50000l; do_select = (select(m_audio_fd + 1, 0, &afd, 0, &tv) > 0); - - if (m_audio_fd > 0) - { - close(m_mixer_fd); - m_mixer_fd = -1; - } - openMixer(); -} - -void OutputOSS::openMixer() -{ -#if SOUND_VERSION < 0x040000 - if (m_mixer_fd != -1) - return; - - if ((m_mixer_fd = open(m_mixer_device.toAscii(), O_RDWR)) == -1) - { - return; - } - if (m_audio_fd < 0) - { - error(QString("OSSOutput: failed to open mixer device '%1'"). - arg(m_mixer_device)); - return; - } -#endif -} - -void OutputOSS::pause() -{ - m_pause = !m_pause; - OutputState::Type state = m_pause ? OutputState::Paused: OutputState::Playing; - dispatch(state); } void OutputOSS::post() @@ -273,20 +213,9 @@ void OutputOSS::resetDSP() bool OutputOSS::initialize() { - m_inited = m_pause = m_play = m_userStop = FALSE; - - reset(); if (m_audio_fd < 0) return FALSE; - if (m_mixer_fd < 0) - return FALSE; - - - m_currentSeconds = -1; - m_totalWritten = 0; - stat = OutputState::Stopped; - m_inited = TRUE; return TRUE; } @@ -296,12 +225,6 @@ void OutputOSS::uninitialize() if (!m_inited) return; m_inited = FALSE; - m_pause = FALSE; - m_play = FALSE; - m_userStop = FALSE; - m_totalWritten = 0; - m_currentSeconds = -1; - m_bps = -1; m_frequency = -1; m_channels = -1; m_precision = -1; @@ -311,153 +234,112 @@ void OutputOSS::uninitialize() close(m_audio_fd); m_audio_fd = -1; } - if (m_audio_fd > 0) - { - close(m_mixer_fd); - m_mixer_fd = -1; - } - qDebug("OutputOSS: uninitialize"); - dispatch(OutputState::Stopped); } -long OutputOSS::latency() +qint64 OutputOSS::latency() { - ulong used = 0; - - if (! m_pause) - { - if (ioctl(m_audio_fd, SNDCTL_DSP_GETODELAY, &used) == -1) - used = 0; - } + //ulong used = 0; - return used; + /*if (ioctl(m_audio_fd, SNDCTL_DSP_GETODELAY, &used) == -1) + used = 0;*/ + return 0; } -void OutputOSS::run() +qint64 OutputOSS::writeAudio(unsigned char *data, qint64 maxSize) { - mutex()->lock(); - - if (! m_inited) - { - mutex()->unlock(); - - return; - } - - m_play = TRUE; - - mutex()->unlock(); - fd_set afd; struct timeval tv; - Buffer *b = 0; - bool done = FALSE; - unsigned long n = 0, m = 0, l = 0; - - dispatch(OutputState::Playing); - + qint64 m = -1, l; FD_ZERO(&afd); - - while (! done) - { - mutex()->lock(); - - recycler()->mutex()->lock(); - - done = m_userStop; - - while (! done && (recycler()->empty() || m_pause)) - { - post(); - - mutex()->unlock(); - - recycler()->cond()->wakeOne(); - recycler()->cond()->wait(recycler()->mutex()); - - mutex()->lock(); - done = m_userStop; - status(); - } - - if (! b) - { - b = recycler()->next(); - if (b->rate) - m_rate = b->rate; - } - - recycler()->cond()->wakeOne(); - recycler()->mutex()->unlock(); - - FD_ZERO(&afd); - FD_SET(m_audio_fd, &afd); - // nice long poll timeout - tv.tv_sec = 5l; - tv.tv_usec = 0l; - - if (b && - (! do_select || (select(m_audio_fd + 1, 0, &afd, 0, &tv) > 0 && + FD_SET(m_audio_fd, &afd); + // nice long poll timeout + tv.tv_sec = 5l; + tv.tv_usec = 0l; + if ((! do_select || (select(m_audio_fd + 1, 0, &afd, 0, &tv) > 0 && FD_ISSET(m_audio_fd, &afd)))) + { + l = qMin(int(2048), int(maxSize)); + if (l > 0) { - l = qMin(int(2048), int(b->nbytes - n)); - if (l > 0) - { - mutex()->unlock(); - m = write(m_audio_fd, b->data + n, l); - mutex()->lock(); - n += m; - - status(); - dispatchVisual(b, m_totalWritten, m_channels, m_precision); - } - else - { - // force buffer change - n = b->nbytes; - m = 0; - } - } - - m_totalWritten += m; - - if (n == b->nbytes) - { - recycler()->mutex()->lock(); - recycler()->done(); - recycler()->mutex()->unlock(); - - b = 0; - n = 0; + m = write(m_audio_fd, data, l); } - - mutex()->unlock(); } + post(); + return m; +} - mutex()->lock(); +/***** MIXER *****/ - if (! m_userStop) - sync(); - resetDSP(); - - m_play = FALSE; +VolumeControlOSS *VolumeControlOSS::instance() +{ + return m_instance; +} - dispatch(OutputState::Stopped); - mutex()->unlock(); +VolumeControlOSS::VolumeControlOSS(QObject *parent) : VolumeControl(parent) +{ + m_master = TRUE; + m_mixer_fd = -1; + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); +#if SOUND_VERSION < 0x040000 + m_mixer_device = settings.value("OSS/mixer_device","/dev/mixer").toString(); + openMixer(); +#else + m_mixer_device = settings.value("OSS/device","/dev/dsp").toString(); + int mixer_fd = -1; + bool to_close = FALSE; + if (OutputOSS::instance() && OutputOSS::instance()->audio_fd() > 0) + mixer_fd = OutputOSS::instance()->audio_fd(); + else + { + mixer_fd = open(m_audio_device.toAscii(), O_WRONLY, 0); + to_close = TRUE; + } + if(mixer_fd > 0) + { + int v; + long cmd = SNDCTL_DSP_GETPLAYVOL; + if (ioctl(mixer_fd, cmd, &v) == -1) + v = 0; + m_left = (v & 0xFF00) >> 8; + m_right = (v & 0x00FF); + } + if(to_close) + { + close((mixer_fd); + mixer_fd = -1; + } +#endif + m_instance = this; } +VolumeControlOSS::~VolumeControlOSS() +{ +#if SOUND_VERSION < 0x040000 + if (m_mixer_fd > 0) + { + close(m_mixer_fd); + m_mixer_fd = -1; + } +#endif + if (m_mixer_fd > 0 && !OutputOSS::instance()) + { + close(m_mixer_fd); + m_mixer_fd = -1; + } + m_instance = 0; +} -void OutputOSS::setVolume(int l, int r) +void VolumeControlOSS::setVolume(int l, int r) { int v, devs; long cmd; #if SOUND_VERSION < 0x040000 ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs); - if ((devs & SOUND_MASK_PCM) && (m_master == false)) + if ((devs & SOUND_MASK_PCM) && !m_master) cmd = SOUND_MIXER_WRITE_PCM; - else if ((devs & SOUND_MASK_VOLUME) && (m_master == true)) + else if ((devs & SOUND_MASK_VOLUME) && m_master) cmd = SOUND_MIXER_WRITE_VOLUME; else { @@ -469,22 +351,25 @@ void OutputOSS::setVolume(int l, int r) #else cmd = SNDCTL_DSP_SETPLAYVOL; v = (r << 8) | l; - ioctl(m_audio_fd, cmd, &v); + if (OutputOSS::instance() && OutputOSS::instance()->audio_fd() > 0) + ioctl(OutputOSS::instance()->audio_fd(), cmd, &v); + m_left = l; + m_right = r; #endif } -void OutputOSS::volume(int *ll,int *rr) +void VolumeControlOSS::volume(int *ll,int *rr) { *ll = 0; *rr = 0; int cmd; - int v, devs; + int v, devs = 0; #if SOUND_VERSION < 0x040000 ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs); - if ((devs & SOUND_MASK_PCM) && (m_master == 0)) + if ((devs & SOUND_MASK_PCM) && !m_master) cmd = SOUND_MIXER_READ_PCM; - else if ((devs & SOUND_MASK_VOLUME) && (m_master == 1)) + else if ((devs & SOUND_MASK_VOLUME) && m_master) cmd = SOUND_MIXER_READ_VOLUME; else return; @@ -498,10 +383,26 @@ void OutputOSS::volume(int *ll,int *rr) *ll = (*ll < 0) ? 0 : *ll; *rr = (*rr < 0) ? 0 : *rr; #else - cmd = SNDCTL_DSP_GETPLAYVOL; + /*cmd = SNDCTL_DSP_GETPLAYVOL; if (ioctl(m_audio_fd, cmd, &v) == -1) v = 0; *rr = (v & 0xFF00) >> 8; - *ll = (v & 0x00FF); + *ll = (v & 0x00FF);*/ + *rr = m_left; + *ll = m_right; +#endif +} + +void VolumeControlOSS::openMixer() +{ +#if SOUND_VERSION < 0x040000 + if (m_mixer_fd != -1) + return; + m_mixer_fd = open(m_mixer_device.toAscii(), O_RDWR); + if (m_mixer_fd < 0) + { + qWarning("VolumeControlOSS: unable to open mixer device '%s'", qPrintable(m_mixer_device)); + return; + } #endif } diff --git a/src/plugins/Output/oss/outputoss.h b/src/plugins/Output/oss/outputoss.h index c38bbc68b..a83cba51e 100644 --- a/src/plugins/Output/oss/outputoss.h +++ b/src/plugins/Output/oss/outputoss.h @@ -26,7 +26,7 @@ class OutputOSS; #include -#include +#include class OutputOSS : public Output { @@ -35,40 +35,63 @@ public: OutputOSS(QObject * parent = 0); virtual ~OutputOSS(); - bool isInitialized() const { return m_inited; } bool initialize(); - void uninitialize(); - void configure(long, int, int, int); - void stop(); - void pause(); - long written(); - long latency(); - void seek(long); - void setVolume(int l, int r); - void volume(int* l,int* r); + void configure(quint32, int, int); + qint64 latency(); + int audio_fd(); + static OutputOSS* instance(); + +private: + //output api + qint64 writeAudio(unsigned char *data, qint64 maxSize); + void flush(){}; private: // thread run function - void run(); + //void run(); // helper functions void reset(); void resetDSP(); - void status(); void post(); void sync(); - void openMixer(); + //void openMixer(); + void uninitialize(); QString m_audio_device, m_mixer_device; - bool m_inited, m_pause, m_play, m_userStop, m_master; - long m_totalWritten, m_currentSeconds, m_bps; - int stat; - int m_rate, m_frequency, m_channels, m_precision; + bool m_inited; + quint32 m_frequency; + int m_channels, m_precision; bool do_select; - int m_audio_fd, m_mixer_fd; + int m_audio_fd; long bl, br; + static OutputOSS *m_instance; +}; + +class VolumeControlOSS : public VolumeControl +{ + Q_OBJECT +public: + VolumeControlOSS(QObject *parent = 0); + ~VolumeControlOSS(); + + void setVolume(int left, int right); + static VolumeControlOSS* instance(); + +protected: + void volume(int *left, int *right); + +private: + //oss mixer + QString m_audio_device; + void openMixer(); + int m_mixer_fd; + QString m_mixer_device; + bool m_master; + //int m_left, m_right; + static VolumeControlOSS *m_instance; }; diff --git a/src/plugins/Output/oss/outputossfactory.cpp b/src/plugins/Output/oss/outputossfactory.cpp index d47f6607a..7e2e258f6 100644 --- a/src/plugins/Output/oss/outputossfactory.cpp +++ b/src/plugins/Output/oss/outputossfactory.cpp @@ -25,13 +25,7 @@ #include "outputossfactory.h" -const QString& OutputOSSFactory::name() const -{ - static QString name(tr("OSS Plugin")); - return name; -} - -Output* OutputOSSFactory::create(QObject* parent,bool) +Output* OutputOSSFactory::create(QObject* parent) { return new OutputOSS(parent); } @@ -39,12 +33,18 @@ Output* OutputOSSFactory::create(QObject* parent,bool) const OutputProperties OutputOSSFactory::properties() const { OutputProperties properties; - properties.name = name(); + properties.name = tr("OSS Plugin"); + properties.shortName = "oss"; properties.hasAbout = TRUE; properties.hasSettings = TRUE; return properties; } +VolumeControl *OutputOSSFactory::createVolumeControl(QObject *parent) +{ + return new VolumeControlOSS(parent); +} + void OutputOSSFactory::showSettings(QWidget* parent) { SettingsDialog *s = new SettingsDialog(parent); @@ -62,7 +62,7 @@ QMessageBox::about (parent, tr("About OSS Output Plugin"), QTranslator *OutputOSSFactory::createTranslator(QObject *parent) { QTranslator *translator = new QTranslator(parent); - QString locale = Qmmp::systemLanguageID(); + QString locale = QLocale::system().name(); translator->load(QString(":/oss_plugin_") + locale); return translator; } diff --git a/src/plugins/Output/oss/outputossfactory.h b/src/plugins/Output/oss/outputossfactory.h index 9ef168282..22e9f35a5 100644 --- a/src/plugins/Output/oss/outputossfactory.h +++ b/src/plugins/Output/oss/outputossfactory.h @@ -37,12 +37,12 @@ Q_OBJECT Q_INTERFACES(OutputFactory); public: - const QString& name() const; - Output* create(QObject* parent,bool); + const OutputProperties properties() const; + Output* create(QObject* parent); + VolumeControl *createVolumeControl(QObject *parent); void showSettings(QWidget* parent); void showAbout(QWidget *parent); QTranslator *createTranslator(QObject *parent); - const OutputProperties properties() const; }; #endif diff --git a/src/plugins/Output/oss/settingsdialog.cpp b/src/plugins/Output/oss/settingsdialog.cpp index 8d75b06eb..f475fd299 100644 --- a/src/plugins/Output/oss/settingsdialog.cpp +++ b/src/plugins/Output/oss/settingsdialog.cpp @@ -19,7 +19,7 @@ ***************************************************************************/ #include #include - +#include #include "settingsdialog.h" SettingsDialog::SettingsDialog ( QWidget *parent ) @@ -28,7 +28,7 @@ SettingsDialog::SettingsDialog ( QWidget *parent ) ui.setupUi ( this ); setAttribute ( Qt::WA_DeleteOnClose ); connect(ui.okButton, SIGNAL(clicked()), SLOT(writeSettings())); - QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("OSS"); ui.lineEdit->insert(settings.value("device","/dev/dsp").toString()); ui.lineEdit_2->insert(settings.value("mixer_device","/dev/mixer").toString()); @@ -47,7 +47,7 @@ SettingsDialog::~SettingsDialog() void SettingsDialog::writeSettings() { qDebug("SettingsDialog (OSS):: writeSettings()"); - QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("OSS"); settings.setValue("device", ui.lineEdit->text()); settings.setValue("buffer_time",ui.bufferSpinBox->value()); diff --git a/src/plugins/Output/oss/settingsdialog.ui b/src/plugins/Output/oss/settingsdialog.ui index ce1c40894..73e4db393 100644 --- a/src/plugins/Output/oss/settingsdialog.ui +++ b/src/plugins/Output/oss/settingsdialog.ui @@ -1,70 +1,50 @@ - + + SettingsDialog - - + + 0 0 422 - 334 + 223 - + OSS Plugin Settings - - + + 9 - - 9 - - - 9 - - - 9 - - - 6 - - + 6 - - - + + + 0 - - + + Device Settings - - + + 6 - - 9 - - - 9 - - - 9 - - + 9 - - + + Audio device - + - - + + @@ -73,32 +53,20 @@ - - + + Mixer device - - - 9 - - - 9 - - + + 9 - - 9 - - + 6 - - 6 - - - - + + + @@ -108,56 +76,35 @@ - - + + Advanced Settings - - + + 6 - - 9 - - - 9 - - - 9 - - + 9 - - + + Soundcard - - - 9 - - - 9 - - + + 9 - - 9 - - - 6 - - + 6 - + - + Qt::Vertical - + 20 111 @@ -165,12 +112,12 @@ - + - + Qt::Horizontal - + 188 20 @@ -178,58 +125,58 @@ - - - + + + 20 - + 5000 - + 100 - - - + + + 200 - + 10000 - + 500 - - - + + + Buffer time (ms): - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - + + + Period time (ms): - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - + - + Qt::Horizontal - + 188 20 @@ -237,16 +184,16 @@ - - - + + + - - - + + + PCM over Master @@ -258,12 +205,12 @@ - + - + Qt::Horizontal - + 191 20 @@ -271,16 +218,16 @@ - - - + + + Cancel - - - + + + OK @@ -295,11 +242,11 @@ SettingsDialog reject() - + 338 283 - + 164 294 diff --git a/src/plugins/Output/oss/translations/oss_plugin_cs.ts b/src/plugins/Output/oss/translations/oss_plugin_cs.ts index cbab2729a..d6f8d30b8 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_cs.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_cs.ts @@ -1,9 +1,10 @@ - + + OutputOSSFactory - + OSS Plugin Modul OSS @@ -31,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Nastavení pluginu OSS - + Device Settings Nastavení zařízení - + Audio device Zvukové zařízení - + Mixer device Ovládání hlasitosti - + Advanced Settings Pokročilá nastavení - + Soundcard Zvuková karta - + Buffer time (ms): Velikost bufferu (ms): - + Period time (ms): Délka periody (ms): - + PCM over Master PCM přes Master - + Cancel Zrušit - + OK OK diff --git a/src/plugins/Output/oss/translations/oss_plugin_de.ts b/src/plugins/Output/oss/translations/oss_plugin_de.ts index 65a62daaa..800c529e1 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_de.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_de.ts @@ -4,7 +4,7 @@ OutputOSSFactory - + OSS Plugin OSS-Modul @@ -32,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Einstellungen OSS-Modul - + Device Settings Geräte-Einstellungen - + Audio device Audiogerät - + Mixer device Mixergerät - + Advanced Settings Erweiterte Einstellungen - + Soundcard Soundkarte - + Buffer time (ms): Pufferzeit (ms): - + Period time (ms): Zeitraster (ms): - + PCM over Master PCM over Master - + Cancel Abbrechen - + OK OK diff --git a/src/plugins/Output/oss/translations/oss_plugin_it.ts b/src/plugins/Output/oss/translations/oss_plugin_it.ts index 3655267f7..169ffdc82 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_it.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_it.ts @@ -1,10 +1,10 @@ - - + + OutputOSSFactory - + OSS Plugin Modulo OSS @@ -32,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Impostazioni del modulo OSS - + Device Settings Impostazioni del device - + Audio device Device audio - + Mixer device Device Mixer - + Advanced Settings Impostazioni avanzate - + Soundcard Scheda audio - + Buffer time (ms): Tempo di buffering (ms): - + Period time (ms): Periodo (ms): - + PCM over Master PCM su Master - + Cancel Annulla - + OK OK diff --git a/src/plugins/Output/oss/translations/oss_plugin_pl.ts b/src/plugins/Output/oss/translations/oss_plugin_pl.ts index 8d061aeb7..9ef58bfb3 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_pl.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_pl.ts @@ -4,7 +4,7 @@ OutputOSSFactory - + OSS Plugin Wtyczka OSS @@ -32,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Ustawienia wtyczki OSS - + Device Settings Ustawienia urządzenia - + Audio device Urządzenie dźwiękowe - + Mixer device Urządzenie miksujące - + Advanced Settings Zaawansowane ustawienia - + Soundcard Karta dźwiękowa - + Buffer time (ms): Czas bufora (ms): - + Period time (ms): Długość cyklu (ms): - + PCM over Master Użyj PCM nad Master - + Cancel Anuluj - + OK OK diff --git a/src/plugins/Output/oss/translations/oss_plugin_ru.ts b/src/plugins/Output/oss/translations/oss_plugin_ru.ts index 15dc5e105..ad15053b9 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_ru.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_ru.ts @@ -1,9 +1,10 @@ - + + OutputOSSFactory - + OSS Plugin Модуль OSS @@ -31,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Настройки модуля OSS - + Device Settings Настройки устройства - + Audio device Аудиоустройство - + Mixer device Устройство микшера - + Advanced Settings Дополнительные настройки - + Soundcard Звуковая карта - + Buffer time (ms): Время буфера (мс): - + Period time (ms): Время периода (мс): - + PCM over Master PCM вместо Master - + Cancel Отмена - + OK diff --git a/src/plugins/Output/oss/translations/oss_plugin_uk_UA.ts b/src/plugins/Output/oss/translations/oss_plugin_uk_UA.ts index 79495a1f5..0f04a8d54 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_uk_UA.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_uk_UA.ts @@ -1,10 +1,10 @@ - - + + OutputOSSFactory - + OSS Plugin Модуль OSS @@ -32,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings Налаштування модуля OSS - + Device Settings Налаштування пристрою - + Audio device Пристрій звуку - + Mixer device Пристрій мікшеру - + Advanced Settings Додаткові налаштування - + Soundcard Звукова карта - + Buffer time (ms): Час буферу (мс): - + Period time (ms): Час периоду (мс): - + PCM over Master PCM замість Master - + Cancel Відміна - + OK Застосувати diff --git a/src/plugins/Output/oss/translations/oss_plugin_zh_CN.ts b/src/plugins/Output/oss/translations/oss_plugin_zh_CN.ts index 8409ab670..680808ea2 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_zh_CN.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_zh_CN.ts @@ -1,9 +1,10 @@ - + + OutputOSSFactory - + OSS Plugin OSS 插件 @@ -31,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings OSS 插件设置 - + Device Settings 设备设置 - + Audio device 音频设备 - + Mixer device 混频设备 - + Advanced Settings 高级设置 - + Soundcard 声卡 - + Buffer time (ms): 缓冲时间(ms): - + Period time (ms): 周期时间(ms): - + PCM over Master PCM over Master - + Cancel 取消 - + OK 确定 diff --git a/src/plugins/Output/oss/translations/oss_plugin_zh_TW.ts b/src/plugins/Output/oss/translations/oss_plugin_zh_TW.ts index 48b6bef0f..e58e233ef 100644 --- a/src/plugins/Output/oss/translations/oss_plugin_zh_TW.ts +++ b/src/plugins/Output/oss/translations/oss_plugin_zh_TW.ts @@ -1,9 +1,10 @@ - + + OutputOSSFactory - + OSS Plugin OSS 插件 @@ -31,57 +32,57 @@ SettingsDialog - + OSS Plugin Settings OSS 插件設定 - + Device Settings 裝置設定 - + Audio device 聲訊裝置 - + Mixer device 混頻裝置 - + Advanced Settings 進階設定 - + Soundcard 音效卡 - + Buffer time (ms): 緩衝時間(ms): - + Period time (ms): 周期時間(ms): - + PCM over Master PCM over Master - + Cancel 取消 - + OK 確定 -- cgit v1.2.3-13-gbd6f