annotate Plugins/Visualization/libvisual-proxy/lv_bmp_config.c @ 395:0923a41170bb trunk

[svn] Add S3M support back after receiving a convincing testcase.
author chainsaw
date Sat, 07 Jan 2006 06:18:13 -0800
parents 244cc47a7ae3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1 #include <stdlib.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
2 #include <string.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
3 #include <gtk/gtk.h>
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
4 #include <libaudacious/configdb.h>
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
5 #include <libaudacious/util.h>
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
6 #include <libvisual/libvisual.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
7 #include <glib/gi18n.h>
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
8
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
9 #include "config.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
10
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
11 #include "lv_bmp_config.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
12 #include "config_gui.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
13
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
14 #define CONFIG_DEFAULT_ACTOR_PLUGIN "infinite"
321
bd81a73eadff [svn] Okay, braindead configuration handling. Disabling config button for now.
chainsaw
parents: 318
diff changeset
15 #define CONFIG_DEFAULT_INPUT_PLUGIN "alsa"
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
16 #define CONFIG_DEFAULT_MORPH_PLUGIN "alphablend"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
17
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
18 static Options default_options = { NULL, NULL, NULL, 320, 200, 30, 24, FALSE, FALSE, FALSE, TRUE, FALSE };
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
19 static Options options = { NULL, NULL, NULL, -1, -1, -1, -1, FALSE, FALSE, FALSE, TRUE, FALSE };
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
20 static ConfigWin *config_win = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
21
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
22 static gboolean options_loaded = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
23 static gboolean fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
24 static gboolean gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
25 static gboolean non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
26 static gboolean all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
27 static gboolean random_morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
28 static int fps;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
29
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
30 static gchar *actor_plugin_buffer = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
31
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
32 /* Table of GtkListItem's */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
33 static GHashTable *actor_plugin_table = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
34
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
35 /* List of gboolean's */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
36 static GHashTable *actor_plugin_enable_table = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
37
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
38 /* Lists of VisPluginRef's */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
39 static GSList *actor_plugins_gl = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
40 static GSList *actor_plugins_nongl = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
41
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
42 static VisPluginRef *current_actor = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
43
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
44 static char *morph_plugin = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
45 static char *morph_plugin_buffer = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
46 static GSList *morph_plugins_list = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
47
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
48 static void sync_options (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
49
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
50 static void config_win_load_actor_plugin_gl_list (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
51 static void config_win_load_actor_plugin_nongl_list (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
52
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
53 static int config_win_load_morph_plugin_list (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
54
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
55 static int load_actor_plugin_list (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
56 static int load_morph_plugin_list (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
57
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
58 static void load_actor_plugin_enable_table (ConfigDb *db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
59
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
60 static void remove_boolean (gpointer key, gpointer value, gpointer data);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
62 static void config_win_set_defaults (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
63 static void config_win_connect_callbacks (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
64 static void config_visual_initialize (void);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
65
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
66 static gboolean read_config_db (ConfigDb *db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
67
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
68 static void dummy (GtkWidget *widget, gpointer data);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
69
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
70 Options *lv_bmp_config_open ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
71 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
72 actor_plugin_buffer = g_malloc0 (OPTIONS_MAX_NAME_LEN);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
73 options.last_plugin = actor_plugin_buffer;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
74 morph_plugin_buffer = g_malloc0 (OPTIONS_MAX_NAME_LEN);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
75
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
76 config_visual_initialize ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
77
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
78 srand (time(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
79
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
80 load_actor_plugin_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
81
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
82 load_morph_plugin_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
83
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
84 return &options;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
85 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
86
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
87 int lv_bmp_config_close ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
88 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
89 if (actor_plugin_buffer != NULL)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
90 g_free (actor_plugin_buffer);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
91 if (morph_plugin_buffer != NULL)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
92 g_free (morph_plugin_buffer);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
93
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
94 if (actor_plugin_table) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
95 g_hash_table_destroy (actor_plugin_table);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
96 actor_plugin_table = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
97 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
98 if (actor_plugin_enable_table) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
99 g_hash_table_foreach (actor_plugin_enable_table, remove_boolean, NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
100 g_hash_table_destroy (actor_plugin_enable_table);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
101 actor_plugin_enable_table = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
102 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
103
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
104 if (actor_plugins_gl) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
105 g_slist_free (actor_plugins_gl);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
106 actor_plugins_gl = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
107 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
108 if (actor_plugins_nongl) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
109 g_slist_free (actor_plugins_nongl);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
110 actor_plugins_nongl = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
111 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
112 if (morph_plugins_list) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
113 g_slist_free (morph_plugins_list);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
114 morph_plugins_list = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
115 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
116
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
117 options_loaded = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
118
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
119 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
120 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
121
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
122 int lv_bmp_config_load_prefs ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
123 {
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
124 ConfigDb *db;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
125 gboolean errors;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
126 GtkWidget *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
127
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
128 db = bmp_cfg_db_open();
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
129
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
130 errors = FALSE;
321
bd81a73eadff [svn] Okay, braindead configuration handling. Disabling config button for now.
chainsaw
parents: 318
diff changeset
131 errors = read_config_db (db);
bd81a73eadff [svn] Okay, braindead configuration handling. Disabling config button for now.
chainsaw
parents: 318
diff changeset
132 if (errors)
bd81a73eadff [svn] Okay, braindead configuration handling. Disabling config button for now.
chainsaw
parents: 318
diff changeset
133 printf("Error reported in config read\n");
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
134
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
135 load_actor_plugin_enable_table (db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
136
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
137 bmp_cfg_db_close(db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
138
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
139 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
140 * Set our local copies
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
141 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
142 if (!visual_morph_valid_by_name (morph_plugin_buffer)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
143 msg = xmms_show_message (PACKAGE_NAME,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
144 _("The morph plugin specified on the config\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
145 "file is not a valid morph plugin.\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
146 "We will use "CONFIG_DEFAULT_MORPH_PLUGIN
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
147 " morph plugin instead.\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
148 "If you want another one, please choose it\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
149 "on the configure dialog."),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
150 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
151 gtk_widget_show (msg);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
152 strcpy (morph_plugin_buffer, CONFIG_DEFAULT_MORPH_PLUGIN);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
153 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
154 options.morph_plugin = morph_plugin_buffer;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
155 morph_plugin = morph_plugin_buffer;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
156 random_morph = options.random_morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
157
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
158 fullscreen = options.fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
159 fps = options.fps;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
160 gl_plugins_only = options.gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
161 non_gl_plugins_only = options.non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
162 all_plugins_enabled = options.all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
163
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
164 if (gl_plugins_only)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
165 visual_log (VISUAL_LOG_INFO, _("GL plugins only"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
166 else if (non_gl_plugins_only)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
167 visual_log (VISUAL_LOG_INFO, _("non GL plugins only"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
168 else if (all_plugins_enabled)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
169 visual_log (VISUAL_LOG_INFO, _("All plugins enabled"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
170 else
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
171 visual_log (VISUAL_LOG_WARNING, "Cannot determine which kind of plugin to show");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
172
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
173 if (errors) {
321
bd81a73eadff [svn] Okay, braindead configuration handling. Disabling config button for now.
chainsaw
parents: 318
diff changeset
174 visual_log (VISUAL_LOG_INFO, _("LibVisual: configuration is missing or corrupt, saving defaults"));
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
175 lv_bmp_config_save_prefs ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
176 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
177
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
178 options_loaded = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
179
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
180 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
181 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
182
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
183 static void save_actor_enable_state (gpointer data, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
184 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
185 VisPluginRef *actor;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
186 ConfigDb *db;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
187 gboolean *enable;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
188
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
189 actor = data;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
190 db = user_data;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
191
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
192 visual_log_return_if_fail (actor != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
193 visual_log_return_if_fail (actor->info != NULL);
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
194 visual_log_return_if_fail (db != NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
195
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
196 enable = g_hash_table_lookup (actor_plugin_enable_table, actor->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
197 if (!enable) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
198 visual_log (VISUAL_LOG_DEBUG, "enable == NULL for %s", actor->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
199 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
200 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
201 bmp_cfg_db_set_bool (db, "libvisual", actor->info->plugname, *enable);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
202 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
203
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
204 int lv_bmp_config_save_prefs ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
205 {
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
206 ConfigDb *db;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
207
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
208 db = bmp_cfg_db_open();
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
209
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
210 bmp_cfg_db_set_string (db, "libvisual", "version", VERSION);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
211
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
212 if (options.last_plugin != NULL && (strlen(options.last_plugin) > 0))
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
213 bmp_cfg_db_set_string (db, "libvisual", "last_plugin", options.last_plugin);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
214 else
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
215 bmp_cfg_db_set_string (db, "libvisual", "last_plugin", CONFIG_DEFAULT_ACTOR_PLUGIN);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
216
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
217 if (options.morph_plugin != NULL && (strlen(options.morph_plugin) > 0))
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
218 bmp_cfg_db_set_string (db, "libvisual", "morph_plugin", options.morph_plugin);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
219 else
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
220 bmp_cfg_db_set_string (db, "libvisual", "morph_plugin", CONFIG_DEFAULT_MORPH_PLUGIN);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
221 bmp_cfg_db_set_bool (db, "libvisual", "random_morph", options.random_morph);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
222
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
223 bmp_cfg_db_set_int (db, "libvisual", "width", options.width);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
224 bmp_cfg_db_set_int (db, "libvisual", "height", options.height);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
225 bmp_cfg_db_set_int (db, "libvisual", "color_depth", options.depth);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
226 bmp_cfg_db_set_int (db, "libvisual", "fps", options.fps);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
227 bmp_cfg_db_set_bool (db, "libvisual", "fullscreen", options.fullscreen);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
228 if (options.gl_plugins_only)
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
229 bmp_cfg_db_set_string (db, "libvisual", "enabled_plugins", "gl_only");
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
230 else if (options.non_gl_plugins_only)
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
231 bmp_cfg_db_set_string (db, "libvisual", "enabled_plugins", "non_gl_only");
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
232 else if (options.all_plugins_enabled)
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
233 bmp_cfg_db_set_string (db, "libvisual", "enabled_plugins", "all");
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
234 else
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
235 g_warning ("Inconsistency on config module");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
236
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
237 visual_log_return_val_if_fail (actor_plugins_gl != NULL, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
238
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
239 g_slist_foreach (actor_plugins_gl, save_actor_enable_state, db);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
240 g_slist_foreach (actor_plugins_nongl, save_actor_enable_state, db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
241
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
242 bmp_cfg_db_close(db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
243
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
244 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
245 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
246
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
247 void lv_bmp_config_toggle_fullscreen (void)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
248 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
249 fullscreen = !fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
250 options.fullscreen = !options.fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
251 if (config_win != NULL)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
252 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_fullscreen),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
253 fullscreen);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
254 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
255
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
256 char *lv_bmp_config_get_prev_actor (void)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
257 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
258 const gchar *prev_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
259 gboolean *plugin_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
260 int round;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
261
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
262 round = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
263 prev_plugin = options.last_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
264 do {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
265 prev_plugin = visual_actor_get_prev_by_name (prev_plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
266 if (!prev_plugin) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
267 round++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
268 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
269 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
270 plugin_enabled = g_hash_table_lookup (actor_plugin_enable_table, prev_plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
271 if (!plugin_enabled)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
272 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
273 if (*plugin_enabled)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
274 return prev_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
275 } while (round < 2);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
276
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
277 return NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
278 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
279
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
280 char *lv_bmp_config_get_next_actor (void)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
281 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
282 const gchar *next_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
283 gboolean *plugin_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
284 int round;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
285
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
286 round = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
287 next_plugin = options.last_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
288 do {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
289 next_plugin = visual_actor_get_next_by_name (next_plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
290 if (!next_plugin) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
291 round++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
292 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
293 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
294 plugin_enabled = g_hash_table_lookup (actor_plugin_enable_table, next_plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
295 if (!plugin_enabled)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
296 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
297 if (*plugin_enabled)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
298 return next_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
299 } while (round < 2);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
300
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
301 return NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
302 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
303
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
304 void lv_bmp_config_set_current_actor (char *name)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
305 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
306 visual_log_return_if_fail (name != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
307
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
308 options.last_plugin = name;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
309 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
310
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
311 char *lv_bmp_config_morph_plugin (void)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
312 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
313 GSList *l;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
314 int i, pos;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
315
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
316 visual_log_return_val_if_fail (g_slist_length (morph_plugins_list) > 0, NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
317
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
318 if (random_morph) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
319 pos = (rand () % (g_slist_length (morph_plugins_list)));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
320 l = morph_plugins_list;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
321 for (i = 0; i < pos; i++)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
322 l = g_slist_next(l);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
323 return ((char*)l->data);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
324 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
325 return options.morph_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
326 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
327 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
328
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
329 void lv_bmp_config_window ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
330 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
331 if (config_win != NULL) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
332 gtk_widget_grab_default (config_win->button_cancel);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
333 gtk_widget_show (config_win->window_main);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
334 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
335 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
336
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
337 config_visual_initialize ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
338
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
339 if (!options_loaded) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
340 lv_bmp_config_open ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
341 lv_bmp_config_load_prefs ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
342 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
343
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
344 config_win = lv_bmp_config_gui_new ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
345
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
346 if (options_loaded) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
347 gtk_spin_button_set_value (GTK_SPIN_BUTTON(config_win->spinbutton_fps), options.fps);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
348 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_fullscreen),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
349 options.fullscreen);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
350 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlygl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
351 options.gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
352 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlynongl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
353 options.non_gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
354 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_all_plugins),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
355 options.all_plugins_enabled);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
356 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_morph_random),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
357 options.random_morph);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
358
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
359 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
360 config_win_set_defaults ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
361 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
362
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
363 config_win_connect_callbacks ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
364
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
365 gtk_widget_grab_default (config_win->button_cancel);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
366
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
367 if (options.all_plugins_enabled || options.non_gl_plugins_only)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
368 config_win_load_actor_plugin_nongl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
369 if (options.all_plugins_enabled || options.gl_plugins_only)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
370 config_win_load_actor_plugin_gl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
371
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
372 config_win_load_morph_plugin_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
373
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
374 gtk_widget_show (config_win->window_main);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
375 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
376
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
377 static void on_checkbutton_fullscreen_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
378 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
379 fullscreen = !fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
380 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
381
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
382 static void on_radiobutton_opengl_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
383 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
384 gl_plugins_only = !gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
385
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
386 gtk_list_clear_items (GTK_LIST(config_win->list_vis_plugins), 0, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
387 config_win_load_actor_plugin_gl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
388 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
389
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
390 static void on_radiobutton_non_opengl_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
391 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
392 non_gl_plugins_only = !non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
393
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
394 gtk_list_clear_items (GTK_LIST(config_win->list_vis_plugins), 0, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
395 config_win_load_actor_plugin_nongl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
396 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
397
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
398 static void on_radiobutton_all_plugins_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
399 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
400 all_plugins_enabled = !all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
401
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
402 gtk_list_clear_items (GTK_LIST(config_win->list_vis_plugins), 0, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
403 config_win_load_actor_plugin_gl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
404 config_win_load_actor_plugin_nongl_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
405 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
406
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
407 static void on_spinbutton_fps_changed (GtkEditable *editable, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
408 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
409 gchar *buffer;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
410
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
411 buffer = gtk_editable_get_chars (editable, (gint) 0, (gint) -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
412 fps = atoi (buffer);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
413 g_free (buffer);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
414 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
415
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
416 static void on_button_ok_clicked (GtkButton *button, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
417 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
418 sync_options ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
419 lv_bmp_config_save_prefs ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
420 gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET(button)));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
421 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
422
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
423 static void on_button_apply_clicked (GtkButton *button, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
424 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
425 sync_options ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
426 lv_bmp_config_save_prefs ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
427 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
428
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
429
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
430 static void on_button_cancel_clicked (GtkButton *button, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
431 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
432 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
433 * Restore original values
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
434 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
435 if (options_loaded) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
436 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_fullscreen),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
437 options.fullscreen);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
438 gtk_spin_button_set_value (GTK_SPIN_BUTTON(config_win->spinbutton_fps), options.fps);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
439 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlygl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
440 options.gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
441 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlynongl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
442 options.non_gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
443 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_all_plugins),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
444 options.all_plugins_enabled);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
445 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_morph_random),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
446 options.random_morph);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
447
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
448 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
449 config_win_set_defaults ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
450 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
451
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
452 gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET(button)));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
453 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
454
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
455 static void sync_options ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
456 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
457 options.fullscreen = fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
458 options.fps = fps;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
459 options.gl_plugins_only = gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
460 options.non_gl_plugins_only = non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
461 options.all_plugins_enabled = all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
462 options.morph_plugin = morph_plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
463 options.random_morph = random_morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
464 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
465
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
466 static void on_checkbutton_vis_plugin_toggled (GtkToggleButton *togglebutton, gpointer user_data);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
467
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
468 static void on_actor_plugin_selected (GtkListItem *item, VisPluginRef *actor)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
469 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
470 gboolean *enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
471
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
472 visual_log_return_if_fail (actor != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
473 visual_log_return_if_fail (actor->info != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
474
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
475 current_actor = actor;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
476 enabled = g_hash_table_lookup (actor_plugin_enable_table, actor->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
477 visual_log_return_if_fail (enabled != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
478
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
479 gtk_signal_disconnect_by_func (GTK_OBJECT (config_win->checkbutton_vis_plugin),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
480 GTK_SIGNAL_FUNC(on_checkbutton_vis_plugin_toggled), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
481
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
482 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_vis_plugin), *enabled);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
483
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
484 gtk_signal_connect (GTK_OBJECT (config_win->checkbutton_vis_plugin), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
485 GTK_SIGNAL_FUNC (on_checkbutton_vis_plugin_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
486 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
487 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
488
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
489 static void on_checkbutton_vis_plugin_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
490 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
491 GtkWidget *item;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
492 GList *items = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
493 gint pos;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
494 gchar *name;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
495 gchar *plugname;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
496 gboolean *enable;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
497
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
498 if (!current_actor)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
499 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
500
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
501 plugname = current_actor->info->plugname;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
502 if (gtk_toggle_button_get_active (togglebutton)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
503 /* We are enabling the selected actor */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
504 item = g_hash_table_lookup (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
505 g_hash_table_remove (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
506
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
507 /* Drop the item from the list, after save his position */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
508 pos = gtk_list_child_position (GTK_LIST(config_win->list_vis_plugins), item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
509 items = g_list_append (items, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
510 gtk_list_remove_items (GTK_LIST(config_win->list_vis_plugins), items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
511 g_list_free (items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
512
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
513 /* Create a new item marked as enabled */
375
244cc47a7ae3 [svn] We have no choice but to continue as planned. Deploy the sentinels!
chainsaw
parents: 321
diff changeset
514 name = g_strconcat (current_actor->info->name, _(" (enabled)"), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
515 item = gtk_list_item_new_with_label (name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
516 g_free (name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
517 /*gtk_list_select_item (GTK_LIST(config_win->list_vis_plugins), pos);*/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
518 gtk_widget_show (item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
519 gtk_signal_connect (GTK_OBJECT(item), "select",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
520 GTK_SIGNAL_FUNC(on_actor_plugin_selected),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
521 (gpointer) current_actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
522
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
523 /* Insert the new item */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
524 items = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
525 items = g_list_append (items, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
526 gtk_list_insert_items (GTK_LIST(config_win->list_vis_plugins), items, pos);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
527
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
528 g_hash_table_insert (actor_plugin_table, plugname, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
529
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
530 /* Mark it as enabled */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
531 enable = g_hash_table_lookup (actor_plugin_enable_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
532 visual_log_return_if_fail (enable != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
533 *enable = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
534 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
535 item = g_hash_table_lookup (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
536 g_hash_table_remove (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
537
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
538 /* Drop the item from the list, after save his position */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
539 pos = gtk_list_child_position (GTK_LIST(config_win->list_vis_plugins), item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
540 items = g_list_append (items, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
541 gtk_list_remove_items (GTK_LIST(config_win->list_vis_plugins), items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
542 g_list_free (items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
543
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
544 /* Create a new item marked as enabled */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
545 item = gtk_list_item_new_with_label (current_actor->info->name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
546 /*gtk_list_select_item (GTK_LIST(config_win->list_vis_plugins), pos);*/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
547 gtk_widget_show (item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
548 gtk_signal_connect (GTK_OBJECT(item), "select",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
549 GTK_SIGNAL_FUNC(on_actor_plugin_selected),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
550 (gpointer) current_actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
551
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
552 /* Insert the new item */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
553 items = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
554 items = g_list_append (items, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
555 gtk_list_insert_items (GTK_LIST(config_win->list_vis_plugins), items, pos);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
556
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
557 g_hash_table_insert (actor_plugin_table, plugname, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
558
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
559 /* Mark it as disabled */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
560 enable = g_hash_table_lookup (actor_plugin_enable_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
561 visual_log_return_if_fail (enable != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
562 *enable = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
563 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
564 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
565
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
566 static void on_button_vis_plugin_about_clicked (GtkButton *button, gpointer data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
567 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
568 GtkWidget *msgwin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
569 gchar *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
570
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
571 if (!current_actor)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
572 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
573
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
574 visual_log_return_if_fail (current_actor->info != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
575
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
576 msg = g_strconcat (current_actor->info->name, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
577 _("Version: "), current_actor->info->version, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
578 current_actor->info->about, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
579 _("Author: "), current_actor->info->author, "\n\n",
375
244cc47a7ae3 [svn] We have no choice but to continue as planned. Deploy the sentinels!
chainsaw
parents: 321
diff changeset
580 current_actor->info->help, NULL);
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
581 msgwin = xmms_show_message (PACKAGE_NAME, msg, _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
582 gtk_widget_show (msgwin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
583 g_free (msg);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
584 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
585
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
586 /* FIXME Libvisual API must have something for doing this! */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
587 static int is_gl_actor (VisPluginRef *actor)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
588 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
589 VisPluginData *plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
590 VisActorPlugin *actplugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
591
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
592 visual_log_return_val_if_fail (actor != NULL, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
593 visual_log_return_val_if_fail (actor->info->plugin != NULL, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
594
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
595 plugin = visual_plugin_load (actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
596 actplugin = plugin->info->plugin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
597 if (actplugin->depth & VISUAL_VIDEO_DEPTH_GL) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
598 visual_plugin_unload (plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
599 return TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
600 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
601 visual_plugin_unload (plugin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
602 return FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
603 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
604 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
605
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
606 static void actor_plugin_add (VisPluginRef *actor)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
607 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
608 visual_log_return_if_fail (actor != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
609
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
610 if (is_gl_actor (actor))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
611 actor_plugins_gl = g_slist_append (actor_plugins_gl, actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
612 else
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
613 actor_plugins_nongl = g_slist_append (actor_plugins_nongl, actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
614 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
615
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
616 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
617 * This function initializes the actor_plugin_(gl/nongl)_items lists.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
618 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
619 static int load_actor_plugin_list ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
620 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
621 VisList *list;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
622 VisListEntry *item;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
623 VisPluginRef *actor;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
624 GtkWidget *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
625
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
626 /* We want to load the lists just once */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
627 visual_log_return_val_if_fail (actor_plugins_gl == NULL, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
628 visual_log_return_val_if_fail (actor_plugins_nongl == NULL, -1);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
629
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
630 list = visual_actor_get_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
631 if (!list) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
632 visual_log (VISUAL_LOG_WARNING, _("The list of actor plugins is empty."));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
633 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
634 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
635
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
636 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
637 /* FIXME update to visual_list_is_empty() when ready */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
638 if (!(actor = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
639 msg = xmms_show_message (_(PACKAGE_NAME " error"),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
640 _("There are no actor plugins installed.\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
641 PACKAGE_NAME " cannot be initialized.\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
642 "Please visit http://libvisual.sf.net to\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
643 "to get some nice plugins."),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
644 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
645 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
646 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
647
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
648 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
649 while ((actor = (VisPluginRef*) visual_list_next (list, &item)))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
650 actor_plugin_add (actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
651
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
652 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
653 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
654
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
655 static guint hash_function (gconstpointer key)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
656 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
657 const char *skey;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
658 guint hash_value = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
659 int i;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
660
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
661 if (!key)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
662 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
663
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
664 skey = key;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
665 for (i = 0; i < strlen (skey); i++)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
666 hash_value = (hash_value << 4) + (hash_value ^ (guint) skey[i]);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
667
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
668 return hash_value;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
669 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
670
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
671 static gint hash_compare (gconstpointer s1, gconstpointer s2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
672 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
673 return (!strcmp ((char*) s1, (char*) s2));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
674 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
675
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
676 static void load_actor_enable_state (gpointer data, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
677 {
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
678 ConfigDb *db;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
679 VisPluginRef *actor;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
680 gboolean enabled, *b;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
681
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
682 actor = data;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
683 db = user_data;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
684
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
685 visual_log_return_if_fail (actor != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
686 visual_log_return_if_fail (actor->info != NULL);
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
687 visual_log_return_if_fail (db != NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
688
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
689 if (!bmp_cfg_db_get_bool (db, "libvisual", actor->info->plugname, &enabled))
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
690 enabled = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
691
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
692 b = g_malloc (sizeof(gboolean));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
693 *b = enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
694 g_hash_table_insert (actor_plugin_enable_table, actor->info->plugname, b);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
695 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
696
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
697 static void load_actor_plugin_enable_table (ConfigDb *db)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
698 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
699 visual_log_return_if_fail (actor_plugins_nongl != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
700 visual_log_return_if_fail (actor_plugins_gl != NULL);
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
701 visual_log_return_if_fail (db != NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
702
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
703 if (!actor_plugin_enable_table)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
704 actor_plugin_enable_table = g_hash_table_new (hash_function, hash_compare);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
705
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
706 g_slist_foreach (actor_plugins_nongl, load_actor_enable_state, db);
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
707 g_slist_foreach (actor_plugins_gl, load_actor_enable_state, db);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
708 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
709
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
710 static void remove_boolean (gpointer key, gpointer value, gpointer data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
711 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
712 g_free (value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
713 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
714
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
715 static void new_actor_item (gpointer data, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
716 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
717 GList *items;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
718 GtkWidget *item/*, *olditem*/;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
719 VisPluginRef *actor;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
720 gchar *name;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
721 gchar *plugname;
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
722 gboolean *enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
723
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
724 actor = data;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
725 items = *(GList**)user_data;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
726
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
727 visual_log_return_if_fail (actor != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
728 visual_log_return_if_fail (actor->info != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
729
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
730 plugname = actor->info->plugname;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
731 enabled = g_hash_table_lookup (actor_plugin_enable_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
732 visual_log_return_if_fail (enabled != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
733
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
734 /* Create the new item */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
735 if (*enabled) {
375
244cc47a7ae3 [svn] We have no choice but to continue as planned. Deploy the sentinels!
chainsaw
parents: 321
diff changeset
736 name = g_strconcat (actor->info->name, _(" (enabled)"), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
737 item = gtk_list_item_new_with_label (name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
738 g_free (name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
739 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
740 item = gtk_list_item_new_with_label (actor->info->name);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
741 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
742
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
743 gtk_widget_show (item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
744 gtk_signal_connect (GTK_OBJECT(item), "select",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
745 GTK_SIGNAL_FUNC(on_actor_plugin_selected),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
746 (gpointer) actor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
747 items = g_list_append (items, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
748
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
749 /*olditem = g_hash_table_lookup (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
750 if (olditem)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
751 gtk_widget_destroy (olditem);*/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
752
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
753 g_hash_table_remove (actor_plugin_table, plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
754 g_hash_table_insert (actor_plugin_table, plugname, item);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
755
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
756 *(GList**)user_data = items;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
757 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
758
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
759 static void config_win_load_actor_plugin_gl_list ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
760 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
761 GList *items;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
762
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
763 if (!actor_plugin_table)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
764 actor_plugin_table = g_hash_table_new (hash_function, hash_compare);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
765
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
766 items = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
767 g_slist_foreach (actor_plugins_gl, new_actor_item, &items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
768 gtk_list_append_items (GTK_LIST(config_win->list_vis_plugins), items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
769 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
770
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
771 static void config_win_load_actor_plugin_nongl_list ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
772 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
773 GList *items;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
774
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
775 if (!actor_plugin_table)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
776 actor_plugin_table = g_hash_table_new (hash_function, hash_compare);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
777
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
778 items = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
779 g_slist_foreach (actor_plugins_nongl, new_actor_item, &items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
780 gtk_list_append_items (GTK_LIST(config_win->list_vis_plugins), items);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
781 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
782
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
783 static void on_morph_plugin_activate (GtkMenuItem *menuitem, char *name)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
784 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
785 visual_log_return_if_fail (name != NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
786
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
787 morph_plugin = name;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
788 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
789
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
790 static int config_win_load_morph_plugin_list ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
791 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
792 VisList *list;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
793 VisListEntry *item;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
794 VisPluginRef *morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
795 GtkWidget *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
796 GtkWidget *menu;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
797 GtkWidget *menuitem;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
798 GSList *group;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
799 gint index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
800
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
801 /* FIXME use load_morph_plugin_list() */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
802 list = visual_morph_get_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
803 if (!list) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
804 visual_log (VISUAL_LOG_WARNING, _("The list of morph plugins is empty."));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
805 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
806 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
807
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
808 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
809 /* FIXME update to visual_list_is_empty() when ready */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
810 if (!(morph = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
811 msg = xmms_show_message (PACKAGE_NAME,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
812 _("There are no morph plugins, so switching\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
813 "between visualization plugins will be do it\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
814 "without any morphing."),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
815 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
816 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
817 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
818 index = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
819 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
820 while ((morph = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
821 if (!(morph->info)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
822 visual_log (VISUAL_LOG_WARNING, _("There is no info for this plugin"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
823 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
824 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
825 group = config_win->optionmenu_morph_plugin_group;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
826 menu = gtk_option_menu_get_menu (GTK_OPTION_MENU(config_win->optionmenu_morph_plugin));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
827 menuitem = gtk_radio_menu_item_new_with_label (group, morph->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
828 group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM(menuitem));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
829 gtk_menu_append (GTK_MENU(menu), menuitem);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
830 config_win->optionmenu_morph_plugin_group = group;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
831
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
832 gtk_signal_connect (GTK_OBJECT(menuitem), "activate",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
833 GTK_SIGNAL_FUNC(on_morph_plugin_activate),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
834 (gpointer) morph->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
835
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
836 gtk_widget_show (menuitem);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
837
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
838 if (!strcmp (morph->info->plugname, options.morph_plugin)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
839 gtk_menu_item_activate (GTK_MENU_ITEM(menuitem));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
840 gtk_menu_set_active (GTK_MENU(menu), index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
841 gtk_option_menu_set_history (GTK_OPTION_MENU(config_win->optionmenu_morph_plugin), index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
842 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
843 index++;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
844 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
845
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
846 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
847 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
848
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
849 static int load_morph_plugin_list ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
850 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
851 VisList *list;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
852 VisListEntry *item;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
853 VisPluginRef *morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
854 GtkWidget *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
855
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
856 list = visual_morph_get_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
857 if (!list) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
858 visual_log (VISUAL_LOG_WARNING, _("The list of morph plugins is empty."));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
859 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
860 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
861
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
862 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
863 /* FIXME update to visual_list_is_empty() when ready */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
864 if (!(morph = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
865 msg = xmms_show_message (PACKAGE_NAME,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
866 _("There are no morph plugins, so switching\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
867 "between visualization plugins will be do it\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
868 "without any morphing."),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
869 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
870 return -1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
871 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
872 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
873 while ((morph = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
874 if (!(morph->info)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
875 visual_log (VISUAL_LOG_WARNING, _("There is no info for this plugin"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
876 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
877 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
878 morph_plugins_list = g_slist_append (morph_plugins_list, morph->info->plugname);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
879 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
880
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
881 return 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
882 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
883
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
884 static void on_button_morph_plugin_about_clicked (GtkButton *button, gpointer data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
885 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
886 VisList *list;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
887 VisListEntry *item;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
888 VisPluginRef *morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
889 gchar *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
890 GtkWidget *msgwin;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
891
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
892 list = visual_morph_get_list ();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
893 if (!list) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
894 visual_log (VISUAL_LOG_WARNING, _("The list of input plugins is empty."));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
895 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
896 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
897
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
898 item = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
899 while ((morph = (VisPluginRef*) visual_list_next (list, &item))) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
900 if (!(morph->info)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
901 visual_log (VISUAL_LOG_WARNING, _("There is no info for this plugin"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
902 continue;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
903 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
904 if (strcmp (morph->info->plugname, options.morph_plugin) == 0) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
905 msg = g_strconcat (morph->info->name, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
906 _("Version: "), morph->info->version, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
907 morph->info->about, "\n",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
908 _("Author: "), morph->info->author, "\n\n",
375
244cc47a7ae3 [svn] We have no choice but to continue as planned. Deploy the sentinels!
chainsaw
parents: 321
diff changeset
909 morph->info->help, NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
910 msgwin = xmms_show_message (PACKAGE_NAME, msg,
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
911 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
912 gtk_widget_show (msgwin);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
913 g_free (msg);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
914 break;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
915 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
916 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
917 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
918
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
919 static void on_checkbutton_morph_random_toggled (GtkToggleButton *togglebutton, gpointer user_data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
920 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
921 random_morph = !random_morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
922 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
923
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
924 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
925 * This function set the default values on configure dialog for all options,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
926 * except the selected vis and morph plugins.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
927 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
928 static void config_win_set_defaults (void)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
929 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
930 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_fullscreen),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
931 default_options.fullscreen);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
932 gtk_spin_button_set_value (GTK_SPIN_BUTTON(config_win->spinbutton_fps), default_options.fps);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
933 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlygl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
934 default_options.gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
935 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_onlynongl),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
936 default_options.non_gl_plugins_only);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
937 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->radiobutton_all_plugins),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
938 default_options.all_plugins_enabled);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
939 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config_win->checkbutton_morph_random),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
940 default_options.random_morph);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
941 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
942
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
943 static void config_win_connect_callbacks (void)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
944 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
945 gtk_signal_connect (GTK_OBJECT (config_win->checkbutton_vis_plugin), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
946 GTK_SIGNAL_FUNC (on_checkbutton_vis_plugin_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
947 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
948 gtk_signal_connect (GTK_OBJECT (config_win->checkbutton_fullscreen), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
949 GTK_SIGNAL_FUNC (on_checkbutton_fullscreen_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
950 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
951 gtk_signal_connect (GTK_OBJECT (config_win->radiobutton_onlygl), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
952 GTK_SIGNAL_FUNC (on_radiobutton_opengl_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
953 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
954 gtk_signal_connect (GTK_OBJECT (config_win->radiobutton_onlynongl), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
955 GTK_SIGNAL_FUNC (on_radiobutton_non_opengl_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
956 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
957 gtk_signal_connect (GTK_OBJECT (config_win->radiobutton_all_plugins), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
958 GTK_SIGNAL_FUNC (on_radiobutton_all_plugins_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
959 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
960 gtk_signal_connect (GTK_OBJECT (config_win->spinbutton_fps), "changed",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
961 GTK_SIGNAL_FUNC (on_spinbutton_fps_changed),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
962 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
963 gtk_signal_connect (GTK_OBJECT (config_win->button_ok), "clicked",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
964 GTK_SIGNAL_FUNC (on_button_ok_clicked),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
965 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
966 gtk_signal_connect (GTK_OBJECT (config_win->button_apply), "clicked",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
967 GTK_SIGNAL_FUNC (on_button_apply_clicked),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
968 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
969 gtk_signal_connect (GTK_OBJECT (config_win->button_cancel), "clicked",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
970 GTK_SIGNAL_FUNC (on_button_cancel_clicked),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
971 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
972 gtk_signal_connect (GTK_OBJECT (config_win->button_vis_plugin_about), "clicked",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
973 GTK_SIGNAL_FUNC (on_button_vis_plugin_about_clicked),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
974 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
975 gtk_signal_connect (GTK_OBJECT (config_win->button_morph_plugin_about), "clicked",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
976 GTK_SIGNAL_FUNC (on_button_morph_plugin_about_clicked),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
977 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
978 gtk_signal_connect (GTK_OBJECT (config_win->checkbutton_morph_random), "toggled",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
979 GTK_SIGNAL_FUNC (on_checkbutton_morph_random_toggled),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
980 NULL);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
981 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
982
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
983 static void config_visual_initialize ()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
984 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
985 int argc;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
986 char **argv;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
987 GtkWidget *msg;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
988
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
989 if (!visual_is_initialized ()) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
990 argv = g_malloc (sizeof(char*));
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
991 argv[0] = g_strdup ("Libvisual");
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
992 argc = 1;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
993 if (visual_init (&argc, &argv) < 0) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
994 msg = xmms_show_message (PACKAGE_NAME,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
995 _("We cannot initialize Libvisual library.\n"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
996 "Libvisual is necessary for this plugin to work."),
314
31725d73a697 [svn] Squash the implicit declaration warnings by including the correct util.h
chainsaw
parents: 313
diff changeset
997 _("Accept"), TRUE, GTK_SIGNAL_FUNC(dummy), NULL);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
998 gtk_widget_show (msg);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
999 g_free (argv[0]);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1000 g_free (argv);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1001 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1002 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1003 g_free (argv[0]);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1004 g_free (argv);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1005 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1006 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1007
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1008 static void dummy (GtkWidget *widget, gpointer data)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1009 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1010 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1011
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1012 static gboolean read_config_db (ConfigDb *db)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1013 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1014 gchar *enabled_plugins;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1015 gboolean errors = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1016
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1017 if (!bmp_cfg_db_get_string (db, "libvisual", "last_plugin", &actor_plugin_buffer)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1018 || (strlen (actor_plugin_buffer) <= 0)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1019 visual_log (VISUAL_LOG_DEBUG, "Error on last_plugin option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1020 strcpy (actor_plugin_buffer, CONFIG_DEFAULT_ACTOR_PLUGIN);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1021 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1022 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1023 options.last_plugin = actor_plugin_buffer;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1024 if (!bmp_cfg_db_get_string (db, "libvisual", "morph_plugin", &morph_plugin_buffer)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1025 || (strlen (morph_plugin_buffer) <= 0)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1026 visual_log (VISUAL_LOG_DEBUG, "Error on morph_plugin option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1027 strcpy (morph_plugin_buffer, CONFIG_DEFAULT_MORPH_PLUGIN);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1028 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1029 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1030 morph_plugin = morph_plugin_buffer;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1031 options.morph_plugin = morph_plugin;
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1032 if (!bmp_cfg_db_get_bool (db, "libvisual", "random_morph", &options.random_morph)) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1033 visual_log (VISUAL_LOG_DEBUG, "Error on random_morph option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1034 options.random_morph = default_options.random_morph;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1035 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1036 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1037 if (!bmp_cfg_db_get_int (db, "libvisual", "width", &options.width) || options.width <= 0) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1038 visual_log (VISUAL_LOG_DEBUG, "Error on width option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1039 options.width = default_options.width;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1040 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1041 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1042 if (!bmp_cfg_db_get_int (db, "libvisual", "height", &options.height) || options.height <= 0) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1043 visual_log (VISUAL_LOG_DEBUG, "Error on height option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1044 options.height = default_options.height;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1045 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1046 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1047 if (!bmp_cfg_db_get_int (db, "libvisual", "fps", &options.fps) || options.fps <= 0) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1048 visual_log (VISUAL_LOG_DEBUG, "Error on fps option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1049 options.fps = default_options.fps;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1050 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1051 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1052 if (!bmp_cfg_db_get_int (db, "libvisual", "color_depth", &options.depth) || options.depth <= 0) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1053 visual_log (VISUAL_LOG_DEBUG, "Error on color_depth option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1054 options.depth = default_options.depth;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1055 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1056 }
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1057 if (!bmp_cfg_db_get_bool (db, "libvisual", "fullscreen", &options.fullscreen)) {
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1058 visual_log (VISUAL_LOG_DEBUG, "Error on fullscreen option");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1059 options.fullscreen = default_options.fullscreen;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1060 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1061 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1062 enabled_plugins = g_malloc0 (OPTIONS_MAX_NAME_LEN);
318
43e7cbbf77e1 [svn] Convert to confdb usage. Squash most qualifier-related warnings. Remove pixmap/icon functionality. Eliminate dead code.
chainsaw
parents: 317
diff changeset
1063 if (!bmp_cfg_db_get_string (db, "libvisual", "enabled_plugins", &enabled_plugins)
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1064 || (strlen (enabled_plugins) <= 0)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1065 visual_log (VISUAL_LOG_DEBUG, "Error on enabled_plugins option: %s", enabled_plugins);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1066 options.gl_plugins_only = default_options.gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1067 options.non_gl_plugins_only = default_options.non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1068 options.all_plugins_enabled = default_options.all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1069 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1070 } else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1071 options.gl_plugins_only = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1072 options.non_gl_plugins_only = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1073 options.all_plugins_enabled = FALSE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1074 if (strcmp (enabled_plugins, "gl_only") == 0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1075 options.gl_plugins_only = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1076 else if (strcmp (enabled_plugins, "non_gl_only") == 0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1077 options.non_gl_plugins_only = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1078 else if (strcmp (enabled_plugins, "all") == 0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1079 options.all_plugins_enabled = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1080 else {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1081 visual_log (VISUAL_LOG_WARNING, _("Invalid value for 'enabled_plugins' option"));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1082 options.gl_plugins_only = default_options.gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1083 options.non_gl_plugins_only = default_options.non_gl_plugins_only;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1084 options.all_plugins_enabled = default_options.all_plugins_enabled;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1085 errors = TRUE;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1086 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1087 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1088 g_free (enabled_plugins);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1089
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1090 return errors;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1091 }