aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-06-25 19:55:30 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-06-25 19:55:30 +0000
commit0ae40fd97183b0d6564a25373610b2d99ba17cf8 (patch)
treec9733cec8bbfbba4bd05d7b7006856bf2653fdab /src/plugins
parent0ce1335dc6a20ffce8095ca5f98c1f2d25346d9a (diff)
downloadqmmp-0ae40fd97183b0d6564a25373610b2d99ba17cf8.tar.gz
qmmp-0ae40fd97183b0d6564a25373610b2d99ba17cf8.tar.bz2
qmmp-0ae40fd97183b0d6564a25373610b2d99ba17cf8.zip
ported oss plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@976 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Output/CMakeLists.txt2
-rw-r--r--src/plugins/Output/Output.pro4
-rw-r--r--src/plugins/Output/oss/CMakeLists.txt7
-rw-r--r--src/plugins/Output/oss/oss.pro2
-rw-r--r--src/plugins/Output/oss/outputoss.cpp391
-rw-r--r--src/plugins/Output/oss/outputoss.h61
-rw-r--r--src/plugins/Output/oss/outputossfactory.cpp18
-rw-r--r--src/plugins/Output/oss/outputossfactory.h6
-rw-r--r--src/plugins/Output/oss/settingsdialog.cpp6
-rw-r--r--src/plugins/Output/oss/settingsdialog.ui225
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_cs.ts27
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_de.ts24
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_it.ts28
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_pl.ts24
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_ru.ts27
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_uk_UA.ts28
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_zh_CN.ts27
-rw-r--r--src/plugins/Output/oss/translations/oss_plugin_zh_TW.ts27
18 files changed, 409 insertions, 525 deletions
diff --git a/src/plugins/Output/CMakeLists.txt b/src/plugins/Output/CMakeLists.txt
index bd3d114dc..f2199ca04 100644
--- a/src/plugins/Output/CMakeLists.txt
+++ b/src/plugins/Output/CMakeLists.txt
@@ -12,7 +12,7 @@ IF(USE_JACK)
ENDIF(USE_JACK)
IF(USE_OSS)
-#add_subdirectory(oss)
+add_subdirectory(oss)
ENDIF(USE_OSS)
IF(USE_PULSE)
diff --git a/src/plugins/Output/Output.pro b/src/plugins/Output/Output.pro
index d60a6e64c..73453c7b4 100644
--- a/src/plugins/Output/Output.pro
+++ b/src/plugins/Output/Output.pro
@@ -12,7 +12,7 @@ contains(CONFIG, JACK_PLUGIN){
}
contains(CONFIG, OSS_PLUGIN){
-# SUBDIRS += oss
+ SUBDIRS += oss
message(**********************)
message(* OSS plugin enabled *)
message(**********************)
@@ -31,4 +31,4 @@ contains(CONFIG, ALSA_PLUGIN){
message(* ALSA plugin enabled *)
message(***********************)
}
-} \ No newline at end of file
+}
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 <QApplication>
+
extern "C"
{
#ifdef HAVE_SYS_SOUNDCARD_H
@@ -42,45 +43,6 @@ extern "C"
#include <iostream>
-//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 <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -94,37 +56,41 @@ void OutputOSS::seek(long pos)
# include <sys/soundcard.h>
#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 <qmmp/output.h>
-#include <QObject>
+#include <qmmp/volumecontrol.h>
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 <QSettings>
#include <QDir>
-
+#include <qmmp/qmmp.h>
#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 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>SettingsDialog</class>
- <widget class="QDialog" name="SettingsDialog" >
- <property name="geometry" >
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>422</width>
- <height>334</height>
+ <height>223</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>OSS Plugin Settings</string>
</property>
- <layout class="QGridLayout" >
- <property name="leftMargin" >
+ <layout class="QGridLayout">
+ <property name="margin">
<number>9</number>
</property>
- <property name="topMargin" >
- <number>9</number>
- </property>
- <property name="rightMargin" >
- <number>9</number>
- </property>
- <property name="bottomMargin" >
- <number>9</number>
- </property>
- <property name="horizontalSpacing" >
- <number>6</number>
- </property>
- <property name="verticalSpacing" >
+ <property name="spacing">
<number>6</number>
</property>
- <item row="0" column="0" colspan="3" >
- <widget class="QTabWidget" name="tabWidget" >
- <property name="currentIndex" >
+ <item row="0" column="0" colspan="3">
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
<number>0</number>
</property>
- <widget class="QWidget" name="tab" >
- <attribute name="title" >
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
<string>Device Settings</string>
</attribute>
- <layout class="QVBoxLayout" >
- <property name="spacing" >
+ <layout class="QVBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>9</number>
- </property>
- <property name="topMargin" >
- <number>9</number>
- </property>
- <property name="rightMargin" >
- <number>9</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>9</number>
</property>
<item>
- <widget class="QGroupBox" name="groupBox" >
- <property name="title" >
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
<string>Audio device</string>
</property>
- <layout class="QVBoxLayout" >
+ <layout class="QVBoxLayout">
<item>
- <widget class="QLineEdit" name="lineEdit" >
- <property name="text" >
+ <widget class="QLineEdit" name="lineEdit">
+ <property name="text">
<string/>
</property>
</widget>
@@ -73,32 +53,20 @@
</widget>
</item>
<item>
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="title" >
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
<string>Mixer device</string>
</property>
- <layout class="QGridLayout" >
- <property name="leftMargin" >
- <number>9</number>
- </property>
- <property name="topMargin" >
- <number>9</number>
- </property>
- <property name="rightMargin" >
+ <layout class="QGridLayout">
+ <property name="margin">
<number>9</number>
</property>
- <property name="bottomMargin" >
- <number>9</number>
- </property>
- <property name="horizontalSpacing" >
+ <property name="spacing">
<number>6</number>
</property>
- <property name="verticalSpacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QLineEdit" name="lineEdit_2" >
- <property name="text" >
+ <item row="0" column="0">
+ <widget class="QLineEdit" name="lineEdit_2">
+ <property name="text">
<string/>
</property>
</widget>
@@ -108,56 +76,35 @@
</item>
</layout>
</widget>
- <widget class="QWidget" name="tab_2" >
- <attribute name="title" >
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
<string>Advanced Settings</string>
</attribute>
- <layout class="QVBoxLayout" >
- <property name="spacing" >
+ <layout class="QVBoxLayout">
+ <property name="spacing">
<number>6</number>
</property>
- <property name="leftMargin" >
- <number>9</number>
- </property>
- <property name="topMargin" >
- <number>9</number>
- </property>
- <property name="rightMargin" >
- <number>9</number>
- </property>
- <property name="bottomMargin" >
+ <property name="margin">
<number>9</number>
</property>
<item>
- <widget class="QGroupBox" name="groupBox_3" >
- <property name="title" >
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
<string>Soundcard</string>
</property>
- <layout class="QGridLayout" >
- <property name="leftMargin" >
- <number>9</number>
- </property>
- <property name="topMargin" >
- <number>9</number>
- </property>
- <property name="rightMargin" >
+ <layout class="QGridLayout">
+ <property name="margin">
<number>9</number>
</property>
- <property name="bottomMargin" >
- <number>9</number>
- </property>
- <property name="horizontalSpacing" >
- <number>6</number>
- </property>
- <property name="verticalSpacing" >
+ <property name="spacing">
<number>6</number>
</property>
- <item row="3" column="1" >
+ <item row="3" column="1">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>111</height>
@@ -165,12 +112,12 @@
</property>
</spacer>
</item>
- <item row="0" column="2" >
+ <item row="0" column="2">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>188</width>
<height>20</height>
@@ -178,58 +125,58 @@
</property>
</spacer>
</item>
- <item row="1" column="1" >
- <widget class="QSpinBox" name="periodSpinBox" >
- <property name="minimum" >
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="periodSpinBox">
+ <property name="minimum">
<number>20</number>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>5000</number>
</property>
- <property name="value" >
+ <property name="value">
<number>100</number>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QSpinBox" name="bufferSpinBox" >
- <property name="minimum" >
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="bufferSpinBox">
+ <property name="minimum">
<number>200</number>
</property>
- <property name="maximum" >
+ <property name="maximum">
<number>10000</number>
</property>
- <property name="value" >
+ <property name="value">
<number>500</number>
</property>
</widget>
</item>
- <item row="0" column="0" >
- <widget class="QLabel" name="label" >
- <property name="text" >
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
<string>Buffer time (ms):</string>
</property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_2" >
- <property name="text" >
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
<string>Period time (ms):</string>
</property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="1" column="2" >
+ <item row="1" column="2">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>188</width>
<height>20</height>
@@ -237,16 +184,16 @@
</property>
</spacer>
</item>
- <item row="2" column="1" >
- <widget class="QCheckBox" name="checkBox" >
- <property name="text" >
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="checkBox">
+ <property name="text">
<string/>
</property>
</widget>
</item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label_3" >
- <property name="text" >
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
<string>PCM over Master</string>
</property>
</widget>
@@ -258,12 +205,12 @@
</widget>
</widget>
</item>
- <item row="1" column="0" >
+ <item row="1" column="0">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>191</width>
<height>20</height>
@@ -271,16 +218,16 @@
</property>
</spacer>
</item>
- <item row="1" column="2" >
- <widget class="QPushButton" name="cancelButton" >
- <property name="text" >
+ <item row="1" column="2">
+ <widget class="QPushButton" name="cancelButton">
+ <property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="okButton" >
- <property name="text" >
+ <item row="1" column="1">
+ <widget class="QPushButton" name="okButton">
+ <property name="text">
<string>OK</string>
</property>
</widget>
@@ -295,11 +242,11 @@
<receiver>SettingsDialog</receiver>
<slot>reject()</slot>
<hints>
- <hint type="sourcelabel" >
+ <hint type="sourcelabel">
<x>338</x>
<y>283</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>164</x>
<y>294</y>
</hint>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="cs">
+<!DOCTYPE TS>
+<TS version="2.0" language="cs">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>Modul OSS</translation>
</message>
@@ -31,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Nastavení pluginu OSS</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Nastavení zařízení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Zvukové zařízení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Ovládání hlasitosti</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Pokročilá nastavení</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Zvuková karta</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Velikost bufferu (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Délka periody (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>PCM přes Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>OK</translation>
</message>
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 @@
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>OSS-Modul</translation>
</message>
@@ -32,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Einstellungen OSS-Modul</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Geräte-Einstellungen</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Audiogerät</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Mixergerät</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Erweiterte Einstellungen</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Soundkarte</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Pufferzeit (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Zeitraster (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>PCM over Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>OK</translation>
</message>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="it">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="it">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>Modulo OSS</translation>
</message>
@@ -32,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Impostazioni del modulo OSS</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Impostazioni del device</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Device audio</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Device Mixer</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Impostazioni avanzate</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Scheda audio</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Tempo di buffering (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Periodo (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>PCM su Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Annulla</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>OK</translation>
</message>
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 @@
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>Wtyczka OSS</translation>
</message>
@@ -32,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Ustawienia wtyczki OSS</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Ustawienia urządzenia</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Urządzenie dźwiękowe</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Urządzenie miksujące</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Zaawansowane ustawienia</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Karta dźwiękowa</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Czas bufora (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Długość cyklu (ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>Użyj PCM nad Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>OK</translation>
</message>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="ru">
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>Модуль OSS</translation>
</message>
@@ -31,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Настройки модуля OSS</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Настройки устройства</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Аудиоустройство</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Устройство микшера</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Дополнительные настройки</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Звуковая карта</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Время буфера (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Время периода (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>PCM вместо Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>Модуль OSS</translation>
</message>
@@ -32,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>Налаштування модуля OSS</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>Налаштування пристрою</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>Пристрій звуку</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>Пристрій мікшеру</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>Додаткові налаштування</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>Звукова карта</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>Час буферу (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>Час периоду (мс):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation>PCM замість Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>Відміна</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>Застосувати</translation>
</message>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_CN">
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>OSS 插件</translation>
</message>
@@ -31,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>OSS 插件设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>设备设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>音频设备</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>混频设备</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>高级设置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>声卡</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>缓冲时间(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>周期时间(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation type="unfinished">PCM over Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>确定</translation>
</message>
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 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="zh_TW">
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
<context>
<name>OutputOSSFactory</name>
<message>
- <location filename="../outputossfactory.cpp" line="30"/>
+ <location filename="../outputossfactory.cpp" line="36"/>
<source>OSS Plugin</source>
<translation>OSS 插件</translation>
</message>
@@ -31,57 +32,57 @@
<context>
<name>SettingsDialog</name>
<message>
- <location filename="../settingsdialog.ui" line="13"/>
+ <location filename="../settingsdialog.ui" line="14"/>
<source>OSS Plugin Settings</source>
<translation>OSS 插件設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="41"/>
+ <location filename="../settingsdialog.ui" line="30"/>
<source>Device Settings</source>
<translation>裝置設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="62"/>
+ <location filename="../settingsdialog.ui" line="42"/>
<source>Audio device</source>
<translation>聲訊裝置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="78"/>
+ <location filename="../settingsdialog.ui" line="58"/>
<source>Mixer device</source>
<translation>混頻裝置</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="113"/>
+ <location filename="../settingsdialog.ui" line="81"/>
<source>Advanced Settings</source>
<translation>進階設定</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="134"/>
+ <location filename="../settingsdialog.ui" line="93"/>
<source>Soundcard</source>
<translation>音效卡</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="210"/>
+ <location filename="../settingsdialog.ui" line="157"/>
<source>Buffer time (ms):</source>
<translation>緩衝時間(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="220"/>
+ <location filename="../settingsdialog.ui" line="167"/>
<source>Period time (ms):</source>
<translation>周期時間(ms):</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="250"/>
+ <location filename="../settingsdialog.ui" line="197"/>
<source>PCM over Master</source>
<translation type="unfinished">PCM over Master</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="277"/>
+ <location filename="../settingsdialog.ui" line="224"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../settingsdialog.ui" line="284"/>
+ <location filename="../settingsdialog.ui" line="231"/>
<source>OK</source>
<translation>確定</translation>
</message>