annotate src/audlegacy/equalizer.c @ 4850:47b72fc78e92

Apply saved equalizer settings on startup
author John Lindgren <john.lindgren@tds.net>
date Mon, 13 Apr 2009 00:53:26 -0400
parents b2ee645f3e59
children 8ebd8358de04
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4706
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
1 /* Audacious - Cross-platform multimedia player
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
2 * Copyright (C) 2005-2008 Audacious development team.
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
3 *
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
6 * the Free Software Foundation; under version 3 of the License.
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
7 *
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
8 * This program is distributed in the hope that it will be useful,
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
11 * GNU General Public License for more details.
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
12 *
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
13 * You should have received a copy of the GNU General Public License
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
14 * along with this program. If not, see <http://www.gnu.org/licenses>.
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
15 *
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
16 * The Audacious team does not consider modular code linking to
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
17 * Audacious or using our public API to be a derived work.
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
18 */
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
19
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
20 #include "equalizer.h"
4848
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
21 #include "hook.h"
4829
e286934cd9f2 -equalizer.c:34: warning: implicit declaration of function ¡Æoutput_set_eq¡Ç
Tony Vroon <chainsaw@gentoo.org>
parents: 4811
diff changeset
22 #include "output.h"
4706
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
23
4718
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
24 #include "audconfig.h"
4706
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
25 #include "legacy/ui_equalizer.h"
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
26
4848
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
27 static void change_equalizer (void) {
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
28 output_set_eq (cfg.equalizer_active, cfg.equalizer_preamp,
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
29 cfg.equalizer_bands);
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
30 }
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
31
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
32 void init_equalizer (void) {
4850
47b72fc78e92 Apply saved equalizer settings on startup
John Lindgren <john.lindgren@tds.net>
parents: 4848
diff changeset
33 change_equalizer ();
4848
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
34 hook_register ("equalizer changed");
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
35 if (hook_associate ("equalizer changed", (HookFunction) change_equalizer, 0))
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
36 abort ();
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
37 }
b2ee645f3e59 Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents: 4829
diff changeset
38
4718
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
39 gfloat
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
40 equalizer_get_preamp(void)
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
41 {
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
42 return equalizerwin_get_preamp();
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
43 }
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
44
4706
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
45 void
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
46 equalizer_set_preamp(gfloat preamp)
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
47 {
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
48 equalizerwin_set_preamp(preamp);
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
49 }
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
50
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
51 gfloat
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
52 equalizer_get_band(gint band)
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
53 {
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
54 return equalizerwin_get_band(band);
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
55 }
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
56
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
57 void
4718
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
58 equalizer_set_band(gint band, gfloat value)
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
59 {
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
60 equalizerwin_set_band(band, value);
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
61 }
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
62
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
63 gboolean equalizer_get_active(gboolean active)
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
64 {
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
65 return cfg.equalizer_active;
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
66 }
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
67
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
68 void
7e0685ceeb86 simplify equalizer code a bit
mf0102 <0102@gmx.at>
parents: 4706
diff changeset
69 equalizer_set_active(gboolean active)
4706
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
70 {
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
71 equalizerwin_activate(active);
7375fa718dd8 made new equalizer interface that doesn't imply a connection with the UI
mf0102 <0102@gmx.at>
parents:
diff changeset
72 }