annotate audacious/equalizer.c @ 1938:1d9c1026d9f8 trunk

[svn] - DoubleSize support. This has bugs, the most notable one being that DoubleSize only works right if you restart the player. The second bug is rather obvious too. No osmosis skinengine. No TinyPlayer. Classic-esque skinengine only. This is because the doublesize algorithm hates you and wants you to go die in a fire.
author nenolod
date Sun, 05 Nov 2006 04:43:16 -0800
parents a6e6d3500c13
children e929aec8c8ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1 /* Audacious - Cross-platform multimedia player
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
2 * Copyright (C) 2005-2006 Audacious development team.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
3 *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
4 * BMP - Cross-platform multimedia player
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
5 * Copyright (C) 2003-2004 BMP development team.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
6 *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
7 * Based on XMMS:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
8 * Copyright (C) 1998-2003 XMMS development team.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
9 *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
13 * (at your option) any later version.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
14 *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
18 * GNU General Public License for more details.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
19 *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
23 */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
24
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
25 #ifdef HAVE_CONFIG_H
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
26 # include "config.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
27 #endif
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
28
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
29 #include "equalizer.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
30
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
31 #include <glib.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
32 #include <glib/gi18n.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
33 #include <gtk/gtk.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
34 #include <stdio.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
35 #include <math.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
36 #include <string.h>
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
37
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
38 #include "platform/smartinclude.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
39 #include "widgets/widgetcore.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
40 #include "dock.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
41 #include "hints.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
42 #include "input.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
43 #include "main.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
44 #include "playlist.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
45 #include "ui_playlist.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
46 #include "util.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
47 #include "output.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
48
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
49 #include "libaudacious/rcfile.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
50 #include "libaudacious/vfs.h"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
51
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
52 #include "images/audacious_eq.xpm"
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
53
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
54 enum PresetViewCols {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
55 PRESET_VIEW_COL_NAME,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
56 PRESET_VIEW_N_COLS
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
57 };
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
58
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
59 enum {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
60 EQUALIZER_PRESETS_LOAD_PRESET,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
61 EQUALIZER_PRESETS_LOAD_AUTOPRESET,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
62 EQUALIZER_PRESETS_LOAD_DEFAULT,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
63 EQUALIZER_PRESETS_LOAD_ZERO,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
64 EQUALIZER_PRESETS_LOAD_FROM_FILE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
65 EQUALIZER_PRESETS_LOAD_FROM_WINAMPFILE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
66 EQUALIZER_PRESETS_IMPORT_WINAMPFILE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
67 EQUALIZER_PRESETS_SAVE_PRESET,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
68 EQUALIZER_PRESETS_SAVE_AUTOPRESET,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
69 EQUALIZER_PRESETS_SAVE_DEFAULT,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
70 EQUALIZER_PRESETS_SAVE_TO_FILE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
71 EQUALIZER_PRESETS_SAVE_TO_WINAMPFILE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
72 EQUALIZER_PRESETS_DELETE_PRESET,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
73 EQUALIZER_PRESETS_DELETE_AUTOPRESET
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
74 };
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
75
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
76
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
77 struct _EqualizerPreset {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
78 gchar *name;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
79 gfloat preamp, bands[10];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
80 };
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
81
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
82 typedef struct _EqualizerPreset EqualizerPreset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
83
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
84
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
85 GtkWidget *equalizerwin;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
86
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
87 static GtkWidget *equalizerwin_load_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
88 static GtkWidget *equalizerwin_load_auto_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
89 static GtkWidget *equalizerwin_save_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
90 static GtkWidget *equalizerwin_save_entry;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
91 static GtkWidget *equalizerwin_save_auto_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
92 static GtkWidget *equalizerwin_save_auto_entry;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
93 static GtkWidget *equalizerwin_delete_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
94 static GtkWidget *equalizerwin_delete_auto_window = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
95
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
96 static GdkPixmap *equalizerwin_bg, *equalizerwin_bg_x2;
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
97 static GdkGC *equalizerwin_gc;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
98
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
99 static GList *equalizerwin_wlist = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
100
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
101 static GtkAccelGroup *equalizerwin_accel;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
102
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
103 static TButton *equalizerwin_on, *equalizerwin_auto;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
104
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
105 static PButton *equalizerwin_presets, *equalizerwin_shade;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
106 PButton *equalizerwin_close;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
107 static EqGraph *equalizerwin_graph;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
108 static EqSlider *equalizerwin_preamp, *equalizerwin_bands[10];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
109 static HSlider *equalizerwin_volume, *equalizerwin_balance;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
110
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
111 static GtkItemFactory *equalizerwin_presets_menu;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
112
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
113 static GList *equalizer_presets = NULL, *equalizer_auto_presets = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
114
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
115
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
116 static void equalizerwin_presets_menu_cb(gpointer cb_data, guint action,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
117 GtkWidget * w);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
118
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
119 static GtkItemFactoryEntry equalizerwin_presets_menu_entries[] = {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
120 {N_("/Load"), NULL, NULL, 0, "<Branch>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
121 {N_("/Load/Preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
122 EQUALIZER_PRESETS_LOAD_PRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
123 {N_("/Load/Auto-load preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
124 EQUALIZER_PRESETS_LOAD_AUTOPRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
125 {N_("/Load/Default"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
126 EQUALIZER_PRESETS_LOAD_DEFAULT, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
127 {"/Load/-", NULL, NULL, 0, "<Separator>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
128 {N_("/Load/Zero"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
129 EQUALIZER_PRESETS_LOAD_ZERO, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
130 {"/Load/-", NULL, NULL, 0, "<Separator>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
131 {N_("/Load/From file"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
132 EQUALIZER_PRESETS_LOAD_FROM_FILE, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
133 {N_("/Load/From WinAMP EQF file"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
134 EQUALIZER_PRESETS_LOAD_FROM_WINAMPFILE, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
135 {N_("/Import"), NULL, NULL, 0, "<Branch>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
136 {N_("/Import/WinAMP Presets"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
137 EQUALIZER_PRESETS_IMPORT_WINAMPFILE, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
138 {N_("/Save"), NULL, NULL, 0, "<Branch>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
139 {N_("/Save/Preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
140 EQUALIZER_PRESETS_SAVE_PRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
141 {N_("/Save/Auto-load preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
142 EQUALIZER_PRESETS_SAVE_AUTOPRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
143 {N_("/Save/Default"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
144 EQUALIZER_PRESETS_SAVE_DEFAULT, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
145 {"/Save/-", NULL, NULL, 0, "<Separator>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
146 {N_("/Save/To file"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
147 EQUALIZER_PRESETS_SAVE_TO_FILE, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
148 {N_("/Save/To WinAMP EQF file"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
149 EQUALIZER_PRESETS_SAVE_TO_WINAMPFILE, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
150 {N_("/Delete"), NULL, NULL, 0, "<Branch>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
151 {N_("/Delete/Preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
152 EQUALIZER_PRESETS_DELETE_PRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
153 {N_("/Delete/Auto-load preset"), NULL, equalizerwin_presets_menu_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
154 EQUALIZER_PRESETS_DELETE_AUTOPRESET, "<Item>", NULL},
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
155 };
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
156
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
157 static gint equalizerwin_presets_menu_entries_num =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
158 G_N_ELEMENTS(equalizerwin_presets_menu_entries);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
159
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
160
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
161 EqualizerPreset *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
162 equalizer_preset_new(const gchar * name)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
163 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
164 EqualizerPreset *preset = g_new0(EqualizerPreset, 1);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
165 preset->name = g_strdup(name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
166 return preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
167 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
168
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
169 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
170 equalizer_preset_free(EqualizerPreset * preset)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
171 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
172 if (!preset)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
173 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
174
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
175 g_free(preset->name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
176 g_free(preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
177 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
178
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
179
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
180 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
181 equalizerwin_set_shape_mask(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
182 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
183 if (cfg.show_wm_decorations)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
184 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
185
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
186 if (cfg.doublesize == FALSE)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
187 gtk_widget_shape_combine_mask(equalizerwin,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
188 skin_get_mask(bmp_active_skin,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
189 SKIN_MASK_EQ), 0, 0);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
190 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
191 gtk_widget_shape_combine_mask(equalizerwin, NULL, 0, 0);
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
192 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
193
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
194 void
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
195 equalizerwin_set_doublesize(gboolean ds)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
196 {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
197 gint height;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
198
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
199 if (cfg.equalizer_shaded)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
200 height = 14;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
201 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
202 height = 116;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
203
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
204 equalizerwin_set_shape_mask();
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
205
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
206 if (ds) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
207 dock_window_resize(equalizerwin, 275, height, 550, height * 2);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
208 gdk_window_set_back_pixmap(equalizerwin->window, equalizerwin_bg_x2,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
209 0);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
210 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
211 else {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
212 dock_window_resize(equalizerwin, 275, height, 275, height);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
213 gdk_window_set_back_pixmap(equalizerwin->window, equalizerwin_bg, 0);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
214 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
215
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
216 draw_equalizer_window(TRUE);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
217 }
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
218
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
219 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
220 equalizerwin_set_shade_menu_cb(gboolean shaded)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
221 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
222 cfg.equalizer_shaded = shaded;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
223
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
224 equalizerwin_set_shape_mask();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
225
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
226 if (shaded) {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
227 dock_shade(dock_window_list, GTK_WINDOW(equalizerwin),
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
228 14 * (EQUALIZER_DOUBLESIZE + 1));
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
229 pbutton_set_button_data(equalizerwin_shade, -1, 3, -1, 47);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
230 pbutton_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
231 pbutton_set_button_data(equalizerwin_close, 11, 38, 11, 47);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
232 pbutton_set_skin_index(equalizerwin_close, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
233 widget_show(WIDGET(equalizerwin_volume));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
234 widget_show(WIDGET(equalizerwin_balance));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
235 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
236 else {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
237 dock_shade(dock_window_list, GTK_WINDOW(equalizerwin),
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
238 116 * (EQUALIZER_DOUBLESIZE + 1));
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
239 pbutton_set_button_data(equalizerwin_shade, -1, 137, -1, 38);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
240 pbutton_set_skin_index1(equalizerwin_shade, SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
241 pbutton_set_button_data(equalizerwin_close, 0, 116, 0, 125);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
242 pbutton_set_skin_index(equalizerwin_close, SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
243 widget_hide(WIDGET(equalizerwin_volume));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
244 widget_hide(WIDGET(equalizerwin_balance));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
245 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
246
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
247 draw_equalizer_window(TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
248 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
249
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
250 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
251 equalizerwin_set_shade(gboolean shaded)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
252 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
253 GtkWidget *widget;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
254 widget = gtk_item_factory_get_widget(mainwin_view_menu,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
255 "/Roll up Equalizer");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
256 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), shaded);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
257 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
258
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
259 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
260 equalizerwin_shade_toggle(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
261 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
262 equalizerwin_set_shade(!cfg.equalizer_shaded);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
263 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
264
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
265 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
266 equalizerwin_raise(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
267 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
268 if (cfg.equalizer_visible)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
269 gtk_window_present(GTK_WINDOW(equalizerwin));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
270 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
271
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
272 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
273 equalizerwin_eq_changed(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
274 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
275 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
276
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
277 cfg.equalizer_preamp = eqslider_get_position(equalizerwin_preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
278 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
279 cfg.equalizer_bands[i] = eqslider_get_position(equalizerwin_bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
280 /* um .. i think we need both of these for xmms compatibility ..
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
281 not sure. -larne */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
282 input_set_eq(cfg.equalizer_active, cfg.equalizer_preamp,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
283 cfg.equalizer_bands);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
284 output_set_eq(cfg.equalizer_active, cfg.equalizer_preamp,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
285 cfg.equalizer_bands);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
286
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
287 widget_draw(WIDGET(equalizerwin_graph));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
288 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
289
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
290 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
291 equalizerwin_on_pushed(gboolean toggled)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
292 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
293 cfg.equalizer_active = toggled;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
294 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
295 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
296
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
297 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
298 equalizerwin_presets_pushed(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
299 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
300 GdkModifierType modmask;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
301 gint x, y;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
302
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
303 gdk_window_get_pointer(NULL, &x, &y, &modmask);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
304 util_item_factory_popup(equalizerwin_presets_menu, x, y, 1,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
305 GDK_CURRENT_TIME);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
306 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
307
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
308 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
309 equalizerwin_auto_pushed(gboolean toggled)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
310 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
311 cfg.equalizer_autoload = toggled;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
312 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
313
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
314 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
315 draw_equalizer_window(gboolean force)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
316 {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
317 GdkImage *img, *img2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
318 GList *wl;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
319 Widget *w;
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
320 gboolean redraw;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
321
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
322 widget_list_lock(equalizerwin_wlist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
323
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
324 if (force) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
325 skin_draw_pixmap(bmp_active_skin, equalizerwin_bg, equalizerwin_gc,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
326 SKIN_EQMAIN, 0, 0, 0, 0, 275, 116);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
327 if (gtk_window_has_toplevel_focus(GTK_WINDOW(equalizerwin)) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
328 !cfg.dim_titlebar) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
329 if (!cfg.equalizer_shaded)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
330 skin_draw_pixmap(bmp_active_skin, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
331 equalizerwin_gc, SKIN_EQMAIN, 0, 134, 0,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
332 0, 275, 14);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
333 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
334 skin_draw_pixmap(bmp_active_skin, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
335 equalizerwin_gc, SKIN_EQ_EX, 0, 0, 0, 0,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
336 275, 14);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
337 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
338 else {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
339 if (!cfg.equalizer_shaded)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
340 skin_draw_pixmap(bmp_active_skin, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
341 equalizerwin_gc, SKIN_EQMAIN, 0, 149, 0,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
342 0, 275, 14);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
343 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
344 skin_draw_pixmap(bmp_active_skin, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
345 equalizerwin_gc, SKIN_EQ_EX, 0, 15, 0, 0,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
346 275, 14);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
347
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
348 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
349 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
350
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
351 widget_list_draw(equalizerwin_wlist, &redraw, force);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
352
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
353 if (force || redraw) {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
354 if (cfg.doublesize && cfg.eq_doublesize_linked) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
355 if (force) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
356 img = gdk_drawable_get_image(equalizerwin_bg, 0, 0, 275, 116);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
357 img2 = create_dblsize_image(img);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
358 gdk_draw_image(equalizerwin_bg_x2, equalizerwin_gc,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
359 img2, 0, 0, 0, 0, 550, 232);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
360 gdk_image_destroy(img2);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
361 gdk_image_destroy(img);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
362 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
363 else {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
364 for (wl = equalizerwin_wlist; wl; wl = g_list_next(wl)) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
365 w = WIDGET(wl->data);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
366 if (w->redraw && w->visible) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
367 img = gdk_drawable_get_image(equalizerwin_bg,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
368 w->x, w->y,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
369 w->width, w->height);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
370 img2 = create_dblsize_image(img);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
371 gdk_draw_image(equalizerwin_bg_x2,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
372 equalizerwin_gc, img2, 0, 0,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
373 w->x << 1, w->y << 1, w->width << 1,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
374 w->height << 1);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
375 gdk_image_destroy(img2);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
376 gdk_image_destroy(img);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
377 w->redraw = FALSE;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
378 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
379 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
380 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
381 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
382 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
383 widget_list_clear_redraw(equalizerwin_wlist);
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
384 gdk_window_clear(equalizerwin->window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
385 gdk_flush();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
386 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
387
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
388 widget_list_unlock(equalizerwin_wlist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
389 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
390
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
391 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
392 inside_sensitive_widgets(gint x, gint y)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
393 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
394 return (widget_contains(WIDGET(equalizerwin_on), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
395 widget_contains(WIDGET(equalizerwin_auto), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
396 widget_contains(WIDGET(equalizerwin_presets), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
397 widget_contains(WIDGET(equalizerwin_close), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
398 widget_contains(WIDGET(equalizerwin_shade), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
399 widget_contains(WIDGET(equalizerwin_preamp), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
400 widget_contains(WIDGET(equalizerwin_bands[0]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
401 widget_contains(WIDGET(equalizerwin_bands[1]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
402 widget_contains(WIDGET(equalizerwin_bands[2]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
403 widget_contains(WIDGET(equalizerwin_bands[3]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
404 widget_contains(WIDGET(equalizerwin_bands[4]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
405 widget_contains(WIDGET(equalizerwin_bands[5]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
406 widget_contains(WIDGET(equalizerwin_bands[6]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
407 widget_contains(WIDGET(equalizerwin_bands[7]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
408 widget_contains(WIDGET(equalizerwin_bands[8]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
409 widget_contains(WIDGET(equalizerwin_bands[9]), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
410 widget_contains(WIDGET(equalizerwin_volume), x, y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
411 widget_contains(WIDGET(equalizerwin_balance), x, y));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
412 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
413
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
414 gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
415 equalizerwin_press(GtkWidget * widget, GdkEventButton * event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
416 gpointer callback_data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
417 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
418 gint mx, my;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
419 gboolean grab = TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
420
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
421 mx = event->x;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
422 my = event->y;
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
423 if (cfg.doublesize && cfg.eq_doublesize_linked) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
424 event->x /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
425 event->y /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
426 }
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
427
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
428 if (event->button == 1 && event->type == GDK_BUTTON_PRESS &&
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
429 ((cfg.easy_move || cfg.equalizer_shaded || event->y < 14) &&
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
430 !inside_sensitive_widgets(event->x, event->y))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
431 if (0 && hint_move_resize_available()) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
432 hint_move_resize(equalizerwin, event->x_root,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
433 event->y_root, TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
434 grab = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
435 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
436 else {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
437 equalizerwin_raise();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
438 dock_move_press(dock_window_list, GTK_WINDOW(equalizerwin), event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
439 FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
440 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
441 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
442 else if (event->button == 1 && event->type == GDK_2BUTTON_PRESS
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
443 && event->y < 14) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
444 equalizerwin_set_shade(!cfg.equalizer_shaded);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
445 if (dock_is_moving(GTK_WINDOW(equalizerwin)))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
446 dock_move_release(GTK_WINDOW(equalizerwin));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
447 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
448 else if (event->button == 3 &&
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
449 !(widget_contains(WIDGET(equalizerwin_on), event->x, event->y) ||
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
450 widget_contains(WIDGET(equalizerwin_auto), event->x, event->y))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
451 /*
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
452 * Pop up the main menu a few pixels down to avoid
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
453 * anything to be selected initially.
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
454 */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
455 util_item_factory_popup(mainwin_general_menu, event->x_root,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
456 event->y_root + 2, 3, event->time);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
457 grab = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
458 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
459 else {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
460 handle_press_cb(equalizerwin_wlist, widget, event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
461 draw_equalizer_window(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
462 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
463 if (grab)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
464 gdk_pointer_grab(GDK_WINDOW(equalizerwin->window), FALSE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
465 GDK_BUTTON_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
466 NULL, NULL, GDK_CURRENT_TIME);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
467
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
468 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
469 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
470
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
471 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
472 equalizerwin_scroll(GtkWidget * widget, GdkEventScroll * event, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
473 {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
474 if (cfg.doublesize && cfg.eq_doublesize_linked) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
475 event->x /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
476 event->y /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
477 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
478
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
479 handle_scroll_cb(equalizerwin_wlist, widget, event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
480 draw_equalizer_window(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
481 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
482
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
483 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
484 equalizerwin_motion(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
485 GdkEventMotion * event, gpointer callback_data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
486 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
487 GdkEvent *gevent;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
488
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
489 if (dock_is_moving(GTK_WINDOW(equalizerwin)))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
490 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
491 dock_move_motion(GTK_WINDOW(equalizerwin), event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
492 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
493 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
494 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
495 handle_motion_cb(equalizerwin_wlist, widget, event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
496 draw_equalizer_window(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
497 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
498
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
499 gdk_flush();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
500
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
501 while ((gevent = gdk_event_get()) != NULL) gdk_event_free(gevent);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
502
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
503 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
504 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
505
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
506 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
507 equalizerwin_release(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
508 GdkEventButton * event, gpointer callback_data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
509 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
510 gdk_pointer_ungrab(GDK_CURRENT_TIME);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
511 gdk_flush();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
512
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
513 if (cfg.doublesize && cfg.eq_doublesize_linked) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
514 event->x /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
515 event->y /= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
516 }
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
517 if (dock_is_moving(GTK_WINDOW(equalizerwin))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
518 dock_move_release(GTK_WINDOW(equalizerwin));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
519 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
520 else {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
521 handle_release_cb(equalizerwin_wlist, widget, event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
522 draw_equalizer_window(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
523 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
524
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
525 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
526 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
527
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
528 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
529 equalizerwin_focus_in(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
530 GdkEvent * event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
531 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
532 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
533 equalizerwin_close->pb_allow_draw = TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
534 equalizerwin_shade->pb_allow_draw = TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
535 draw_equalizer_window(TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
536 return TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
537 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
538
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
539 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
540 equalizerwin_focus_out(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
541 GdkEventButton * event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
542 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
543 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
544 equalizerwin_close->pb_allow_draw = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
545 equalizerwin_shade->pb_allow_draw = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
546 draw_equalizer_window(TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
547 return TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
548 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
549
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
550 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
551 equalizerwin_keypress(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
552 GdkEventKey * event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
553 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
554 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
555 if (!cfg.equalizer_shaded) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
556 gtk_widget_event(mainwin, (GdkEvent *) event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
557 return TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
558 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
559
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
560 switch (event->keyval) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
561 case GDK_Left:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
562 case GDK_KP_Left:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
563 mainwin_set_balance_diff(-4);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
564 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
565 case GDK_Right:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
566 case GDK_KP_Right:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
567 mainwin_set_balance_diff(4);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
568 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
569 default:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
570 gtk_widget_event(mainwin, (GdkEvent *) event);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
571 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
572 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
573
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
574 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
575 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
576
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
577 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
578 equalizerwin_configure(GtkWidget * window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
579 GdkEventConfigure * event,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
580 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
581 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
582 if (!GTK_WIDGET_VISIBLE(window))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
583 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
584
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
585 cfg.equalizer_x = event->x;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
586 cfg.equalizer_y = event->y;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
587 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
588 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
589
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
590 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
591 equalizerwin_set_back_pixmap(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
592 {
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
593 if (cfg.doublesize && cfg.eq_doublesize_linked)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
594 gdk_window_set_back_pixmap(equalizerwin->window, equalizerwin_bg_x2,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
595 0);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
596 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
597 gdk_window_set_back_pixmap(equalizerwin->window, equalizerwin_bg, 0);
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
598 gdk_window_clear(equalizerwin->window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
599 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
600
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
601 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
602 equalizerwin_close_cb(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
603 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
604 equalizerwin_show(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
605 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
606
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
607 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
608 equalizerwin_delete(GtkWidget * widget,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
609 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
610 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
611 equalizerwin_show(FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
612 return TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
613 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
614
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
615 static GList *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
616 equalizerwin_read_presets(const gchar * basename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
617 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
618 gchar *filename, *name;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
619 RcFile *rcfile;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
620 GList *list = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
621 gint i, p = 0;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
622 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
623
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
624 filename = g_build_filename(bmp_paths[BMP_PATH_USER_DIR], basename, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
625
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
626 if ((rcfile = bmp_rcfile_open(filename)) == NULL) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
627 g_free(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
628 return NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
629 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
630
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
631 g_free(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
632
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
633 for (;;) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
634 gchar section[21];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
635
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
636 g_snprintf(section, sizeof(section), "Preset%d", p++);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
637 if (bmp_rcfile_read_string(rcfile, "Presets", section, &name)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
638 preset = g_new0(EqualizerPreset, 1);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
639 preset->name = name;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
640 bmp_rcfile_read_float(rcfile, name, "Preamp", &preset->preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
641 for (i = 0; i < 10; i++) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
642 gchar band[7];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
643 g_snprintf(band, sizeof(band), "Band%d", i);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
644 bmp_rcfile_read_float(rcfile, name, band, &preset->bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
645 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
646 list = g_list_prepend(list, preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
647 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
648 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
649 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
650 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
651 list = g_list_reverse(list);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
652 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
653 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
654 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
655
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
656 gint
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
657 equalizerwin_volume_frame_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
658 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
659 if (equalizerwin_volume) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
660 if (pos < 32)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
661 equalizerwin_volume->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
662 equalizerwin_volume->hs_knob_px = 1;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
663 else if (pos < 63)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
664 equalizerwin_volume->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
665 equalizerwin_volume->hs_knob_px = 4;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
666 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
667 equalizerwin_volume->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
668 equalizerwin_volume->hs_knob_px = 7;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
669 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
670 return 1;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
671 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
672
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
673 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
674 equalizerwin_volume_motion_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
675 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
676 gint v = (gint) rint(pos * 100 / 94.0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
677 mainwin_adjust_volume_motion(v);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
678 mainwin_set_volume_slider(v);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
679 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
680
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
681 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
682 equalizerwin_volume_release_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
683 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
684 mainwin_adjust_volume_release();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
685 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
686
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
687 static gint
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
688 equalizerwin_balance_frame_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
689 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
690 if (equalizerwin_balance) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
691 if (pos < 13)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
692 equalizerwin_balance->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
693 equalizerwin_balance->hs_knob_px = 11;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
694 else if (pos < 26)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
695 equalizerwin_balance->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
696 equalizerwin_balance->hs_knob_px = 14;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
697 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
698 equalizerwin_balance->hs_knob_nx =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
699 equalizerwin_balance->hs_knob_px = 17;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
700 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
701
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
702 return 1;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
703 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
704
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
705 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
706 equalizerwin_balance_motion_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
707 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
708 gint b;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
709 pos = MIN(pos, 38); /* The skin uses a even number of pixels
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
710 for the balance-slider *sigh* */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
711 b = (gint) rint((pos - 19) * 100 / 19.0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
712 mainwin_adjust_balance_motion(b);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
713 mainwin_set_balance_slider(b);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
714 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
715
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
716 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
717 equalizerwin_balance_release_cb(gint pos)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
718 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
719 mainwin_adjust_balance_release();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
720 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
721
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
722 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
723 equalizerwin_set_balance_slider(gint percent)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
724 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
725 hslider_set_position(equalizerwin_balance,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
726 (gint) rint((percent * 19 / 100.0) + 19));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
727 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
728
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
729 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
730 equalizerwin_set_volume_slider(gint percent)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
731 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
732 hslider_set_position(equalizerwin_volume,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
733 (gint) rint(percent * 94 / 100.0));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
734 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
735
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
736 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
737 equalizerwin_create_widgets(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
738 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
739 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
740
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
741 equalizerwin_on =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
742 create_tbutton(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
743 equalizerwin_gc, 14, 18, 25, 12, 10, 119, 128, 119,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
744 69, 119, 187, 119, equalizerwin_on_pushed,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
745 SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
746 tbutton_set_toggled(equalizerwin_on, cfg.equalizer_active);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
747 equalizerwin_auto =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
748 create_tbutton(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
749 equalizerwin_gc, 39, 18, 33, 12, 35, 119, 153, 119,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
750 94, 119, 212, 119, equalizerwin_auto_pushed,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
751 SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
752 tbutton_set_toggled(equalizerwin_auto, cfg.equalizer_autoload);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
753 equalizerwin_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
754 create_pbutton(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
755 equalizerwin_gc, 217, 18, 44, 12, 224, 164, 224,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
756 176, equalizerwin_presets_pushed, SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
757 equalizerwin_close =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
758 create_pbutton(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
759 equalizerwin_gc, 264, 3, 9, 9, 0, 116, 0, 125,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
760 equalizerwin_close_cb, SKIN_EQMAIN);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
761 equalizerwin_close->pb_allow_draw = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
762
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
763 equalizerwin_shade =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
764 create_pbutton_ex(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
765 equalizerwin_gc, 254, 3, 9, 9, 254, 137, 1, 38,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
766 equalizerwin_shade_toggle, NULL, SKIN_EQMAIN, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
767 equalizerwin_shade->pb_allow_draw = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
768
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
769 equalizerwin_graph =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
770 create_eqgraph(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
771 equalizerwin_gc, 86, 17);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
772 equalizerwin_preamp =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
773 create_eqslider(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
774 equalizerwin_gc, 21, 38);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
775 eqslider_set_position(equalizerwin_preamp, cfg.equalizer_preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
776 for (i = 0; i < 10; i++) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
777 equalizerwin_bands[i] =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
778 create_eqslider(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
779 equalizerwin_gc, 78 + (i * 18), 38);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
780 eqslider_set_position(equalizerwin_bands[i], cfg.equalizer_bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
781 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
782
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
783 equalizerwin_volume =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
784 create_hslider(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
785 equalizerwin_gc, 61, 4, 97, 8, 1, 30, 1, 30, 3, 7,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
786 4, 61, 0, 94, equalizerwin_volume_frame_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
787 equalizerwin_volume_motion_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
788 equalizerwin_volume_release_cb, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
789 equalizerwin_balance =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
790 create_hslider(&equalizerwin_wlist, equalizerwin_bg,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
791 equalizerwin_gc, 164, 4, 42, 8, 11, 30, 11, 30, 3,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
792 7, 4, 164, 0, 39, equalizerwin_balance_frame_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
793 equalizerwin_balance_motion_cb,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
794 equalizerwin_balance_release_cb, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
795
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
796 if (!cfg.equalizer_shaded) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
797 widget_hide(WIDGET(equalizerwin_volume));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
798 widget_hide(WIDGET(equalizerwin_balance));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
799 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
800 else {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
801 pbutton_set_button_data(equalizerwin_shade, -1, 3, -1, 47);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
802 pbutton_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
803 pbutton_set_button_data(equalizerwin_close, 11, 38, 11, 47);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
804 pbutton_set_skin_index(equalizerwin_close, SKIN_EQ_EX);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
805 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
806 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
807
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
808
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
809 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
810 equalizerwin_create_window(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
811 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
812 GdkPixbuf *icon;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
813 gint width, height;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
814
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
815 equalizerwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
816 gtk_window_set_title(GTK_WINDOW(equalizerwin), _("Audacious Equalizer"));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
817 gtk_window_set_wmclass(GTK_WINDOW(equalizerwin), "equalizer", "Audacious");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
818 gtk_window_set_role(GTK_WINDOW(equalizerwin), "equalizer");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
819
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
820 width = 275;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
821 height = cfg.equalizer_shaded ? 14 : 116;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
822
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
823 if (cfg.doublesize && cfg.eq_doublesize_linked) {
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
824 width *= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
825 height *= 2;
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
826 }
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
827
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
828 gtk_window_set_default_size(GTK_WINDOW(equalizerwin), width, height);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
829 gtk_window_set_resizable(GTK_WINDOW(equalizerwin), FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
830
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
831 dock_window_list = dock_window_set_decorated(dock_window_list,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
832 GTK_WINDOW(equalizerwin),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
833 cfg.show_wm_decorations);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
834
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
835 /* this will hide only mainwin. it's annoying! yaz */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
836 gtk_window_set_transient_for(GTK_WINDOW(equalizerwin),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
837 GTK_WINDOW(mainwin));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
838 gtk_window_set_skip_taskbar_hint(GTK_WINDOW(equalizerwin), TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
839
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
840 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) bmp_eq_icon);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
841 gtk_window_set_icon(GTK_WINDOW(equalizerwin), icon);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
842 g_object_unref(icon);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
843
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
844 gtk_widget_set_app_paintable(equalizerwin, TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
845
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
846 if (cfg.equalizer_x != -1 && cfg.save_window_position)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
847 gtk_window_move(GTK_WINDOW(equalizerwin),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
848 cfg.equalizer_x, cfg.equalizer_y);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
849
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
850 gtk_widget_set_events(equalizerwin,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
851 GDK_FOCUS_CHANGE_MASK | GDK_BUTTON_MOTION_MASK |
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
852 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
853 GDK_VISIBILITY_NOTIFY_MASK);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
854 gtk_widget_realize(equalizerwin);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
855
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
856 util_set_cursor(equalizerwin);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
857
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
858 g_signal_connect(equalizerwin, "delete_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
859 G_CALLBACK(equalizerwin_delete), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
860 g_signal_connect(equalizerwin, "button_press_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
861 G_CALLBACK(equalizerwin_press), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
862 g_signal_connect(equalizerwin, "button_release_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
863 G_CALLBACK(equalizerwin_release), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
864 g_signal_connect(equalizerwin, "motion_notify_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
865 G_CALLBACK(equalizerwin_motion), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
866 g_signal_connect_after(equalizerwin, "focus_in_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
867 G_CALLBACK(equalizerwin_focus_in), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
868 g_signal_connect_after(equalizerwin, "focus_out_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
869 G_CALLBACK(equalizerwin_focus_out), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
870 g_signal_connect(equalizerwin, "configure_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
871 G_CALLBACK(equalizerwin_configure), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
872 g_signal_connect(equalizerwin, "style_set",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
873 G_CALLBACK(equalizerwin_set_back_pixmap), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
874 g_signal_connect(equalizerwin, "key_press_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
875 G_CALLBACK(equalizerwin_keypress), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
876 g_signal_connect(equalizerwin, "scroll_event",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
877 G_CALLBACK(equalizerwin_scroll), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
878 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
879
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
880 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
881 equalizerwin_create_popup_menus(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
882 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
883 equalizerwin_accel = gtk_accel_group_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
884 gtk_window_add_accel_group(GTK_WINDOW(equalizerwin), equalizerwin_accel);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
885
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
886 equalizerwin_presets_menu = create_menu(equalizerwin_presets_menu_entries,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
887 equalizerwin_presets_menu_entries_num,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
888 NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
889 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
890
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
891 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
892 equalizerwin_create(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
893 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
894 equalizer_presets = equalizerwin_read_presets("eq.preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
895 equalizer_auto_presets = equalizerwin_read_presets("eq.auto_preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
896
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
897 equalizerwin_create_window();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
898 equalizerwin_create_popup_menus();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
899
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
900 equalizerwin_gc = gdk_gc_new(equalizerwin->window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
901 equalizerwin_bg = gdk_pixmap_new(equalizerwin->window, 275, 116, -1);
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
902 equalizerwin_bg_x2 = gdk_pixmap_new(equalizerwin->window, 550, 232, -1);
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
903
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
904 equalizerwin_create_widgets();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
905
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
906 equalizerwin_set_back_pixmap();
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
907 if (cfg.doublesize && cfg.eq_doublesize_linked)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
908 gdk_window_set_back_pixmap(equalizerwin->window,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
909 equalizerwin_bg_x2, 0);
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
910 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
911 gdk_window_set_back_pixmap(equalizerwin->window, equalizerwin_bg, 0);
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
912 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
913
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
914
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
915 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
916 equalizerwin_show(gboolean show)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
917 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
918 GtkWidget *item = gtk_item_factory_get_widget(mainwin_view_menu,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
919 "/Show Equalizer");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
920 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), show);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
921 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
922
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
923 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
924 equalizerwin_real_show(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
925 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
926 /*
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
927 * This function should only be called from the
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
928 * main menu signal handler
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
929 */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
930
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
931 gint x, y;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
932
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
933 gtk_window_get_position(GTK_WINDOW(equalizerwin), &x, &y);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
934 gtk_window_move(GTK_WINDOW(equalizerwin), x, y);
1938
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
935 if (cfg.doublesize && cfg.eq_doublesize_linked)
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
936 gtk_widget_set_size_request(equalizerwin, 550,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
937 (cfg.equalizer_shaded ? 28 : 232));
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
938 else
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
939 gtk_widget_set_size_request(equalizerwin, 275,
1d9c1026d9f8 [svn] - DoubleSize support.
nenolod
parents: 1653
diff changeset
940 (cfg.equalizer_shaded ? 14 : 116));
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
941 gdk_flush();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
942 draw_equalizer_window(TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
943 cfg.equalizer_visible = TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
944 tbutton_set_toggled(mainwin_eq, TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
945
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
946 gtk_widget_show(equalizerwin);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
947 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
948
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
949 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
950 equalizerwin_real_hide(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
951 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
952 /*
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
953 * This function should only be called from the
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
954 * main menu signal handler
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
955 */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
956 gtk_widget_hide(equalizerwin);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
957 cfg.equalizer_visible = FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
958 tbutton_set_toggled(mainwin_eq, FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
959 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
960
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
961 static EqualizerPreset *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
962 equalizerwin_find_preset(GList * list, const gchar * name)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
963 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
964 GList *node = list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
965 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
966
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
967 while (node) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
968 preset = node->data;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
969 if (!strcasecmp(preset->name, name))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
970 return preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
971 node = g_list_next(node);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
972 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
973 return NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
974 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
975
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
976 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
977 equalizerwin_write_preset_file(GList * list, const gchar * basename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
978 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
979 gchar *filename, *tmp;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
980 gint i, p;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
981 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
982 RcFile *rcfile;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
983 GList *node;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
984
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
985 rcfile = bmp_rcfile_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
986 p = 0;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
987 for (node = list; node; node = g_list_next(node)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
988 preset = node->data;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
989 tmp = g_strdup_printf("Preset%d", p++);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
990 bmp_rcfile_write_string(rcfile, "Presets", tmp, preset->name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
991 g_free(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
992 bmp_rcfile_write_float(rcfile, preset->name, "Preamp",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
993 preset->preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
994 for (i = 0; i < 10; i++) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
995 tmp = g_strdup_printf("Band%d\n", i);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
996 bmp_rcfile_write_float(rcfile, preset->name, tmp,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
997 preset->bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
998 g_free(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
999 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1000 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1001
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1002 filename = g_build_filename(bmp_paths[BMP_PATH_USER_DIR], basename, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1003 bmp_rcfile_write(rcfile, filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1004 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1005 g_free(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1006 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1007
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1008 static gboolean
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1009 equalizerwin_load_preset(GList * list, const gchar * name)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1010 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1011 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1012 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1013
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1014 if ((preset = equalizerwin_find_preset(list, name)) != NULL) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1015 eqslider_set_position(equalizerwin_preamp, preset->preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1016 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1017 eqslider_set_position(equalizerwin_bands[i], preset->bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1018 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1019 return TRUE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1020 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1021 return FALSE;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1022 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1023
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1024 static GList *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1025 equalizerwin_save_preset(GList * list, const gchar * name,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1026 const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1027 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1028 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1029 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1030
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1031 if (!(preset = equalizerwin_find_preset(list, name))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1032 preset = g_new0(EqualizerPreset, 1);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1033 preset->name = g_strdup(name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1034 list = g_list_append(list, preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1035 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1036
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1037 preset->preamp = eqslider_get_position(equalizerwin_preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1038 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1039 preset->bands[i] = eqslider_get_position(equalizerwin_bands[i]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1040
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1041 equalizerwin_write_preset_file(list, filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1042
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1043 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1044 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1045
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1046 static GList *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1047 equalizerwin_delete_preset(GList * list, gchar * name, gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1048 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1049 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1050 GList *node;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1051
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1052 if (!(preset = equalizerwin_find_preset(list, name)))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1053 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1054
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1055 if (!(node = g_list_find(list, preset)))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1056 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1057
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1058 list = g_list_remove_link(list, node);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1059 equalizer_preset_free(preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1060 g_list_free_1(node);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1061
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1062 equalizerwin_write_preset_file(list, filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1063
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1064 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1065 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1066
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1067
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1068 static GList *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1069 import_winamp_eqf(VFSFile * file)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1070 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1071 gchar header[31];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1072 gchar name[257];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1073 gchar bands[11];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1074 gint i = 0;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1075 GList *list = NULL;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1076 EqualizerPreset *preset;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1077
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1078 vfs_fread(header, 1, 31, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1079 if (!strncmp(header, "Winamp EQ library file v1.1", 27)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1080 while (vfs_fread(name, 1, 257, file)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1081 preset = equalizer_preset_new(name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1082 preset->preamp = 20.0 - ((bands[10] * 40.0) / 64);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1083
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1084 vfs_fread(bands, 1, 11, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1085
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1086 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1087 preset->bands[i] = 20.0 - ((bands[i] * 40.0) / 64);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1088
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1089 list = g_list_prepend(list, preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1090 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1091 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1092
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1093 list = g_list_reverse(list);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1094 return list;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1095 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1096
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1097 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1098 equalizerwin_read_winamp_eqf(VFSFile * file)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1099 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1100 gchar header[31];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1101 guchar bands[11];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1102 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1103
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1104 vfs_fread(header, 1, 31, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1105
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1106 if (!strncmp(header, "Winamp EQ library file v1.1", 27)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1107 /* Skip name */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1108 if (vfs_fseek(file, 257, SEEK_CUR) == -1)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1109 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1110
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1111 if (vfs_fread(bands, 1, 11, file) != 11)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1112 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1113
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1114 eqslider_set_position(equalizerwin_preamp,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1115 20.0 - ((bands[10] * 40.0) / 63.0));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1116
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1117 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1118 eqslider_set_position(equalizerwin_bands[i],
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1119 20.0 - ((bands[i] * 40.0) / 64.0));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1120 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1121
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1122 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1123 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1124
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1125 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1126 equalizerwin_read_bmp_preset(RcFile * rcfile)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1127 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1128 gfloat val;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1129 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1130
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1131 if (bmp_rcfile_read_float(rcfile, "Equalizer preset", "Preamp", &val))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1132 eqslider_set_position(equalizerwin_preamp, val);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1133 for (i = 0; i < 10; i++) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1134 gchar tmp[7];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1135 g_snprintf(tmp, sizeof(tmp), "Band%d", i);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1136 if (bmp_rcfile_read_float(rcfile, "Equalizer preset", tmp, &val))
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1137 eqslider_set_position(equalizerwin_bands[i], val);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1138 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1139 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1140 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1141
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1142 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1143 equalizerwin_save_ok(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1144 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1145 const gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1146
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1147 text = gtk_entry_get_text(GTK_ENTRY(equalizerwin_save_entry));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1148 if (strlen(text) != 0)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1149 equalizer_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1150 equalizerwin_save_preset(equalizer_presets, text, "eq.preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1151 gtk_widget_destroy(equalizerwin_save_window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1152 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1153
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1154 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1155 equalizerwin_save_select(GtkCList * clist, gint row,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1156 gint column, GdkEventButton * event, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1157 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1158 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1159
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1160 gtk_clist_get_text(clist, row, 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1161
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1162 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_entry), text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1163 if (event->type == GDK_2BUTTON_PRESS)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1164 equalizerwin_save_ok(NULL, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1165
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1166 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1167
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1168 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1169 equalizerwin_load_ok(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1170 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1171 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1172 GtkCList *clist = GTK_CLIST(data);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1173
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1174 if (clist && clist->selection) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1175 gtk_clist_get_text(clist, GPOINTER_TO_INT(clist->selection->data),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1176 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1177 equalizerwin_load_preset(equalizer_presets, text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1178 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1179 gtk_widget_destroy(equalizerwin_load_window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1180 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1181
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1182 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1183 equalizerwin_load_apply(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1184 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1185 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1186 GtkCList *clist = GTK_CLIST(data);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1187
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1188 if (clist && clist->selection) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1189 gtk_clist_get_text(clist, GPOINTER_TO_INT(clist->selection->data),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1190 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1191 equalizerwin_load_preset(equalizer_presets, text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1192 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1193 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1194
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1195
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1196 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1197 equalizerwin_load_select(GtkCList * widget, gint row,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1198 gint column, GdkEventButton * event, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1199 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1200 if (event->type == GDK_2BUTTON_PRESS)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1201 equalizerwin_load_ok(NULL, widget);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1202 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1203
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1204 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1205 equalizerwin_delete_delete(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1206 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1207 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1208 GList *list, *next;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1209 GtkCList *clist = GTK_CLIST(data);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1210
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1211 g_return_if_fail(clist != NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1212
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1213 list = clist->selection;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1214 gtk_clist_freeze(clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1215 while (list) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1216 next = g_list_next(list);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1217 gtk_clist_get_text(clist, GPOINTER_TO_INT(list->data), 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1218 equalizer_auto_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1219 equalizerwin_delete_preset(equalizer_presets, text, "eq.preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1220 gtk_clist_remove(clist, GPOINTER_TO_INT(list->data));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1221 list = next;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1222 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1223 gtk_clist_thaw(clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1224 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1225
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1226 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1227 equalizerwin_save_auto_ok(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1228 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1229 const gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1230
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1231 text = gtk_entry_get_text(GTK_ENTRY(equalizerwin_save_auto_entry));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1232 if (strlen(text) != 0)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1233 equalizer_auto_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1234 equalizerwin_save_preset(equalizer_auto_presets, text,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1235 "eq.auto_preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1236 gtk_widget_destroy(equalizerwin_save_auto_window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1237 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1238
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1239 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1240 equalizerwin_save_auto_select(GtkCList * clist, gint row,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1241 gint column,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1242 GdkEventButton * event, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1243 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1244 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1245
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1246 gtk_clist_get_text(clist, row, 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1247
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1248 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_auto_entry), text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1249 if (event->type == GDK_2BUTTON_PRESS)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1250 equalizerwin_save_auto_ok(NULL, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1251
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1252 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1253
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1254 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1255 equalizerwin_load_auto_ok(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1256 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1257 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1258 GtkCList *clist = GTK_CLIST(data);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1259
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1260 if (clist && clist->selection) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1261 gtk_clist_get_text(clist, GPOINTER_TO_INT(clist->selection->data),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1262 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1263 equalizerwin_load_preset(equalizer_auto_presets, text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1264 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1265 gtk_widget_destroy(equalizerwin_load_auto_window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1266 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1267
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1268 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1269 equalizerwin_load_auto_select(GtkWidget * widget, gint row,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1270 gint column,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1271 GdkEventButton * event, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1272 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1273 if (event->type == GDK_2BUTTON_PRESS)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1274 equalizerwin_load_auto_ok(NULL, widget);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1275 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1276
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1277 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1278 equalizerwin_delete_auto_delete(GtkWidget * widget, gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1279 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1280 gchar *text;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1281 GList *list, *next;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1282 GtkCList *clist = GTK_CLIST(data);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1283
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1284 g_return_if_fail(clist != NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1285
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1286 list = clist->selection;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1287 gtk_clist_freeze(clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1288 while (list) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1289 next = g_list_next(list);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1290 gtk_clist_get_text(clist, GPOINTER_TO_INT(list->data), 0, &text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1291 equalizer_auto_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1292 equalizerwin_delete_preset(equalizer_auto_presets, text,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1293 "eq.auto_preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1294 gtk_clist_remove(clist, GPOINTER_TO_INT(list->data));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1295 list = next;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1296 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1297 gtk_clist_thaw(clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1298 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1299
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1300
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1301 typedef void (*ResponseHandler)(const gchar *filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1302
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1303 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1304 equalizerwin_file_chooser_on_response(GtkWidget * dialog,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1305 gint response,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1306 gpointer data)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1307 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1308 GtkFileChooser *file_chooser = GTK_FILE_CHOOSER(dialog);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1309 ResponseHandler handler = (ResponseHandler) data;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1310 gchar *filename;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1311
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1312 gtk_widget_hide(dialog);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1313
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1314 switch (response)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1315 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1316 case GTK_RESPONSE_ACCEPT:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1317 filename = gtk_file_chooser_get_filename(file_chooser);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1318 handler(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1319 g_free(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1320 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1321
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1322 case GTK_RESPONSE_REJECT:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1323 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1324 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1325
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1326 gtk_widget_destroy(dialog);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1327 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1328
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1329
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1330
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1331 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1332 load_preset_file(const gchar *filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1333 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1334 RcFile *rcfile;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1335
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1336 if ((rcfile = bmp_rcfile_open(filename)) != NULL) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1337 equalizerwin_read_bmp_preset(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1338 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1339 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1340 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1341
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1342 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1343 load_winamp_file(const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1344 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1345 VFSFile *file;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1346 gchar *tmp;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1347
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1348 if (!(file = vfs_fopen(filename, "rb"))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1349 tmp = g_strconcat("Failed to load WinAmp file: ",filename,"\n",NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1350 report_error(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1351 g_free(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1352 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1353 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1354
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1355 equalizerwin_read_winamp_eqf(file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1356 vfs_fclose(file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1357 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1358
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1359 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1360 import_winamp_file(const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1361 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1362 VFSFile *file;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1363 gchar *tmp;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1364
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1365 if (!(file = vfs_fopen(filename, "rb"))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1366 tmp = g_strconcat("Failed to import WinAmp file: ",filename,"\n",NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1367 report_error(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1368 g_free(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1369 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1370 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1371
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1372 equalizer_presets = g_list_concat(equalizer_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1373 import_winamp_eqf(file));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1374 equalizerwin_write_preset_file(equalizer_presets, "eq.preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1375
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1376 vfs_fclose(file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1377 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1378
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1379 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1380 save_preset_file(const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1381 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1382 RcFile *rcfile;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1383 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1384
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1385 rcfile = bmp_rcfile_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1386 bmp_rcfile_write_float(rcfile, "Equalizer preset", "Preamp",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1387 eqslider_get_position(equalizerwin_preamp));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1388
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1389 for (i = 0; i < 10; i++) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1390 gchar tmp[7];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1391 g_snprintf(tmp, sizeof(tmp), "Band%d", i);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1392 bmp_rcfile_write_float(rcfile, "Equalizer preset", tmp,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1393 eqslider_get_position(equalizerwin_bands[i]));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1394 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1395
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1396 bmp_rcfile_write(rcfile, filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1397 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1398 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1399
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1400 static void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1401 save_winamp_file(const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1402 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1403 VFSFile *file;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1404
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1405 gchar name[257];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1406 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1407 guchar bands[11];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1408 gchar *tmp;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1409
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1410 if (!(file = vfs_fopen(filename, "wb"))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1411 tmp = g_strconcat("Failed to save WinAmp file: ",filename,"\n",NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1412 report_error(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1413 g_free(tmp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1414 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1415 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1416
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1417 vfs_fwrite("Winamp EQ library file v1.1\x1a!--", 1, 31, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1418
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1419 memset(name, 0, 257);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1420 strcpy(name, "Entry1");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1421 vfs_fwrite(name, 1, 257, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1422
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1423 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1424 bands[i] = 63 - (((eqslider_get_position(equalizerwin_bands[i]) + 20) * 63) / 40);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1425 bands[10] = 63 - (((eqslider_get_position(equalizerwin_preamp) + 20) * 63) / 40);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1426 vfs_fwrite(bands, 1, 11, file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1427
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1428 vfs_fclose(file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1429 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1430
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1431 static gint
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1432 equalizerwin_list_sort_func(GtkCList * clist,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1433 gconstpointer ptr1, gconstpointer ptr2)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1434 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1435 GtkCListRow *row1 = (GtkCListRow *) ptr1;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1436 GtkCListRow *row2 = (GtkCListRow *) ptr2;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1437
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1438 return strcasecmp(GTK_CELL_TEXT(row1->cell[clist->sort_column])->text,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1439 GTK_CELL_TEXT(row2->cell[clist->sort_column])->text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1440 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1441
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1442
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1443 static GtkListStore *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1444 preset_list_store_new(GList * preset)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1445 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1446 GtkListStore *store;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1447 GtkTreeIter iter;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1448 GList *node;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1449
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1450 store = gtk_list_store_new(PRESET_VIEW_N_COLS, G_TYPE_STRING);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1451
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1452 for (node = preset; node; node = g_list_next(node)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1453 gtk_list_store_append(store, &iter);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1454 gtk_list_store_set(store, &iter,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1455 PRESET_VIEW_COL_NAME,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1456 &((EqualizerPreset *) node->data)->name, -1);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1457 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1458
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1459 return store;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1460 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1461
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1462
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1463 GtkWidget *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1464 preset_view_new(GList * preset)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1465 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1466 GtkWidget *treeview;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1467 GtkTreeModel *model;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1468 GtkTreeViewColumn *column;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1469 GtkCellRenderer *renderer;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1470 GtkListStore *store;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1471
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1472 store = preset_list_store_new(preset);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1473
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1474 model = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(store));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1475 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1476 PRESET_VIEW_COL_NAME,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1477 GTK_SORT_ASCENDING);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1478
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1479 treeview = gtk_tree_view_new_with_model(model);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1480 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview), TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1481 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1482
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1483 renderer = gtk_cell_renderer_text_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1484 column = gtk_tree_view_column_new_with_attributes(_("Preset"), renderer,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1485 "text",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1486 PRESET_VIEW_COL_NAME,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1487 NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1488 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1489
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1490 return treeview;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1491 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1492
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1493
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1494 static GtkWidget *
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1495 equalizerwin_create_list_window(GList * preset_list,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1496 const gchar * title,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1497 GtkWidget ** window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1498 GtkSelectionMode sel_mode,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1499 GtkWidget ** entry,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1500 const gchar * btn2_stock_name,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1501 const gchar * btn3_stock_name,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1502 const gchar * btn1_stock_name,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1503 GCallback btn2_func,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1504 GCallback btn3_func,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1505 GCallback select_row_func)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1506 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1507 GtkWidget *vbox, *scrolled_window, *bbox, *btn1, *btn2, *btn3, *clist;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1508 gchar *preset_text[1];
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1509 GList *node;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1510
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1511 *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1512 gtk_window_set_title(GTK_WINDOW(*window), title);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1513 gtk_window_set_type_hint(GTK_WINDOW(*window), GDK_WINDOW_TYPE_HINT_DIALOG);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1514 gtk_window_set_default_size(GTK_WINDOW(*window), 350, 300);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1515 gtk_window_set_position(GTK_WINDOW(*window), GTK_WIN_POS_CENTER);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1516 gtk_container_set_border_width(GTK_CONTAINER(*window), 10);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1517 gtk_window_set_transient_for(GTK_WINDOW(*window),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1518 GTK_WINDOW(equalizerwin));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1519 g_signal_connect(*window, "destroy",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1520 G_CALLBACK(gtk_widget_destroyed), window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1521
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1522 vbox = gtk_vbox_new(FALSE, 10);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1523 gtk_container_add(GTK_CONTAINER(*window), vbox);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1524
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1525 scrolled_window = gtk_scrolled_window_new(NULL, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1526 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1527 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1528
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1529 preset_text[0] = _("Presets");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1530 clist = gtk_clist_new_with_titles(1, preset_text);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1531 if (select_row_func)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1532 g_signal_connect(clist, "select_row",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1533 G_CALLBACK(select_row_func), NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1534 gtk_clist_column_titles_passive(GTK_CLIST(clist));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1535 gtk_clist_set_selection_mode(GTK_CLIST(clist), sel_mode);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1536
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1537 for (node = preset_list; node; node = g_list_next(node)) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1538 gtk_clist_append(GTK_CLIST(clist),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1539 &((EqualizerPreset *) node->data)->name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1540 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1541 gtk_clist_set_compare_func(GTK_CLIST(clist), equalizerwin_list_sort_func);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1542 gtk_clist_sort(GTK_CLIST(clist));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1543
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1544 gtk_container_add(GTK_CONTAINER(scrolled_window), clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1545 gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1546
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1547 if (entry) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1548 *entry = gtk_entry_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1549 g_signal_connect(*entry, "activate", btn2_func, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1550 gtk_box_pack_start(GTK_BOX(vbox), *entry, FALSE, FALSE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1551 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1552
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1553 bbox = gtk_hbutton_box_new();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1554 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1555 gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1556 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1557
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1558 btn1 = gtk_button_new_from_stock(btn1_stock_name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1559 g_signal_connect_swapped(btn1, "clicked",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1560 G_CALLBACK(gtk_widget_destroy),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1561 GTK_OBJECT(*window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1562 gtk_box_pack_start(GTK_BOX(bbox), btn1, TRUE, TRUE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1563
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1564 if (btn3_stock_name) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1565 btn3 = gtk_button_new_from_stock(btn3_stock_name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1566 g_signal_connect(btn3, "clicked", G_CALLBACK(btn3_func), clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1567 gtk_box_pack_start(GTK_BOX(bbox), btn3, TRUE, TRUE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1568 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1569
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1570 btn2 = gtk_button_new_from_stock(btn2_stock_name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1571 g_signal_connect(btn2, "clicked", G_CALLBACK(btn2_func), clist);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1572 GTK_WIDGET_SET_FLAGS(btn2, GTK_CAN_DEFAULT);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1573
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1574 gtk_box_pack_start(GTK_BOX(bbox), btn2, TRUE, TRUE, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1575
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1576 gtk_widget_grab_default(btn2);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1577
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1578
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1579 gtk_widget_show_all(*window);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1580
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1581 return *window;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1582 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1583
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1584 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1585 equalizerwin_presets_menu_cb(gpointer cb_data, guint action, GtkWidget * w)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1586 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1587 GtkWidget *dialog;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1588
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1589 switch (action) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1590 case EQUALIZER_PRESETS_LOAD_PRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1591 if (!equalizerwin_load_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1592 equalizerwin_create_list_window(equalizer_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1593 _("Load preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1594 &equalizerwin_load_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1595 GTK_SELECTION_SINGLE, NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1596 GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_CANCEL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1597 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1598 (equalizerwin_load_ok),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1599 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1600 (equalizerwin_load_apply),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1601 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1602 (equalizerwin_load_select));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1603 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1604 gtk_window_present(GTK_WINDOW(equalizerwin_load_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1605 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1606 case EQUALIZER_PRESETS_LOAD_AUTOPRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1607 if (!equalizerwin_load_auto_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1608 equalizerwin_create_list_window(equalizer_auto_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1609 _("Load auto-preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1610 &equalizerwin_load_auto_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1611 GTK_SELECTION_SINGLE, NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1612 GTK_STOCK_OK, NULL, GTK_STOCK_CANCEL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1613 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1614 (equalizerwin_load_auto_ok),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1615 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1616 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1617 (equalizerwin_load_auto_select));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1618 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1619 gtk_window_present(GTK_WINDOW(equalizerwin_load_auto_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1620 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1621 case EQUALIZER_PRESETS_LOAD_DEFAULT:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1622 equalizerwin_load_preset(equalizer_presets, "Default");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1623 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1624 case EQUALIZER_PRESETS_LOAD_ZERO:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1625 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1626 gint i;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1627
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1628 eqslider_set_position(equalizerwin_preamp, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1629 for (i = 0; i < 10; i++)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1630 eqslider_set_position(equalizerwin_bands[i], 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1631 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1632 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1633 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1634 case EQUALIZER_PRESETS_LOAD_FROM_FILE:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1635 dialog = make_filebrowser(_("Load equalizer preset"), FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1636 g_signal_connect(dialog , "response",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1637 G_CALLBACK(equalizerwin_file_chooser_on_response),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1638 load_preset_file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1639 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1640 case EQUALIZER_PRESETS_LOAD_FROM_WINAMPFILE:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1641 dialog = make_filebrowser(_("Load equalizer preset"), FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1642 g_signal_connect(dialog, "response",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1643 G_CALLBACK(equalizerwin_file_chooser_on_response),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1644 load_winamp_file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1645 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1646
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1647 case EQUALIZER_PRESETS_IMPORT_WINAMPFILE:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1648 dialog = make_filebrowser(_("Load equalizer preset"), FALSE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1649 g_signal_connect(dialog, "response",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1650 G_CALLBACK(equalizerwin_file_chooser_on_response),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1651 import_winamp_file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1652 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1653
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1654 case EQUALIZER_PRESETS_SAVE_PRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1655 if (!equalizerwin_save_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1656 equalizerwin_create_list_window(equalizer_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1657 _("Save preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1658 &equalizerwin_save_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1659 GTK_SELECTION_SINGLE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1660 &equalizerwin_save_entry,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1661 GTK_STOCK_OK, NULL, GTK_STOCK_CANCEL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1662 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1663 (equalizerwin_save_ok),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1664 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1665 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1666 (equalizerwin_save_select));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1667 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1668 gtk_window_present(GTK_WINDOW(equalizerwin_save_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1669 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1670
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1671 case EQUALIZER_PRESETS_SAVE_AUTOPRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1672 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1673 gchar *name;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1674
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1675 if (!equalizerwin_save_auto_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1676 equalizerwin_create_list_window(equalizer_auto_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1677 _("Save auto-preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1678 &equalizerwin_save_auto_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1679 GTK_SELECTION_SINGLE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1680 &equalizerwin_save_auto_entry,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1681 GTK_STOCK_OK,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1682 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1683 GTK_STOCK_CANCEL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1684 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1685 (equalizerwin_save_auto_ok),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1686 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1687 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1688 (equalizerwin_save_auto_select));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1689 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1690 gtk_window_present(GTK_WINDOW(equalizerwin_save_auto_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1691
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1692 name = playlist_get_filename(playlist_get_position());
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1693
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1694 if (name) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1695 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_auto_entry),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1696 g_basename(name));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1697 g_free(name);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1698 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1699 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1700 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1701
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1702 case EQUALIZER_PRESETS_SAVE_DEFAULT:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1703 equalizer_presets =
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1704 equalizerwin_save_preset(equalizer_presets, "Default",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1705 "eq.preset");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1706 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1707
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1708 case EQUALIZER_PRESETS_SAVE_TO_FILE:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1709 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1710 gchar *songname;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1711
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1712 dialog = make_filebrowser(_("Save equalizer preset"), TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1713 g_signal_connect(dialog, "response",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1714 G_CALLBACK(equalizerwin_file_chooser_on_response),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1715 save_preset_file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1716
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1717 songname = playlist_get_filename(playlist_get_position());
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1718 if (songname) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1719 gchar *eqname = g_strdup_printf("%s.%s", songname,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1720 cfg.eqpreset_extension);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1721 g_free(songname);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1722 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1723 eqname);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1724 g_free(eqname);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1725 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1726
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1727 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1728 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1729
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1730 case EQUALIZER_PRESETS_SAVE_TO_WINAMPFILE:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1731 dialog = make_filebrowser(_("Save equalizer preset"), TRUE);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1732 g_signal_connect(dialog, "response",
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1733 G_CALLBACK(equalizerwin_file_chooser_on_response),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1734 save_winamp_file);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1735 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1736
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1737 case EQUALIZER_PRESETS_DELETE_PRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1738 if (!equalizerwin_delete_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1739 equalizerwin_create_list_window(equalizer_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1740 _("Delete preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1741 &equalizerwin_delete_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1742 GTK_SELECTION_EXTENDED, NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1743 GTK_STOCK_DELETE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1744 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1745 GTK_STOCK_CLOSE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1746 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1747 (equalizerwin_delete_delete),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1748 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1749 NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1750 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1751 gtk_window_present(GTK_WINDOW(equalizerwin_delete_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1752
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1753 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1754
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1755 case EQUALIZER_PRESETS_DELETE_AUTOPRESET:
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1756 if (!equalizerwin_delete_auto_window)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1757 equalizerwin_create_list_window(equalizer_auto_presets,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1758 _("Delete auto-preset"),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1759 &equalizerwin_delete_auto_window,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1760 GTK_SELECTION_EXTENDED, NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1761 GTK_STOCK_DELETE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1762 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1763 GTK_STOCK_CLOSE,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1764 G_CALLBACK
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1765 (equalizerwin_delete_auto_delete),
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1766 NULL,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1767 NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1768 else
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1769 gtk_window_present(GTK_WINDOW(equalizerwin_delete_auto_window));
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1770
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1771 break;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1772 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1773 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1774
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1775 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1776 equalizerwin_load_auto_preset(const gchar * filename)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1777 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1778 gchar *presetfilename, *directory;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1779 RcFile *rcfile;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1780
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1781 g_return_if_fail(filename != NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1782
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1783 if (!cfg.equalizer_autoload)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1784 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1785
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1786 presetfilename = g_strconcat(filename, ".", cfg.eqpreset_extension, NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1787
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1788 /* First try to find a per file preset file */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1789 if (strlen(cfg.eqpreset_extension) > 0 &&
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1790 (rcfile = bmp_rcfile_open(presetfilename)) != NULL) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1791 g_free(presetfilename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1792 equalizerwin_read_bmp_preset(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1793 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1794 return;
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1795 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1796
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1797 g_free(presetfilename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1798
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1799 directory = g_path_get_dirname(filename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1800 presetfilename = g_build_filename(directory, cfg.eqpreset_default_file,
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1801 NULL);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1802 g_free(directory);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1803
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1804 /* Try to find a per directory preset file */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1805 if (strlen(cfg.eqpreset_default_file) > 0 &&
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1806 (rcfile = bmp_rcfile_open(presetfilename)) != NULL) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1807 equalizerwin_read_bmp_preset(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1808 bmp_rcfile_free(rcfile);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1809 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1810 else if (!equalizerwin_load_preset
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1811 (equalizer_auto_presets, g_basename(filename))) {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1812 /* Fall back to the oldstyle auto presets */
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1813 equalizerwin_load_preset(equalizer_presets, "Default");
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1814 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1815
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1816 g_free(presetfilename);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1817 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1818
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1819 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1820 equalizerwin_set_preamp(gfloat preamp)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1821 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1822 eqslider_set_position(equalizerwin_preamp, preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1823 equalizerwin_eq_changed();
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1824 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1825
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1826 void
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1827 equalizerwin_set_band(gint band, gfloat value)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1828 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1829 g_return_if_fail(band >= 0 && band < 10);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1830 eqslider_set_position(equalizerwin_bands[band], value);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1831 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1832
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1833 gfloat
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1834 equalizerwin_get_preamp(void)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1835 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1836 return eqslider_get_position(equalizerwin_preamp);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1837 }
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1838
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1839 gfloat
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1840 equalizerwin_get_band(gint band)
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1841 {
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1842 g_return_val_if_fail(band >= 0 && band < 10, 0);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1843 return eqslider_get_position(equalizerwin_bands[band]);
a6e6d3500c13 [svn] - revert back to r2216
nenolod
parents:
diff changeset
1844 }