summaryrefslogtreecommitdiff
path: root/src/audioequalizer.cpp
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2014-04-21 11:53:35 +0200
committerMateusz Łukasik <mati75@linuxmint.pl>2014-04-21 11:53:35 +0200
commit2a117cc570574099839da41a5ae9fbb2a5ca9e55 (patch)
tree6107da409f9c7f07c0ffa0869a26a161b097aea7 /src/audioequalizer.cpp
parentaa68b7bd585a157e8952881e87e2c09de6ec742f (diff)
Imported Upstream version 14.3.0
Diffstat (limited to 'src/audioequalizer.cpp')
-rw-r--r--src/audioequalizer.cpp191
1 files changed, 180 insertions, 11 deletions
diff --git a/src/audioequalizer.cpp b/src/audioequalizer.cpp
index 00a142a..72186c3 100644
--- a/src/audioequalizer.cpp
+++ b/src/audioequalizer.cpp
@@ -1,5 +1,5 @@
/* smplayer, GUI front-end for mplayer.
- Copyright (C) 2006-2013 Ricardo Villalba <rvm@users.sourceforge.net>
+ Copyright (C) 2006-2014 Ricardo Villalba <rvm@users.sourceforge.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@
#include "global.h"
#include <QLayout>
#include <QPushButton>
+#include <QLabel>
+#include <QComboBox>
#include <QMessageBox>
using namespace Global;
@@ -30,6 +32,8 @@ using namespace Global;
AudioEqualizer::AudioEqualizer( QWidget* parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
+ createPresets();
+
QBoxLayout *bl = new QHBoxLayout; //(0, 4, 2);
for (int n = 0; n < 10; n++) {
@@ -39,6 +43,12 @@ AudioEqualizer::AudioEqualizer( QWidget* parent, Qt::WindowFlags f)
bl->addWidget(eq[n]);
}
+ presets_combo = new QComboBox(this);
+ connect(presets_combo, SIGNAL(activated(int)), this, SLOT(presetChanged(int)));
+
+ presets_label = new QLabel("&Preset", this);
+ presets_label->setBuddy(presets_combo);
+
reset_button = new QPushButton( "&Reset", this);
connect( reset_button, SIGNAL(clicked()), this, SLOT(reset()) );
@@ -49,6 +59,8 @@ AudioEqualizer::AudioEqualizer( QWidget* parent, Qt::WindowFlags f)
connect( apply_button, SIGNAL(clicked()), this, SLOT(applyButtonClicked()) );
QBoxLayout *button_layout = new QHBoxLayout; //(0, 4, 2);
+ button_layout->addWidget(presets_label);
+ button_layout->addWidget(presets_combo);
button_layout->addStretch();
button_layout->addWidget(apply_button);
button_layout->addWidget(reset_button);
@@ -67,25 +79,146 @@ AudioEqualizer::AudioEqualizer( QWidget* parent, Qt::WindowFlags f)
AudioEqualizer::~AudioEqualizer() {
}
+void AudioEqualizer::createPresets() {
+ preset_list.clear();
+ AudioEqualizerList preset;
+
+ // Classical
+ preset.clear();
+ preset << 0 << 0 << 0 << 0 << 0 << 0 << -41 << -41 << -41 << -53;
+ preset_list[Classical] = preset;
+
+ // Club
+ preset.clear();
+ preset << 0 << 0 << 47 << 29 << 29 << 29 << 17 << 0 << 0 << 0;
+ preset_list[Club] = preset;
+
+ // Dance
+ preset.clear();
+ preset << 53 << 41 << 11 << 0 << 0 << -29 << -41 << -41 << 0 << 0;
+ preset_list[Dance] = preset;
+
+ // Flat
+ preset.clear();
+ preset << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0;
+ preset_list[Flat] = preset;
+
+ // Fullbass
+ preset.clear();
+ preset << 53 << 53 << 53 << 29 << 5 << -23 << -47 << -59 << -65 << -65;
+ preset_list[Fullbass] = preset;
+
+ // FullbassTreble
+ preset.clear();
+ preset << 41 << 29 << 0 << -41 << -23 << 5 << 47 << 65 << 71 << 71;
+ preset_list[FullbassTreble] = preset;
+
+ // Fulltreble
+ preset.clear();
+ preset << -53 << -53 << -53 << -23 << 11 << 65 << 95 << 95 << 95 << 95;
+ preset_list[Fulltreble] = preset;
+
+ // Headphones
+ preset.clear();
+ preset << 23 << 65 << 29 << -17 << -11 << 5 << 23 << 53 << 71 << 83;
+ preset_list[Headphones] = preset;
+
+ // LargeHall
+ preset.clear();
+ preset << 59 << 59 << 29 << 29 << 0 << -23 << -23 << -23 << 0 << 0;
+ preset_list[LargeHall] = preset;
+
+ // Live
+ preset.clear();
+ preset << -23 << 0 << 23 << 29 << 29 << 29 << 23 << 11 << 11 << 11;
+ preset_list[Live] = preset;
+
+ // Party
+ preset.clear();
+ preset << 41 << 41 << 0 << 0 << 0 << 0 << 0 << 0 << 41 << 41;
+ preset_list[Party] = preset;
+
+ // Pop
+ preset.clear();
+ preset << -5 << 23 << 41 << 47 << 29 << 0 << -11 << -11 << -5 << -5;
+ preset_list[Pop] = preset;
+
+ // Reggae
+ preset.clear();
+ preset << 0 << 0 << 0 << -29 << 0 << 35 << 35 << 0 << 0 << 0;
+ preset_list[Reggae] = preset;
+
+ // Rock
+ preset.clear();
+ preset << 47 << 23 << 29 << -47 << -17 << 23 << 47 << 65 << 65 << 65;
+ preset_list[Rock] = preset;
+
+ // Ska
+ preset.clear();
+ preset << -11 << -23 << -23 << 0 << 23 << 29 << 47 << 53 << 65 << 53;
+ preset_list[Ska] = preset;
+
+ // Soft
+ preset.clear();
+ preset << 23 << 5 << 0 << -11 << 0 << 23 << 47 << 53 << 65 << 71;
+ preset_list[Soft] = preset;
+
+ // SoftRock
+ preset.clear();
+ preset << 23 << 23 << 11 << 0 << -23 << -29 << -17 << 0 << 11 << 47;
+ preset_list[SoftRock] = preset;
+
+ // Techno
+ preset.clear();
+ preset << 47 << 29 << 0 << -29 << -23 << 0 << 47 << 53 << 53 << 47;
+ preset_list[Techno] = preset;
+}
+
+
void AudioEqualizer::retranslateStrings() {
setWindowTitle( tr("Audio Equalizer") );
setWindowIcon( Images::icon("logo") );
- eq[0]->setLabel( tr("31.25 Hz") );
- eq[1]->setLabel( tr("62.50 Hz") );
- eq[2]->setLabel( tr("125.0 Hz") );
- eq[3]->setLabel( tr("250.0 Hz") );
- eq[4]->setLabel( tr("500.0 Hz") );
- eq[5]->setLabel( tr("1.000 kHz") );
- eq[6]->setLabel( tr("2.000 kHz") );
- eq[7]->setLabel( tr("4.000 kHz") );
- eq[8]->setLabel( tr("8.000 kHz") );
- eq[9]->setLabel( tr("16.00 kHz") );
+ eq[0]->setLabel( tr("%1 Hz").arg("31.25") );
+ eq[1]->setLabel( tr("%1 Hz").arg("62.50") );
+ eq[2]->setLabel( tr("%1 Hz").arg("125") );
+ eq[3]->setLabel( tr("%1 Hz").arg("250") );
+ eq[4]->setLabel( tr("%1 Hz").arg("500") );
+ eq[5]->setLabel( tr("%1 kHz").arg("1") );
+ eq[6]->setLabel( tr("%1 kHz").arg("2") );
+ eq[7]->setLabel( tr("%1 kHz").arg("4") );
+ eq[8]->setLabel( tr("%1 kHz").arg("8") );
+ eq[9]->setLabel( tr("%1 kHz").arg("16") );
+ presets_label->setText( tr("&Preset") );
apply_button->setText( tr("&Apply") );
reset_button->setText( tr("&Reset") );
set_default_button->setText( tr("&Set as default values") );
+ int presets_combo_index = presets_combo->currentIndex();
+ if (presets_combo_index < 0) presets_combo_index = 0;
+ presets_combo->clear();
+ presets_combo->addItem( tr("Flat"), Flat);
+ presets_combo->addItem( tr("Classical"), Classical);
+ presets_combo->addItem( tr("Club"), Club);
+ presets_combo->addItem( tr("Dance"), Dance);
+ presets_combo->addItem( tr("Full bass"), Fullbass);
+ presets_combo->addItem( tr("Full bass and treble"), FullbassTreble);
+ presets_combo->addItem( tr("Full treble"), Fulltreble);
+ presets_combo->addItem( tr("Headphones"), Headphones);
+ presets_combo->addItem( tr("Large hall"), LargeHall);
+ presets_combo->addItem( tr("Live"), Live);
+ presets_combo->addItem( tr("Party"), Party);
+ presets_combo->addItem( tr("Pop"), Pop);
+ presets_combo->addItem( tr("Reggae"), Reggae);
+ presets_combo->addItem( tr("Rock"), Rock);
+ presets_combo->addItem( tr("Ska"), Ska);
+ presets_combo->addItem( tr("Soft"), Soft);
+ presets_combo->addItem( tr("Soft rock"), SoftRock);
+ presets_combo->addItem( tr("Techno"), Techno);
+ presets_combo->addItem( tr("Custom"), User_defined);
+ presets_combo->setCurrentIndex(presets_combo_index);
+
// What's this help:
set_default_button->setWhatsThis(
tr("Use the current values as default values for new videos.") );
@@ -98,6 +231,7 @@ void AudioEqualizer::reset() {
for (int n = 0; n < 10; n++) {
eq[n]->setValue(0);
}
+ presets_combo->setCurrentIndex(presets_combo->findData(Flat));
}
void AudioEqualizer::setDefaults() {
@@ -112,6 +246,41 @@ void AudioEqualizer::setDefaults() {
"used as default.") );
}
+void AudioEqualizer::setEqualizer(AudioEqualizerList l) {
+ int p = findPreset(l);
+ int index = presets_combo->findData(p);
+ if (index != 1) {
+ presets_combo->setCurrentIndex(index);
+ } else {
+ qWarning("AudioEqualizer::setEqualizer: preset not found");
+ }
+ setValues(l);
+}
+
+void AudioEqualizer::setValues(AudioEqualizerList l) {
+ qDebug("AudioEqualizer::setValues");
+
+ for (int n = 0; n < 10; n++) {
+ eq[n]->setValue(l[n].toInt());
+ }
+}
+
+void AudioEqualizer::presetChanged(int index) {
+ qDebug("AudioEqualizer::presetChanged: %d", index);
+ int p = presets_combo->itemData(index).toInt();
+ if (p != User_defined) {
+ setValues(preset_list[p]);
+ }
+}
+
+int AudioEqualizer::findPreset(AudioEqualizerList l) {
+ QMap<int,AudioEqualizerList>::iterator i;
+ for (i = preset_list.begin(); i != preset_list.end(); ++i) {
+ if (l == i.value()) return i.key();
+ }
+ return User_defined;
+}
+
void AudioEqualizer::applyButtonClicked() {
AudioEqualizerList l;
for (int n = 0; n < 10; n++) {