Sayonara Player
Equalizer.h
1 /* Equalizer.h */
2 /*
3  * Copyright (C) 2011-2020 Michael Lugmair
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 #ifndef SAYONARA_PLAYER_EQUALIZER_H
21 #define SAYONARA_PLAYER_EQUALIZER_H
22 
23 #include "Utils/Pimpl.h"
24 
25 #include <QObject>
26 #include <QList>
27 
28 class EqualizerSetting;
29 class QString;
30 class Equalizer : public QObject
31 {
32  Q_OBJECT
33  PIMPL(Equalizer)
34 
35  signals:
36  void sigValueChanged(int band, int value);
37 
38  public:
39  enum RenameError
40  {
41  NoError=0,
42  DbError,
43  EmptyName,
44  NameAlreadyKnown,
45  InvalidIndex
46  };
47 
48  Equalizer(QObject* parent=nullptr);
49  ~Equalizer() noexcept;
50 
51  const EqualizerSetting& equalizerSetting(int index) const;
52  EqualizerSetting& equalizerSetting(int index);
53  const EqualizerSetting& currentSetting() const;
54 
55  QStringList names() const;
56  QStringList defaultNames() const;
57 
58  void changeValue(int index, int band, int value);
59  void resetPreset(int presetIndex);
60  RenameError renamePreset(int index, const QString& newName);
61  bool deletePreset(int presetIndex);
62  RenameError saveCurrentEqualizerAs(const QString& name);
63 
64  int currentIndex() const;
65  void setCurrentIndex(int index);
66 
67  int count() const;
68 
69  void setGaussEnabled(bool enabled);
70  bool isGaussEnabled() const;
71 
72  void startValueChange();
73  void endValueChange();
74 };
75 
76 #endif //SAYONARA_PLAYER_EQUALIZER_H
Equalizer
Definition: Equalizer.h:31
EqualizerSetting
The EQ_Setting class. Container for Equalizer configurations.
Definition: EqualizerSetting.h:35