2 * SomePlayer - An alternate music player for Maemo 5
3 * Copyright (C) 2010 Nikolay (somebody) Tischenko <niktischenko@gmail.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 #include "equalizerdialog.h"
21 #include "ui_equalizerdialog.h"
24 using namespace SomePlayer::Storage;
26 EqualizerDialog::EqualizerDialog(QWidget *parent) :
28 ui(new Ui::EqualizerDialog)
31 ui->band0Slider->setMinimum(-120);
32 ui->band0Slider->setValue(0);
33 ui->band1Slider->setMinimum(-120);
34 ui->band1Slider->setValue(0);
35 ui->band2Slider->setMinimum(-120);
36 ui->band2Slider->setValue(0);
37 ui->band3Slider->setMinimum(-120);
38 ui->band3Slider->setValue(0);
39 ui->band4Slider->setMinimum(-120);
40 ui->band4Slider->setValue(0);
41 ui->band5Slider->setMinimum(-120);
42 ui->band5Slider->setValue(0);
43 ui->band6Slider->setMinimum(-120);
44 ui->band6Slider->setValue(0);
45 ui->band7Slider->setMinimum(-120);
46 ui->band7Slider->setValue(0);
47 ui->band8Slider->setMinimum(-120);
48 ui->band8Slider->setValue(0);
49 ui->band9Slider->setMinimum(-120);
50 ui->band9Slider->setValue(0);
52 ui->band0Slider->setMaximum(120);
53 ui->band1Slider->setMaximum(120);
54 ui->band2Slider->setMaximum(120);
55 ui->band3Slider->setMaximum(120);
56 ui->band4Slider->setMaximum(120);
57 ui->band5Slider->setMaximum(120);
58 ui->band6Slider->setMaximum(120);
59 ui->band7Slider->setMaximum(120);
60 ui->band8Slider->setMaximum(120);
61 ui->band9Slider->setMaximum(120);
63 ui->masterSlider->setMinimum(-120);
64 ui->masterSlider->setMaximum(120);
65 ui->masterSlider->setValue(0);
67 connect(ui->band0Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value0_changed(int)));
68 connect(ui->band1Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value1_changed(int)));
69 connect(ui->band2Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value2_changed(int)));
70 connect(ui->band3Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value3_changed(int)));
71 connect(ui->band4Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value4_changed(int)));
72 connect(ui->band5Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value5_changed(int)));
73 connect(ui->band6Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value6_changed(int)));
74 connect(ui->band7Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value7_changed(int)));
75 connect(ui->band8Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value8_changed(int)));
76 connect(ui->band9Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value9_changed(int)));
77 connect(ui->masterSlider, SIGNAL(valueChanged(int)), this, SLOT(_value_master_changed(int)));
78 connect(ui->enableToggleButton, SIGNAL(clicked()), this, SLOT(_state_changed()));
79 connect(ui->saveButton, SIGNAL(clicked()), this, SLOT(_save_preset()));
80 connect(ui->presetComboBox, SIGNAL(activated(QString)), this, SLOT(_load_preset(QString)));
83 EqualizerDialog::~EqualizerDialog()
88 void EqualizerDialog::setValue(int band, int val) {
91 ui->band0Slider->setValue(val); break;
93 ui->band1Slider->setValue(val); break;
95 ui->band2Slider->setValue(val); break;
97 ui->band3Slider->setValue(val); break;
99 ui->band4Slider->setValue(val); break;
101 ui->band5Slider->setValue(val); break;
103 ui->band6Slider->setValue(val); break;
105 ui->band7Slider->setValue(val); break;
107 ui->band8Slider->setValue(val); break;
109 ui->band9Slider->setValue(val); break;
114 void EqualizerDialog::_state_changed() {
115 if (ui->enableToggleButton->isChecked()) {
116 setEqualizerEnabled(true);
117 emit equalizerEnabled();
119 setEqualizerEnabled(false);
120 emit equalizerDisabled();
124 void EqualizerDialog::setEqualizerEnabled(bool enabled) {
125 ui->band0Slider->setEnabled(enabled);
126 ui->band1Slider->setEnabled(enabled);
127 ui->band2Slider->setEnabled(enabled);
128 ui->band3Slider->setEnabled(enabled);
129 ui->band4Slider->setEnabled(enabled);
130 ui->band5Slider->setEnabled(enabled);
131 ui->band6Slider->setEnabled(enabled);
132 ui->band7Slider->setEnabled(enabled);
133 ui->band8Slider->setEnabled(enabled);
134 ui->band9Slider->setEnabled(enabled);
135 ui->masterSlider->setEnabled(enabled);
136 ui->saveButton->setEnabled(enabled);
137 ui->presetComboBox->setEnabled(enabled);
138 ui->enableToggleButton->setChecked(enabled);
141 void EqualizerDialog::_value_master_changed(int v) {
142 ui->band0Slider->setValue(v);
143 ui->band1Slider->setValue(v);
144 ui->band2Slider->setValue(v);
145 ui->band3Slider->setValue(v);
146 ui->band4Slider->setValue(v);
147 ui->band5Slider->setValue(v);
148 ui->band6Slider->setValue(v);
149 ui->band7Slider->setValue(v);
150 ui->band8Slider->setValue(v);
151 ui->band9Slider->setValue(v);
152 for (int i = 0; i < 10; i++) {
153 emit valueChanged(i, v);
157 void EqualizerDialog::reloadPresets() {
159 QStringList presets = config.getValue("equalizer/presets").toStringList();
160 ui->presetComboBox->clear();
161 ui->presetComboBox->addItems(presets);
164 void EqualizerDialog::_save_preset() {
166 QString name = ui->presetComboBox->currentText().trimmed();
167 QStringList presets = config.getValue("equalizer/presets").toStringList();
168 if (!presets.contains(name))
169 presets.append(name);
170 config.setValue("equalizer/presets", presets);
171 config.setValue(QString("equalizer_preset_")+name+"/band0", ui->band0Slider->value());
172 config.setValue(QString("equalizer_preset_")+name+"/band1", ui->band1Slider->value());
173 config.setValue(QString("equalizer_preset_")+name+"/band2", ui->band2Slider->value());
174 config.setValue(QString("equalizer_preset_")+name+"/band3", ui->band3Slider->value());
175 config.setValue(QString("equalizer_preset_")+name+"/band4", ui->band4Slider->value());
176 config.setValue(QString("equalizer_preset_")+name+"/band5", ui->band5Slider->value());
177 config.setValue(QString("equalizer_preset_")+name+"/band6", ui->band6Slider->value());
178 config.setValue(QString("equalizer_preset_")+name+"/band7", ui->band7Slider->value());
179 config.setValue(QString("equalizer_preset_")+name+"/band8", ui->band8Slider->value());
180 config.setValue(QString("equalizer_preset_")+name+"/band9", ui->band9Slider->value());
184 void EqualizerDialog::_load_preset(QString name) {
186 ui->band0Slider->setValue(config.getValue("equalizer_preset_"+name+"/band0").toInt());
187 _value0_changed(ui->band0Slider->value());
188 ui->band1Slider->setValue(config.getValue("equalizer_preset_"+name+"/band1").toInt());
189 _value1_changed(ui->band1Slider->value());
190 ui->band2Slider->setValue(config.getValue("equalizer_preset_"+name+"/band2").toInt());
191 _value2_changed(ui->band2Slider->value());
192 ui->band3Slider->setValue(config.getValue("equalizer_preset_"+name+"/band3").toInt());
193 _value3_changed(ui->band3Slider->value());
194 ui->band4Slider->setValue(config.getValue("equalizer_preset_"+name+"/band4").toInt());
195 _value4_changed(ui->band4Slider->value());
196 ui->band5Slider->setValue(config.getValue("equalizer_preset_"+name+"/band5").toInt());
197 _value5_changed(ui->band5Slider->value());
198 ui->band6Slider->setValue(config.getValue("equalizer_preset_"+name+"/band6").toInt());
199 _value6_changed(ui->band6Slider->value());
200 ui->band7Slider->setValue(config.getValue("equalizer_preset_"+name+"/band7").toInt());
201 _value7_changed(ui->band7Slider->value());
202 ui->band8Slider->setValue(config.getValue("equalizer_preset_"+name+"/band8").toInt());
203 _value8_changed(ui->band8Slider->value());
204 ui->band9Slider->setValue(config.getValue("equalizer_preset_"+name+"/band9").toInt());
205 _value9_changed(ui->band9Slider->value());
208 void EqualizerDialog::landscapeMode() {
209 ui->thorizontalLayout->insertWidget(0, ui->enableToggleButton);
210 ui->thorizontalLayout->addWidget(ui->saveButton);
211 ui->bhorizontalLayout->removeItem(ui->chorizontalSpacer);
214 void EqualizerDialog::portraitMode() {
215 ui->bhorizontalLayout->insertWidget(0, ui->enableToggleButton);
216 ui->bhorizontalLayout->addItem(ui->chorizontalSpacer);
217 ui->bhorizontalLayout->addWidget(ui->saveButton);