diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2014-04-21 11:53:35 +0200 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2014-04-21 11:53:35 +0200 |
commit | 2a117cc570574099839da41a5ae9fbb2a5ca9e55 (patch) | |
tree | 6107da409f9c7f07c0ffa0869a26a161b097aea7 /src/audioequalizer.cpp | |
parent | aa68b7bd585a157e8952881e87e2c09de6ec742f (diff) |
Imported Upstream version 14.3.0
Diffstat (limited to 'src/audioequalizer.cpp')
-rw-r--r-- | src/audioequalizer.cpp | 191 |
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++) { |