aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-03-07 20:04:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-03-07 20:04:51 +0000
commit74afcc2d9356fef5dbd25f4e7aaabb021c0bfc29 (patch)
treef76222901b123facc552c614bf9d1753e2da0afc /src/plugins/Output
parent7559299d77b3c375e9b718f986bc079215bf1d27 (diff)
downloadqmmp-74afcc2d9356fef5dbd25f4e7aaabb021c0bfc29.tar.gz
qmmp-74afcc2d9356fef5dbd25f4e7aaabb021c0bfc29.tar.bz2
qmmp-74afcc2d9356fef5dbd25f4e7aaabb021c0bfc29.zip
some volume api changes
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2673 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output')
-rw-r--r--src/plugins/Output/Output.pro2
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp44
-rw-r--r--src/plugins/Output/alsa/outputalsa.h15
-rw-r--r--src/plugins/Output/alsa/outputalsafactory.cpp4
-rw-r--r--src/plugins/Output/alsa/outputalsafactory.h6
-rw-r--r--src/plugins/Output/jack/jack.pro2
-rw-r--r--src/plugins/Output/jack/outputjackfactory.cpp2
-rw-r--r--src/plugins/Output/jack/outputjackfactory.h9
-rw-r--r--src/plugins/Output/null/outputnull.h2
-rw-r--r--src/plugins/Output/null/outputnullfactory.cpp4
-rw-r--r--src/plugins/Output/null/outputnullfactory.h9
-rw-r--r--src/plugins/Output/oss/outputoss.cpp33
-rw-r--r--src/plugins/Output/oss/outputoss.h16
-rw-r--r--src/plugins/Output/oss/outputossfactory.cpp4
-rw-r--r--src/plugins/Output/oss/outputossfactory.h9
-rw-r--r--src/plugins/Output/oss4/outputoss4.cpp26
-rw-r--r--src/plugins/Output/oss4/outputoss4.h18
-rw-r--r--src/plugins/Output/oss4/outputoss4factory.cpp4
-rw-r--r--src/plugins/Output/oss4/outputoss4factory.h9
-rw-r--r--src/plugins/Output/pulseaudio/outputpulseaudiofactory.cpp4
-rw-r--r--src/plugins/Output/pulseaudio/outputpulseaudiofactory.h6
-rw-r--r--src/plugins/Output/waveout/outputwaveoutfactory.cpp3
-rw-r--r--src/plugins/Output/waveout/outputwaveoutfactory.h2
23 files changed, 110 insertions, 123 deletions
diff --git a/src/plugins/Output/Output.pro b/src/plugins/Output/Output.pro
index 8ded62f9f..858665e64 100644
--- a/src/plugins/Output/Output.pro
+++ b/src/plugins/Output/Output.pro
@@ -25,7 +25,7 @@ contains(CONFIG, ALSA_PLUGIN){
}
contains(CONFIG, OSS4_PLUGIN){
- SUBDIRS += oss4
+ SUBDIRS += oss4
}
}
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index 097e7790e..8aad0fb58 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -359,7 +359,7 @@ void OutputALSA::uninitialize()
}
/* ****** MIXER ******* */
-VolumeControlALSA::VolumeControlALSA(QObject *parent) : VolumeControl(parent)
+VolumeALSA::VolumeALSA()
{
//alsa mixer
mixer = 0;
@@ -370,42 +370,40 @@ VolumeControlALSA::VolumeControlALSA(QObject *parent) : VolumeControl(parent)
}
-VolumeControlALSA::~VolumeControlALSA()
+VolumeALSA::~VolumeALSA()
{
if (mixer)
snd_mixer_close(mixer);
}
-void VolumeControlALSA::setVolume(int l, int r)
+void VolumeALSA::setVolume(int channel, int value)
{
-
if (!pcm_element)
return;
- snd_mixer_selem_set_playback_volume(pcm_element,
- SND_MIXER_SCHN_FRONT_LEFT, l);
- snd_mixer_selem_set_playback_volume(pcm_element,
- SND_MIXER_SCHN_FRONT_RIGHT, r);
+ _snd_mixer_selem_channel_id channel_id = SND_MIXER_SCHN_FRONT_LEFT;
+ if(channel == Volume::RIGHT_CHANNEL)
+ channel_id = SND_MIXER_SCHN_FRONT_RIGHT;
+
+ snd_mixer_selem_set_playback_volume(pcm_element, channel_id, value);
}
-void VolumeControlALSA::volume(int *l, int *r)
+int VolumeALSA::volume(int channel)
{
if (!pcm_element)
- return;
+ return 0;
- long ll = *l, lr = *r;
+ _snd_mixer_selem_channel_id channel_id = SND_MIXER_SCHN_FRONT_LEFT;
+ if(channel == Volume::RIGHT_CHANNEL)
+ channel_id = SND_MIXER_SCHN_FRONT_RIGHT;
+
+ long value = 0;
snd_mixer_handle_events(mixer);
- snd_mixer_selem_get_playback_volume(pcm_element,
- SND_MIXER_SCHN_FRONT_LEFT, &ll);
- snd_mixer_selem_get_playback_volume(pcm_element,
- SND_MIXER_SCHN_FRONT_RIGHT, &lr);
- *l = ll;
- *r = lr;
+ snd_mixer_selem_get_playback_volume(pcm_element, channel_id, &value);
+ return value;
}
-
-
-int VolumeControlALSA::setupMixer(QString card, QString device)
+int VolumeALSA::setupMixer(QString card, QString device)
{
char *name;
int err, index;
@@ -439,7 +437,7 @@ int VolumeControlALSA::setupMixer(QString card, QString device)
return 0;
}
-void VolumeControlALSA::parseMixerName(char *str, char **name, int *index)
+void VolumeALSA::parseMixerName(char *str, char **name, int *index)
{
char *end;
@@ -459,7 +457,7 @@ void VolumeControlALSA::parseMixerName(char *str, char **name, int *index)
}
}
-snd_mixer_elem_t* VolumeControlALSA::getMixerElem(snd_mixer_t *mixer, char *name, int index)
+snd_mixer_elem_t* VolumeALSA::getMixerElem(snd_mixer_t *mixer, char *name, int index)
{
snd_mixer_selem_id_t* selem_id;
snd_mixer_elem_t* elem;
@@ -475,7 +473,7 @@ snd_mixer_elem_t* VolumeControlALSA::getMixerElem(snd_mixer_t *mixer, char *name
return elem;
}
-int VolumeControlALSA::getMixer(snd_mixer_t **mixer, QString card)
+int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card)
{
char *dev;
int err;
diff --git a/src/plugins/Output/alsa/outputalsa.h b/src/plugins/Output/alsa/outputalsa.h
index dc1a75dce..50974c629 100644
--- a/src/plugins/Output/alsa/outputalsa.h
+++ b/src/plugins/Output/alsa/outputalsa.h
@@ -31,7 +31,7 @@ extern "C"
}
#include <qmmp/output.h>
-#include <qmmp/volumecontrol.h>
+#include <qmmp/volume.h>
class OutputALSA : public Output
@@ -70,17 +70,14 @@ private:
bool m_can_pause;
};
-class VolumeControlALSA : public VolumeControl
+class VolumeALSA : public Volume
{
- Q_OBJECT
public:
- VolumeControlALSA(QObject *parent = 0);
- ~VolumeControlALSA();
-
- void setVolume(int left, int right) ;
+ VolumeALSA();
+ ~VolumeALSA();
-protected:
- void volume(int *left, int *right);
+ void setVolume(int channel, int value);
+ int volume(int channel);
private:
//alsa mixer
diff --git a/src/plugins/Output/alsa/outputalsafactory.cpp b/src/plugins/Output/alsa/outputalsafactory.cpp
index dcd003cb0..4553110c7 100644
--- a/src/plugins/Output/alsa/outputalsafactory.cpp
+++ b/src/plugins/Output/alsa/outputalsafactory.cpp
@@ -40,9 +40,9 @@ Output* OutputALSAFactory::create(QObject* parent)
return new OutputALSA(parent);
}
-VolumeControl *OutputALSAFactory::createVolumeControl(QObject *parent)
+Volume *OutputALSAFactory::createVolume()
{
- return new VolumeControlALSA(parent);
+ return new VolumeALSA();
}
void OutputALSAFactory::showSettings(QWidget* parent)
diff --git a/src/plugins/Output/alsa/outputalsafactory.h b/src/plugins/Output/alsa/outputalsafactory.h
index 98f35ed4f..9649f8fb8 100644
--- a/src/plugins/Output/alsa/outputalsafactory.h
+++ b/src/plugins/Output/alsa/outputalsafactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2008 by Ilya Kotov *
+ * Copyright (C) 2007-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -34,12 +34,12 @@ class OutputALSAFactory : public QObject,
OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/jack/jack.pro b/src/plugins/Output/jack/jack.pro
index 9f9cf889a..75c05fd01 100644
--- a/src/plugins/Output/jack/jack.pro
+++ b/src/plugins/Output/jack/jack.pro
@@ -12,7 +12,7 @@ TARGET=$$PLUGINS_PREFIX/Output/jack
QMAKE_CLEAN =$$PLUGINS_PREFIX/Output/libjack.so
-DEFINES += JACK_NEW_API
+#DEFINES += JACK_NEW_API
INCLUDEPATH += ../../../
diff --git a/src/plugins/Output/jack/outputjackfactory.cpp b/src/plugins/Output/jack/outputjackfactory.cpp
index 0dd9314e7..c1e6ab09b 100644
--- a/src/plugins/Output/jack/outputjackfactory.cpp
+++ b/src/plugins/Output/jack/outputjackfactory.cpp
@@ -39,7 +39,7 @@ Output* OutputJACKFactory::create(QObject* parent)
return new OutputJACK(parent);
}
-VolumeControl *OutputJACKFactory::createVolumeControl(QObject *)
+Volume *OutputJACKFactory::createVolume()
{
return 0;
}
diff --git a/src/plugins/Output/jack/outputjackfactory.h b/src/plugins/Output/jack/outputjackfactory.h
index 0847b8a0b..208202b09 100644
--- a/src/plugins/Output/jack/outputjackfactory.h
+++ b/src/plugins/Output/jack/outputjackfactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2008 by Ilya Kotov *
+ * Copyright (C) 2006-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -30,16 +30,15 @@
#include <qmmp/outputfactory.h>
-class OutputJACKFactory : public QObject,
- OutputFactory
+class OutputJACKFactory : public QObject, OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/null/outputnull.h b/src/plugins/Output/null/outputnull.h
index 7dc6260fe..6497df1ea 100644
--- a/src/plugins/Output/null/outputnull.h
+++ b/src/plugins/Output/null/outputnull.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Output/null/outputnullfactory.cpp b/src/plugins/Output/null/outputnullfactory.cpp
index 2ef0fb560..36a03aa78 100644
--- a/src/plugins/Output/null/outputnullfactory.cpp
+++ b/src/plugins/Output/null/outputnullfactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -39,7 +39,7 @@ Output* OutputNullFactory::create(QObject* parent)
return new OutputNull(parent);
}
-VolumeControl *OutputNullFactory::createVolumeControl(QObject *)
+Volume *OutputNullFactory::createVolume()
{
return 0;
}
diff --git a/src/plugins/Output/null/outputnullfactory.h b/src/plugins/Output/null/outputnullfactory.h
index 566d299dd..3917c77ad 100644
--- a/src/plugins/Output/null/outputnullfactory.h
+++ b/src/plugins/Output/null/outputnullfactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -30,16 +30,15 @@
#include <qmmp/outputfactory.h>
-class OutputNullFactory : public QObject,
- OutputFactory
+class OutputNullFactory : public QObject, OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/oss/outputoss.cpp b/src/plugins/Output/oss/outputoss.cpp
index a612b0d23..db2165353 100644
--- a/src/plugins/Output/oss/outputoss.cpp
+++ b/src/plugins/Output/oss/outputoss.cpp
@@ -180,7 +180,7 @@ void OutputOSS::reset()
}
/***** MIXER *****/
-VolumeControlOSS::VolumeControlOSS(QObject *parent) : VolumeControl(parent)
+VolumeOSS::VolumeOSS()
{
m_master = true;
m_mixer_fd = -1;
@@ -190,7 +190,7 @@ VolumeControlOSS::VolumeControlOSS(QObject *parent) : VolumeControl(parent)
}
-VolumeControlOSS::~VolumeControlOSS()
+VolumeOSS::~VolumeOSS()
{
if (m_mixer_fd >= 0)
{
@@ -199,11 +199,14 @@ VolumeControlOSS::~VolumeControlOSS()
}
}
-void VolumeControlOSS::setVolume(int l, int r)
+void VolumeOSS::setVolume(int channel, int value)
{
if (m_mixer_fd < 0)
return;
- int v;
+
+ int l = (channel == Volume::LEFT_CHANNEL) ? value : volume(Volume::LEFT_CHANNEL);
+ int r = (channel == Volume::RIGHT_CHANNEL) ? value : volume(Volume::RIGHT_CHANNEL);
+
long cmd;
int devs = 0;
ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs);
@@ -216,16 +219,14 @@ void VolumeControlOSS::setVolume(int l, int r)
//close(mifd);
return;
}
- v = (r << 8) | l;
+ int v = (r << 8) | l;
ioctl(m_mixer_fd, cmd, &v);
}
-void VolumeControlOSS::volume(int *ll,int *rr)
+int VolumeOSS::volume(int channel)
{
- *ll = 0;
- *rr = 0;
if(m_mixer_fd < 0)
- return;
+ return 0;
int cmd;
int v, devs = 0;
ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs);
@@ -235,19 +236,15 @@ void VolumeControlOSS::volume(int *ll,int *rr)
else if ((devs & SOUND_MASK_VOLUME) && m_master)
cmd = SOUND_MIXER_READ_VOLUME;
else
- return;
+ return 0;
ioctl(m_mixer_fd, cmd, &v);
- *ll = (v & 0xFF00) >> 8;
- *rr = (v & 0x00FF);
-
- *ll = (*ll > 100) ? 100 : *ll;
- *rr = (*rr > 100) ? 100 : *rr;
- *ll = (*ll < 0) ? 0 : *ll;
- *rr = (*rr < 0) ? 0 : *rr;
+ if(channel == Volume::LEFT_CHANNEL)
+ return (v & 0xFF00) >> 8;
+ return (v & 0x00FF);
}
-void VolumeControlOSS::openMixer()
+void VolumeOSS::openMixer()
{
if (m_mixer_fd >= 0)
return;
diff --git a/src/plugins/Output/oss/outputoss.h b/src/plugins/Output/oss/outputoss.h
index 8864339c4..a04e6f474 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 <qmmp/volumecontrol.h>
+#include <qmmp/volume.h>
class OutputOSS : public Output
{
@@ -43,8 +43,7 @@ private:
qint64 writeAudio(unsigned char *data, qint64 maxSize);
void drain();
void reset();
-
-private:
+ //oss
void post();
void sync();
QString m_audio_device;
@@ -54,15 +53,14 @@ private:
long bl, br;
};
-class VolumeControlOSS : public VolumeControl
+class VolumeOSS : public Volume
{
- Q_OBJECT
public:
- VolumeControlOSS(QObject *parent = 0);
- ~VolumeControlOSS();
+ VolumeOSS();
+ ~VolumeOSS();
- void setVolume(int left, int right);
- void volume(int *left, int *right);
+ void setVolume(int channel, int value);
+ int volume(int channel);
private:
//oss mixer
diff --git a/src/plugins/Output/oss/outputossfactory.cpp b/src/plugins/Output/oss/outputossfactory.cpp
index 982419c62..2005d843f 100644
--- a/src/plugins/Output/oss/outputossfactory.cpp
+++ b/src/plugins/Output/oss/outputossfactory.cpp
@@ -40,9 +40,9 @@ const OutputProperties OutputOSSFactory::properties() const
return properties;
}
-VolumeControl *OutputOSSFactory::createVolumeControl(QObject *parent)
+Volume *OutputOSSFactory::createVolume()
{
- return new VolumeControlOSS(parent);
+ return new VolumeOSS;
}
void OutputOSSFactory::showSettings(QWidget* parent)
diff --git a/src/plugins/Output/oss/outputossfactory.h b/src/plugins/Output/oss/outputossfactory.h
index 22e9f35a5..83fa2f936 100644
--- a/src/plugins/Output/oss/outputossfactory.h
+++ b/src/plugins/Output/oss/outputossfactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006 by Ilya Kotov *
+ * Copyright (C) 2006-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -30,16 +30,15 @@
#include <qmmp/outputfactory.h>
-class OutputOSSFactory : public QObject,
- OutputFactory
+class OutputOSSFactory : public QObject, OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/oss4/outputoss4.cpp b/src/plugins/Output/oss4/outputoss4.cpp
index 71cda5dda..6d3bad527 100644
--- a/src/plugins/Output/oss4/outputoss4.cpp
+++ b/src/plugins/Output/oss4/outputoss4.cpp
@@ -45,7 +45,7 @@ extern "C"
#include "outputoss4.h"
OutputOSS4 *OutputOSS4::m_instance = 0;
-VolumeControlOSS4 *OutputOSS4::m_vc = 0;
+VolumeOSS4 *OutputOSS4::m_vc = 0;
OutputOSS4::OutputOSS4(QObject *parent) : Output(parent)
{
@@ -194,7 +194,7 @@ void OutputOSS4::reset()
}
/***** MIXER *****/
-VolumeControlOSS4::VolumeControlOSS4(QObject *parent) : VolumeControl(parent)
+VolumeOSS4::VolumeOSS4()
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
m_volume = settings.value("OSS4/volume", 0x3232).toInt();
@@ -202,15 +202,17 @@ VolumeControlOSS4::VolumeControlOSS4(QObject *parent) : VolumeControl(parent)
restore();
}
-VolumeControlOSS4::~VolumeControlOSS4()
+VolumeOSS4::~VolumeOSS4()
{
OutputOSS4::m_vc = 0;
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.setValue("OSS4/volume", m_volume);
}
-void VolumeControlOSS4::setVolume(int l, int r)
+void VolumeOSS4::setVolume(int channel, int value)
{
+ int l = (channel == Volume::LEFT_CHANNEL) ? value : volume(Volume::LEFT_CHANNEL);
+ int r = (channel == Volume::RIGHT_CHANNEL) ? value : volume(Volume::RIGHT_CHANNEL);
m_volume = (r << 8) | l;
if(OutputOSS4::instance() && OutputOSS4::instance()->fd() >= 0)
{
@@ -218,27 +220,27 @@ void VolumeControlOSS4::setVolume(int l, int r)
}
}
-void VolumeControlOSS4::volume(int *ll,int *rr)
+int VolumeOSS4::volume(int channel)
{
- *ll = 0;
- *rr = 0;
if(OutputOSS4::instance() && OutputOSS4::instance()->fd() >= 0)
{
int v = 0;
if (ioctl(OutputOSS4::instance()->fd(), SNDCTL_DSP_GETPLAYVOL, &v) < 0)
v = 0;
- *rr = (v & 0xFF00) >> 8;
- *ll = (v & 0x00FF);
m_volume = v;
+ if(channel == Volume::LEFT_CHANNEL)
+ return (v & 0x00FF);
+ return (v & 0xFF00) >> 8;
}
else
{
- *rr = (m_volume & 0xFF00) >> 8;
- *ll = (m_volume & 0x00FF);
+ if(channel == Volume::LEFT_CHANNEL)
+ return (m_volume & 0x00FF);
+ return (m_volume & 0xFF00) >> 8;
}
}
-void VolumeControlOSS4::restore()
+void VolumeOSS4::restore()
{
setVolume((m_volume & 0x00FF), (m_volume & 0xFF00) >> 8);
}
diff --git a/src/plugins/Output/oss4/outputoss4.h b/src/plugins/Output/oss4/outputoss4.h
index 90c9eb85a..06d4b13e3 100644
--- a/src/plugins/Output/oss4/outputoss4.h
+++ b/src/plugins/Output/oss4/outputoss4.h
@@ -22,12 +22,12 @@
#define OUTPUTOSS4_H
#include <qmmp/output.h>
-#include <qmmp/volumecontrol.h>
+#include <qmmp/volume.h>
#define DEFAULT_DEV "/dev/dsp"
#define DEFAULT_MIXER "/dev/mixer"
-class VolumeControlOSS4;
+class VolumeOSS4;
/**
@author Ilya Kotov <forkotov@hotmail.ru>
@@ -36,7 +36,7 @@ class OutputOSS4 : public Output
{
Q_OBJECT
public:
- OutputOSS4(QObject * parent);
+ OutputOSS4();
virtual ~OutputOSS4();
bool initialize(quint32, int, Qmmp::AudioFormat format);
@@ -44,7 +44,7 @@ public:
qint64 latency();
static OutputOSS4 *instance();
- static VolumeControlOSS4 *m_vc;
+ static VolumeOSS4 *m_vc;
private:
//output api
@@ -62,15 +62,15 @@ private:
};
-class VolumeControlOSS4 : public VolumeControl
+class VolumeOSS4 : public Volume
{
Q_OBJECT
public:
- VolumeControlOSS4(QObject *parent);
- ~VolumeControlOSS4();
+ VolumeOSS4(QObject *parent);
+ ~VolumeOSS4();
- void setVolume(int left, int right);
- void volume(int *left, int *right);
+ void setVolume(int channel, int value);
+ int volume(int channel);
void restore();
private:
diff --git a/src/plugins/Output/oss4/outputoss4factory.cpp b/src/plugins/Output/oss4/outputoss4factory.cpp
index 95b5340a2..aeac150dd 100644
--- a/src/plugins/Output/oss4/outputoss4factory.cpp
+++ b/src/plugins/Output/oss4/outputoss4factory.cpp
@@ -40,9 +40,9 @@ const OutputProperties OutputOSS4Factory::properties() const
return properties;
}
-VolumeControl *OutputOSS4Factory::createVolumeControl(QObject *parent)
+Volume *OutputOSS4Factory::createVolumeControl()
{
- return new VolumeControlOSS4(parent);
+ return new VolumeOSS4;
}
void OutputOSS4Factory::showSettings(QWidget* parent)
diff --git a/src/plugins/Output/oss4/outputoss4factory.h b/src/plugins/Output/oss4/outputoss4factory.h
index 04855d54c..ead729e4a 100644
--- a/src/plugins/Output/oss4/outputoss4factory.h
+++ b/src/plugins/Output/oss4/outputoss4factory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006 by Ilya Kotov *
+ * Copyright (C) 2006-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -29,16 +29,15 @@
#include <qmmp/outputfactory.h>
-class OutputOSS4Factory : public QObject,
- OutputFactory
+class OutputOSS4Factory : public QObject, OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/pulseaudio/outputpulseaudiofactory.cpp b/src/plugins/Output/pulseaudio/outputpulseaudiofactory.cpp
index e2b0d00bf..0d8c3a41e 100644
--- a/src/plugins/Output/pulseaudio/outputpulseaudiofactory.cpp
+++ b/src/plugins/Output/pulseaudio/outputpulseaudiofactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2008 by Ilya Kotov *
+ * Copyright (C) 2007-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -39,7 +39,7 @@ Output* OutputPulseAudioFactory::create(QObject* parent)
return new OutputPulseAudio(parent);
}
-VolumeControl *OutputPulseAudioFactory::createVolumeControl(QObject *)
+Volume *OutputPulseAudioFactory::createVolume()
{
return 0;
}
diff --git a/src/plugins/Output/pulseaudio/outputpulseaudiofactory.h b/src/plugins/Output/pulseaudio/outputpulseaudiofactory.h
index 864455415..d693f1aff 100644
--- a/src/plugins/Output/pulseaudio/outputpulseaudiofactory.h
+++ b/src/plugins/Output/pulseaudio/outputpulseaudiofactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2008 by Ilya Kotov *
+ * Copyright (C) 2007-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -34,12 +34,12 @@ class OutputPulseAudioFactory : public QObject,
OutputFactory
{
Q_OBJECT
-Q_INTERFACES(OutputFactory);
+Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Output/waveout/outputwaveoutfactory.cpp b/src/plugins/Output/waveout/outputwaveoutfactory.cpp
index 38c7a0a67..35b18b26f 100644
--- a/src/plugins/Output/waveout/outputwaveoutfactory.cpp
+++ b/src/plugins/Output/waveout/outputwaveoutfactory.cpp
@@ -19,7 +19,6 @@
***************************************************************************/
#include <QtGui>
-
#include "outputwaveout.h"
#include "outputwaveoutfactory.h"
@@ -39,7 +38,7 @@ Output* OutputWaveOutFactory::create(QObject* parent)
return new OutputWaveOut(parent);
}
-VolumeControl *OutputWaveOutFactory::createVolumeControl(QObject *)
+Volume *OutputWaveOutFactory::createVolume()
{
return 0;
}
diff --git a/src/plugins/Output/waveout/outputwaveoutfactory.h b/src/plugins/Output/waveout/outputwaveoutfactory.h
index ac43dfcbf..2ffd1da59 100644
--- a/src/plugins/Output/waveout/outputwaveoutfactory.h
+++ b/src/plugins/Output/waveout/outputwaveoutfactory.h
@@ -36,7 +36,7 @@ Q_INTERFACES(OutputFactory)
public:
const OutputProperties properties() const;
Output* create(QObject* parent);
- VolumeControl *createVolumeControl(QObject *parent);
+ Volume *createVolume();
void showSettings(QWidget* parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);