aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/generalhandler.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-22 21:35:59 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-22 21:35:59 +0000
commitd74a64851416c16622464b81c6c21cc781b0f899 (patch)
tree5a20a0aeea2f54e8c62fe6087a085efb5022a071 /src/qmmpui/generalhandler.cpp
parent24b5ddfcbfe13a6d51365004aa276ffb269fac62 (diff)
downloadqmmp-d74a64851416c16622464b81c6c21cc781b0f899.tar.gz
qmmp-d74a64851416c16622464b81c6c21cc781b0f899.tar.bz2
qmmp-d74a64851416c16622464b81c6c21cc781b0f899.zip
volume control support for general plugins
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@253 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/generalhandler.cpp')
-rw-r--r--src/qmmpui/generalhandler.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/qmmpui/generalhandler.cpp b/src/qmmpui/generalhandler.cpp
index c4dd86934..99df0e320 100644
--- a/src/qmmpui/generalhandler.cpp
+++ b/src/qmmpui/generalhandler.cpp
@@ -30,6 +30,8 @@ GeneralHandler::GeneralHandler(QObject *parent)
: QObject(parent)
{
m_instance = this;
+ m_left = 0;
+ m_right = 0;
m_state = General::Stopped;
GeneralFactory* factory;
foreach(factory, *General::generalFactories())
@@ -38,6 +40,7 @@ GeneralHandler::GeneralHandler(QObject *parent)
{
General *general = factory->create(parent);
connect(general, SIGNAL(commandCalled(uint)), SLOT(processCommand(uint)));
+ connect(general, SIGNAL(volumeChanged(int, int)), SIGNAL(volumeChanged(int, int)));
m_generals.insert(factory, general);
}
}
@@ -76,15 +79,28 @@ void GeneralHandler::setSongInfo(const SongInfo &info)
}
}
+void GeneralHandler::updateVolume(int left, int right)
+{
+ m_left = left;
+ m_right = right;
+ General *general;
+ foreach(general, m_generals.values())
+ {
+ general->updateVolume(left, right);
+ }
+}
+
void GeneralHandler::setEnabled(GeneralFactory* factory, bool enable)
{
- if(enable == m_generals.keys().contains(factory))
+ if (enable == m_generals.keys().contains(factory))
return;
- if(enable)
+ if (enable)
{
General *general = factory->create(parent());
connect(general, SIGNAL(commandCalled(uint)), SLOT(processCommand(uint)));
+ connect(general, SIGNAL(volumeChanged(int, int)), SIGNAL(volumeChanged(int, int)));
m_generals.insert(factory, general);
+ general->updateVolume(m_left, m_right);
if (m_state != General::Stopped)
{
general->setState(m_state);
@@ -102,15 +118,17 @@ void GeneralHandler::setEnabled(GeneralFactory* factory, bool enable)
void GeneralHandler::showSettings(GeneralFactory* factory, QWidget* parentWidget)
{
QDialog *dialog = factory->createConfigDialog(parentWidget);
- if(!dialog)
+ if (!dialog)
return;
- if(dialog->exec() == QDialog::Accepted && m_generals.keys().contains(factory))
+ if (dialog->exec() == QDialog::Accepted && m_generals.keys().contains(factory))
{
delete m_generals.value(factory);
General *general = factory->create(parent());
connect(general, SIGNAL(commandCalled(uint)), SLOT(processCommand(uint)));
+ connect(general, SIGNAL(volumeChanged(int, int)), SIGNAL(volumeChanged(int, int)));
m_generals[factory] = general;
+ general->updateVolume(m_left, m_right);
if (m_state != General::Stopped)
{
general->setState(m_state);