aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp4
-rw-r--r--src/plugins/General/hotkey/hotkeymanager_win.cpp6
-rw-r--r--src/plugins/General/hotkey/hotkeymanager_x11.cpp4
-rw-r--r--src/plugins/Ui/qsui/mainwindow.cpp8
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp8
-rw-r--r--src/qmmp/qmmpsettings.cpp12
-rw-r--r--src/qmmp/qmmpsettings.h6
-rw-r--r--src/qmmp/soundcore.cpp10
-rw-r--r--src/qmmp/soundcore.h3
-rw-r--r--src/qmmpui/configdialog.cpp2
-rw-r--r--src/qmmpui/forms/configdialog.ui40
11 files changed, 73 insertions, 30 deletions
diff --git a/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp
index eac1fb148..b94b342fd 100644
--- a/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp
+++ b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp
@@ -51,9 +51,9 @@ QString IncDecVolumeCommandLineOption::executeCommand(const QString& opt_str, co
Q_UNUSED(args);
if (opt_str == "--volume-inc")
- SoundCore::instance()->changeVolume(5);
+ SoundCore::instance()->volumeUp();
else if (opt_str == "--volume-dec")
- SoundCore::instance()->changeVolume(-5);
+ SoundCore::instance()->volumeDown();
return QString();
}
diff --git a/src/plugins/General/hotkey/hotkeymanager_win.cpp b/src/plugins/General/hotkey/hotkeymanager_win.cpp
index bf2b2165e..bd917d578 100644
--- a/src/plugins/General/hotkey/hotkeymanager_win.cpp
+++ b/src/plugins/General/hotkey/hotkeymanager_win.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2013-2014 by Ilya Kotov *
+ * Copyright (C) 2013-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -168,10 +168,10 @@ public:
UiHelper::instance()->toggleVisibility();
break;
case Hotkey::VOLUME_UP:
- core->changeVolume(+5);
+ core->volumeUp();
break;
case Hotkey::VOLUME_DOWN:
- core->changeVolume(-5);
+ core->volumeDown();
break;
case Hotkey::FORWARD:
core->seek(core->elapsed() + 5000);
diff --git a/src/plugins/General/hotkey/hotkeymanager_x11.cpp b/src/plugins/General/hotkey/hotkeymanager_x11.cpp
index 7a3abacf6..47b9d2a11 100644
--- a/src/plugins/General/hotkey/hotkeymanager_x11.cpp
+++ b/src/plugins/General/hotkey/hotkeymanager_x11.cpp
@@ -179,10 +179,10 @@ bool HotkeyManager::eventFilter(QObject* o, QEvent* e)
UiHelper::instance()->toggleVisibility();
break;
case Hotkey::VOLUME_UP:
- core->changeVolume(+5);
+ core->volumeUp();
break;
case Hotkey::VOLUME_DOWN:
- core->changeVolume(-5);
+ core->volumeDown();
break;
case Hotkey::FORWARD:
core->seek(core->elapsed() + 5000);
diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp
index 48097729e..a8784604a 100644
--- a/src/plugins/Ui/qsui/mainwindow.cpp
+++ b/src/plugins/Ui/qsui/mainwindow.cpp
@@ -630,12 +630,8 @@ void MainWindow::createActions()
m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::STOP_AFTER_SELECTED, m_pl_manager,
SLOT(stopAfterSelected())));
m_ui.menuPlayback->addSeparator();
- signalMapper = new QSignalMapper(this);
- signalMapper->setMapping(ACTION(ActionManager::VOL_ENC), 5);
- signalMapper->setMapping(ACTION(ActionManager::VOL_DEC), -5);
- connect(signalMapper, SIGNAL(mapped(int)), m_core, SLOT(changeVolume(int)));
- m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::VOL_ENC, signalMapper, SLOT(map())));
- m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::VOL_DEC, signalMapper, SLOT(map())));
+ m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::VOL_ENC, m_core, SLOT(volumeUp())));
+ m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::VOL_DEC, m_core, SLOT(volumeDown())));
m_ui.menuPlayback->addAction(SET_ACTION(ActionManager::VOL_MUTE, m_core, SLOT(setMuted(bool))));
connect(m_core, SIGNAL(mutedChanged(bool)), ACTION(ActionManager::VOL_MUTE), SLOT(setChecked(bool)));
diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp
index fca65bea4..f1e621d2d 100644
--- a/src/plugins/Ui/skinned/mainwindow.cpp
+++ b/src/plugins/Ui/skinned/mainwindow.cpp
@@ -432,12 +432,8 @@ void MainWindow::createActions()
ACTION(ActionManager::SHUFFLE), SLOT(setChecked(bool)));
QMenu *audioMenu = m_mainMenu->addMenu(tr("Audio"));
- QSignalMapper *mapper = new QSignalMapper(this);
- mapper->setMapping(ACTION(ActionManager::VOL_ENC), 5);
- mapper->setMapping(ACTION(ActionManager::VOL_DEC), -5);
- connect(mapper, SIGNAL(mapped(int)), m_core, SLOT(changeVolume(int)));
- audioMenu->addAction(SET_ACTION(ActionManager::VOL_ENC, mapper, SLOT(map())));
- audioMenu->addAction(SET_ACTION(ActionManager::VOL_DEC, mapper, SLOT(map())));
+ audioMenu->addAction(SET_ACTION(ActionManager::VOL_ENC, m_core, SLOT(volumeUp())));
+ audioMenu->addAction(SET_ACTION(ActionManager::VOL_DEC, m_core, SLOT(volumeDown())));
audioMenu->addAction(SET_ACTION(ActionManager::VOL_MUTE, m_core, SLOT(setMuted(bool))));
connect(m_core, SIGNAL(mutedChanged(bool)), ACTION(ActionManager::VOL_MUTE), SLOT(setChecked(bool)));
diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp
index 333d388aa..852818781 100644
--- a/src/qmmp/qmmpsettings.cpp
+++ b/src/qmmp/qmmpsettings.cpp
@@ -44,6 +44,7 @@ QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent)
m_aud_software_volume = settings.value("Output/software_volume", false).toBool();
m_aud_format = (Qmmp::AudioFormat) settings.value("Output/format", Qmmp::PCM_S16LE).toInt();
m_aud_dithering = settings.value("Output/dithering", true).toBool();
+ m_volume_step = settings.value("Output/volume_step", 5).toInt();
//cover settings
settings.beginGroup("Cover");
m_cover_inc = settings.value("include", (QStringList() << "*.jpg" << "*.png")).toStringList();
@@ -211,6 +212,16 @@ void QmmpSettings::setBufferSize(int msec)
m_buffer_size = msec;
}
+void QmmpSettings::setVolumeStep(int step)
+{
+ m_volume_step = qBound(1, step, 20);
+}
+
+int QmmpSettings::volumeStep() const
+{
+ return m_volume_step;
+}
+
void QmmpSettings::sync()
{
qDebug("%s", Q_FUNC_INFO);
@@ -226,6 +237,7 @@ void QmmpSettings::sync()
settings.setValue("Output/software_volume", m_aud_software_volume);
settings.setValue("Output/format", m_aud_format);
settings.setValue("Output/dithering", m_aud_dithering);
+ settings.setValue("Output/volume_step", m_volume_step);
//cover settings
settings.beginGroup("Cover");
settings.setValue("include", m_cover_inc);
diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h
index 03714a289..5d4732a59 100644
--- a/src/qmmp/qmmpsettings.h
+++ b/src/qmmp/qmmpsettings.h
@@ -162,8 +162,11 @@ public:
* @param msec Buffer size in milliseconds
*/
void setBufferSize(int msec);
+
+ void setVolumeStep(int step);
+ int volumeStep() const;
/*!
- * Enables/Desables file type determination by content
+ * Enables/Disables file type determination by content
* @param enabled State of the content based type determination
* (\b true - enabled, \b false - disabled)
*/
@@ -215,6 +218,7 @@ private:
bool m_aud_software_volume;
bool m_aud_dithering;
Qmmp::AudioFormat m_aud_format;
+ int m_volume_step;
//cover settings
QStringList m_cover_inc;
QStringList m_cover_exclude;
diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp
index fa29d8a94..2ae5b88c6 100644
--- a/src/qmmp/soundcore.cpp
+++ b/src/qmmp/soundcore.cpp
@@ -181,6 +181,16 @@ void SoundCore::setVolume(int volume)
m_volumeControl->setVolume(volume);
}
+void SoundCore::volumeUp()
+{
+ changeVolume(QmmpSettings::instance()->volumeStep());
+}
+
+void SoundCore::volumeDown()
+{
+ changeVolume(-QmmpSettings::instance()->volumeStep());
+}
+
void SoundCore::setBalance(int balance)
{
setMuted(false);
diff --git a/src/qmmp/soundcore.h b/src/qmmp/soundcore.h
index bb71fcfee..63095b2bc 100644
--- a/src/qmmp/soundcore.h
+++ b/src/qmmp/soundcore.h
@@ -151,6 +151,9 @@ public slots:
* @param volume volume of the left and right channels \b [0..100].
*/
void setVolume(int volume);
+ void volumeUp();
+ void volumeDown();
+
/*!
* Sets the balance between left and right channels.
* @param balance balance between left and right channels \b [-100..100].
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp
index 4e3bb9cb2..f4ac08d75 100644
--- a/src/qmmpui/configdialog.cpp
+++ b/src/qmmpui/configdialog.cpp
@@ -152,6 +152,7 @@ void ConfigDialog::readSettings()
m_ui->preampDoubleSpinBox->setValue(gs->replayGainPreamp());
m_ui->defaultGainDoubleSpinBox->setValue(gs->replayGainDefaultGain());
//audio
+ m_ui->volumeStepSpinBox->setValue(gs->volumeStep());
m_ui->softVolumeCheckBox->setChecked(gs->useSoftVolume());
m_ui->bitDepthComboBox->setCurrentIndex(m_ui->bitDepthComboBox->findData(gs->outputFormat()));
m_ui->ditheringCheckBox->setChecked(gs->useDithering());
@@ -418,6 +419,7 @@ void ConfigDialog::saveSettings()
m_ui->ditheringCheckBox->isChecked());
gs->setBufferSize(m_ui->bufferSizeSpinBox->value());
gs->setDetermineFileTypeByContent(m_ui->byContentCheckBox->isChecked());
+ gs->setVolumeStep(m_ui->volumeStepSpinBox->value());
QList<QVariant> var_sizes;
var_sizes << m_ui->splitter->sizes().first() << m_ui->splitter->sizes().last();
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
diff --git a/src/qmmpui/forms/configdialog.ui b/src/qmmpui/forms/configdialog.ui
index 55321fcff..dc7dde824 100644
--- a/src/qmmpui/forms/configdialog.ui
+++ b/src/qmmpui/forms/configdialog.ui
@@ -758,21 +758,28 @@
<string>Audio</string>
</property>
<layout class="QGridLayout" name="gridLayout3">
- <item row="3" column="0" colspan="3">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Output bit depth:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="3">
<widget class="QCheckBox" name="ditheringCheckBox">
<property name="text">
<string>Use dithering</string>
</property>
</widget>
</item>
- <item row="0" column="0">
+ <item row="1" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>Buffer size:</string>
</property>
</widget>
</item>
- <item row="0" column="1">
+ <item row="1" column="1">
<widget class="QSpinBox" name="bufferSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -800,24 +807,37 @@
</property>
</widget>
</item>
- <item row="2" column="0" colspan="3">
+ <item row="3" column="0" colspan="3">
<widget class="QCheckBox" name="softVolumeCheckBox">
<property name="text">
<string>Use software volume control</string>
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_4">
+ <item row="2" column="1">
+ <widget class="QComboBox" name="bitDepthComboBox"/>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_9">
<property name="text">
- <string>Output bit depth:</string>
+ <string>Volume adjustment step:</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QComboBox" name="bitDepthComboBox"/>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="volumeStepSpinBox">
+ <property name="suffix">
+ <string notr="true">%</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>20</number>
+ </property>
+ </widget>
</item>
- <item row="0" column="2" rowspan="2">
+ <item row="0" column="2" rowspan="3">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>