diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/General/hotkey/hotkeymanager_win.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/General/hotkey/hotkeymanager_x11.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.cpp | 12 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.h | 6 | ||||
| -rw-r--r-- | src/qmmp/soundcore.cpp | 10 | ||||
| -rw-r--r-- | src/qmmp/soundcore.h | 3 | ||||
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/forms/configdialog.ui | 40 |
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> |
