comparison src/mplayer/interface.c @ 135:33d24bd94ccc trunk

[svn] Adds mplayer controls the plugin pack. I don't know crap about configure.ac, so it's totally busted. Also, I used the string "what" in common.c and interface.c. I'm not going to pretend I actually know what I was doing there, but it seems to work despite that.
author asheldon
date Sat, 28 Oct 2006 18:08:06 -0700
parents
children 52c85b72354b
comparison
equal deleted inserted replaced
134:8b343e9684b5 135:33d24bd94ccc
1
2
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <unistd.h>
6 #include <string.h>
7
8 #include <glib.h>
9 #include <gtk/gtk.h>
10 #include <gdk/gdk.h>
11 #include <gdk/gdkx.h>
12 #include <audacious/plugin.h>
13 #include <audacious/beepctrl.h>
14 #include <audacious/rcfile.h>
15 #include <audacious/util.h>
16
17 #include "xmmsmplayer.h"
18
19 static GtkWidget *vo_none;
20 static GtkWidget *vo_xv;
21 static GtkWidget *vo_x11;
22 static GtkWidget *vo_gl;
23 static GtkWidget *vo_sdl;
24 static GtkWidget *opt_zoom;
25 static GtkWidget *opt_framedrop;
26 static GtkWidget *opt_idx;
27 static GtkWidget *opt_onewin;
28 static GtkWidget *opt_xmmsaudio;
29 static GtkWidget *ao_none;
30 static GtkWidget *ao_oss;
31 static GtkWidget *ao_arts;
32 static GtkWidget *ao_esd;
33 static GtkWidget *ao_alsa;
34 static GtkWidget *ao_sdl;
35 static GtkWidget *entry_extra_opts;
36
37 static GtkWidget *mplayer_configure_win = NULL;
38
39 void mplayer_destroyed_conf_win(GtkWidget *widget, gpointer data) {
40 mplayer_configure_win = NULL;
41 }
42
43
44 void on_btn_cancel_clicked(GtkButton *button, gpointer user_data){
45 gtk_widget_destroy(mplayer_configure_win);
46 mplayer_configure_win=NULL;
47 }
48
49
50 void on_btn_ok_clicked (GtkButton *button, gpointer user_data){
51 RcFile *cfg;
52 struct mplayer_cfg new_cfg;
53 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_none)))
54 new_cfg.vo=MPLAYER_VO_NONE;
55 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_xv)))
56 new_cfg.vo=MPLAYER_VO_XV;
57 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_x11)))
58 new_cfg.vo=MPLAYER_VO_X11;
59 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_gl)))
60 new_cfg.vo=MPLAYER_VO_GL;
61 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_sdl)))
62 new_cfg.vo=MPLAYER_VO_SDL;
63 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_none)))
64 new_cfg.ao=MPLAYER_AO_NONE;
65 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_oss)))
66 new_cfg.ao=MPLAYER_AO_OSS;
67 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_arts)))
68 new_cfg.ao=MPLAYER_AO_ARTS;
69 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_esd)))
70 new_cfg.ao=MPLAYER_AO_ESD;
71 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_alsa)))
72 new_cfg.ao=MPLAYER_AO_ALSA;
73 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_sdl)))
74 new_cfg.ao=MPLAYER_AO_SDL;
75 new_cfg.zoom=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_zoom));
76 new_cfg.framedrop=
77 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_framedrop));
78 new_cfg.idx=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_idx));
79 new_cfg.onewin=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_onewin));
80 new_cfg.xmmsaudio=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_xmmsaudio));
81 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_xmmsaudio)))
82 new_cfg.ao=MPLAYER_AO_XMMS;
83 new_cfg.extra=gtk_entry_get_text(GTK_ENTRY(entry_extra_opts));
84
85 // cfg = xmms_cfg_open_default_file();
86 cfg=bmp_rcfile_open("what");
87 bmp_rcfile_write_int(cfg,"xmms-mplayer","vo",new_cfg.vo);
88 bmp_rcfile_write_int(cfg,"xmms-mplayer","ao",new_cfg.ao);
89 bmp_rcfile_write_boolean(cfg,"xmms-mplayer","zoom",new_cfg.zoom);
90 bmp_rcfile_write_boolean(cfg,"xmms-mplayer","framedrop",new_cfg.framedrop);
91 bmp_rcfile_write_boolean(cfg,"xmms-mplayer","idx",new_cfg.idx);
92 bmp_rcfile_write_boolean(cfg,"xmms-mplayer","onewin",new_cfg.onewin);
93 bmp_rcfile_write_boolean(cfg,"xmms-mplayer","xmmsaudio",new_cfg.xmmsaudio);
94 bmp_rcfile_write_string(cfg,"xmms-mplayer","extra",new_cfg.extra);
95 bmp_rcfile_write(cfg, "what");
96 // xmms_cfg_write_default_file(cfg);
97 bmp_rcfile_free(cfg);
98
99 gtk_widget_destroy(mplayer_configure_win);
100 mplayer_configure_win=NULL;
101 }
102
103
104 GtkWidget*
105 mplayer_create_configure_win (void)
106 {
107 GtkWidget *window1;
108 GtkWidget *scrolledwindow1;
109 GtkWidget *layout1;
110 GtkWidget *notebook1;
111 GtkWidget *scrolledwindow2;
112 GtkWidget *layout2;
113 GSList *layout2_group = NULL;
114 GtkWidget *label_vo;
115 GtkWidget *scrolledwindow3;
116 GtkWidget *layout3;
117 GSList *layout3_group = NULL;
118 GtkWidget *label_ao;
119 GtkWidget *scrolledwindow4;
120 GtkWidget *layout4;
121 GtkWidget *label_other;
122 GtkWidget *scrolledwindow5;
123 GtkWidget *layout5;
124 GtkWidget *label_extra_des;
125 GtkWidget *label_extra;
126 GtkWidget *btn_ok;
127 GtkWidget *btn_cancel;
128
129 window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
130 gtk_object_set_data (GTK_OBJECT (window1), "window1", window1);
131 gtk_window_set_title (GTK_WINDOW (window1), "Xmms-Mplayer");
132 gtk_widget_set_usize (window1, 550, 430);
133
134
135 scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
136 gtk_widget_ref (scrolledwindow1);
137 gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow1", scrolledwindow1,
138 (GtkDestroyNotify) gtk_widget_unref);
139 gtk_widget_show (scrolledwindow1);
140 gtk_container_add (GTK_CONTAINER (window1), scrolledwindow1);
141 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
142
143 layout1 = gtk_layout_new (NULL, NULL);
144 gtk_widget_ref (layout1);
145 gtk_object_set_data_full (GTK_OBJECT (window1), "layout1", layout1,
146 (GtkDestroyNotify) gtk_widget_unref);
147 gtk_widget_show (layout1);
148 gtk_container_add (GTK_CONTAINER (scrolledwindow1), layout1);
149 gtk_layout_set_size (GTK_LAYOUT (layout1), 336, 235);
150 GTK_ADJUSTMENT (GTK_LAYOUT (layout1)->hadjustment)->step_increment = 10;
151 GTK_ADJUSTMENT (GTK_LAYOUT (layout1)->vadjustment)->step_increment = 10;
152
153 notebook1 = gtk_notebook_new ();
154 gtk_widget_ref (notebook1);
155 gtk_object_set_data_full (GTK_OBJECT (window1), "notebook1", notebook1,
156 (GtkDestroyNotify) gtk_widget_unref);
157 gtk_widget_show (notebook1);
158 gtk_layout_put (GTK_LAYOUT (layout1), notebook1, 24, 24);
159 gtk_widget_set_usize (notebook1, 496, 336);
160
161 scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
162 gtk_widget_ref (scrolledwindow2);
163 gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow2", scrolledwindow2,
164 (GtkDestroyNotify) gtk_widget_unref);
165 gtk_widget_show (scrolledwindow2);
166 gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow2);
167 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
168
169 layout2 = gtk_layout_new (NULL, NULL);
170 gtk_widget_ref (layout2);
171 gtk_object_set_data_full (GTK_OBJECT (window1), "layout2", layout2,
172 (GtkDestroyNotify) gtk_widget_unref);
173 gtk_widget_show (layout2);
174 gtk_container_add (GTK_CONTAINER (scrolledwindow2), layout2);
175 gtk_layout_set_size (GTK_LAYOUT (layout2), 384, 296);
176 GTK_ADJUSTMENT (GTK_LAYOUT (layout2)->hadjustment)->step_increment = 10;
177 GTK_ADJUSTMENT (GTK_LAYOUT (layout2)->vadjustment)->step_increment = 10;
178
179 vo_none = gtk_radio_button_new_with_label (layout2_group, "Automatic (MPlayer Chooses)");
180 layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_none));
181 gtk_widget_ref (vo_none);
182 gtk_object_set_data_full (GTK_OBJECT (window1), "vo_none", vo_none,
183 (GtkDestroyNotify) gtk_widget_unref);
184 gtk_widget_show (vo_none);
185 gtk_layout_put (GTK_LAYOUT (layout2), vo_none, 24, 32);
186 gtk_widget_set_usize (vo_none, 336, 24);
187
188 vo_xv = gtk_radio_button_new_with_label (layout2_group, "Xvideo");
189 layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_xv));
190 gtk_widget_ref (vo_xv);
191 gtk_object_set_data_full (GTK_OBJECT (window1), "vo_xv", vo_xv,
192 (GtkDestroyNotify) gtk_widget_unref);
193 gtk_widget_show (vo_xv);
194 gtk_layout_put (GTK_LAYOUT (layout2), vo_xv, 24, 64);
195 gtk_widget_set_usize (vo_xv, 96, 24);
196
197 vo_x11 = gtk_radio_button_new_with_label (layout2_group, "X11");
198 layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_x11));
199 gtk_widget_ref (vo_x11);
200 gtk_object_set_data_full (GTK_OBJECT (window1), "vo_x11", vo_x11,
201 (GtkDestroyNotify) gtk_widget_unref);
202 gtk_widget_show (vo_x11);
203 gtk_layout_put (GTK_LAYOUT (layout2), vo_x11, 24, 104);
204 gtk_widget_set_usize (vo_x11, 96, 24);
205
206 vo_gl = gtk_radio_button_new_with_label (layout2_group, "GL");
207 layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_gl));
208 gtk_widget_ref (vo_gl);
209 gtk_object_set_data_full (GTK_OBJECT (window1), "vo_gl", vo_gl,
210 (GtkDestroyNotify) gtk_widget_unref);
211 gtk_widget_show (vo_gl);
212 gtk_layout_put (GTK_LAYOUT (layout2), vo_gl, 24, 144);
213 gtk_widget_set_usize (vo_gl, 96, 24);
214
215 vo_sdl = gtk_radio_button_new_with_label (layout2_group, "SDL");
216 layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_sdl));
217 gtk_widget_ref (vo_sdl);
218 gtk_object_set_data_full (GTK_OBJECT (window1), "vo_sdl", vo_sdl,
219 (GtkDestroyNotify) gtk_widget_unref);
220 gtk_widget_show (vo_sdl);
221 gtk_layout_put (GTK_LAYOUT (layout2), vo_sdl, 24, 184);
222 gtk_widget_set_usize (vo_sdl, 96, 24);
223
224 label_vo = gtk_label_new ("Video Out");
225 gtk_widget_ref (label_vo);
226 gtk_object_set_data_full (GTK_OBJECT (window1), "label_vo", label_vo,
227 (GtkDestroyNotify) gtk_widget_unref);
228 gtk_widget_show (label_vo);
229 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label_vo);
230
231 scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
232 gtk_widget_ref (scrolledwindow3);
233 gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow3", scrolledwindow3,
234 (GtkDestroyNotify) gtk_widget_unref);
235 gtk_widget_show (scrolledwindow3);
236 gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow3);
237 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
238
239 layout3 = gtk_layout_new (NULL, NULL);
240 gtk_widget_ref (layout3);
241 gtk_object_set_data_full (GTK_OBJECT (window1), "layout3", layout3,
242 (GtkDestroyNotify) gtk_widget_unref);
243 gtk_widget_show (layout3);
244 gtk_container_add (GTK_CONTAINER (scrolledwindow3), layout3);
245 gtk_layout_set_size (GTK_LAYOUT (layout3), 382, 295);
246 GTK_ADJUSTMENT (GTK_LAYOUT (layout3)->hadjustment)->step_increment = 10;
247 GTK_ADJUSTMENT (GTK_LAYOUT (layout3)->vadjustment)->step_increment = 10;
248
249 ao_none = gtk_radio_button_new_with_label (layout3_group, "Automatic (MPlayer Chooses)");
250 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_none));
251 gtk_widget_ref (ao_none);
252 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_none", ao_none,
253 (GtkDestroyNotify) gtk_widget_unref);
254 gtk_widget_show (ao_none);
255 gtk_layout_put (GTK_LAYOUT (layout3), ao_none, 24, 32);
256 gtk_widget_set_usize (ao_none, 272, 24);
257
258 ao_oss = gtk_radio_button_new_with_label (layout3_group, "OSS");
259 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_oss));
260 gtk_widget_ref (ao_oss);
261 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_oss", ao_oss,
262 (GtkDestroyNotify) gtk_widget_unref);
263 gtk_widget_show (ao_oss);
264 gtk_layout_put (GTK_LAYOUT (layout3), ao_oss, 24, 64);
265 gtk_widget_set_usize (ao_oss, 96, 24);
266
267 ao_arts = gtk_radio_button_new_with_label (layout3_group, "ARTS");
268 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_arts));
269 gtk_widget_ref (ao_arts);
270 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_arts", ao_arts,
271 (GtkDestroyNotify) gtk_widget_unref);
272 gtk_widget_show (ao_arts);
273 gtk_layout_put (GTK_LAYOUT (layout3), ao_arts, 24, 96);
274 gtk_widget_set_usize (ao_arts, 96, 24);
275
276 ao_esd = gtk_radio_button_new_with_label (layout3_group, "ESD");
277 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_esd));
278 gtk_widget_ref (ao_esd);
279 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_esd", ao_esd,
280 (GtkDestroyNotify) gtk_widget_unref);
281 gtk_widget_show (ao_esd);
282 gtk_layout_put (GTK_LAYOUT (layout3), ao_esd, 24, 128);
283 gtk_widget_set_usize (ao_esd, 96, 24);
284
285 ao_alsa = gtk_radio_button_new_with_label (layout3_group, "ALSA");
286 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_alsa));
287 gtk_widget_ref (ao_alsa);
288 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_alsa", ao_alsa,
289 (GtkDestroyNotify) gtk_widget_unref);
290 gtk_widget_show (ao_alsa);
291 gtk_layout_put (GTK_LAYOUT (layout3), ao_alsa, 24, 160);
292 gtk_widget_set_usize (ao_alsa, 103, 24);
293
294 ao_sdl = gtk_radio_button_new_with_label (layout3_group, "SDL");
295 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_sdl));
296 gtk_widget_ref (ao_sdl);
297 gtk_object_set_data_full (GTK_OBJECT (window1), "ao_sdl", ao_sdl,
298 (GtkDestroyNotify) gtk_widget_unref);
299 gtk_widget_show (ao_sdl);
300 gtk_layout_put (GTK_LAYOUT (layout3), ao_sdl, 24, 192);
301 gtk_widget_set_usize (ao_sdl, 103, 24);
302
303 opt_xmmsaudio = gtk_radio_button_new_with_label (layout3_group, "XMMS Output Plugin (Experimental)");
304 layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (opt_xmmsaudio));
305 gtk_widget_ref (opt_xmmsaudio);
306 gtk_object_set_data_full (GTK_OBJECT (window1), "opt_xmmsaudio", opt_xmmsaudio,
307 (GtkDestroyNotify) gtk_widget_unref);
308 gtk_widget_show (opt_xmmsaudio);
309 gtk_layout_put (GTK_LAYOUT (layout3), opt_xmmsaudio, 24, 224);
310 gtk_widget_set_usize (opt_xmmsaudio, 272, 24);
311
312 label_ao = gtk_label_new ("Audio Out");
313 gtk_widget_ref (label_ao);
314 gtk_object_set_data_full (GTK_OBJECT (window1), "label_ao", label_ao,
315 (GtkDestroyNotify) gtk_widget_unref);
316 gtk_widget_show (label_ao);
317 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label_ao);
318
319 scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
320 gtk_widget_ref (scrolledwindow4);
321 gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow4", scrolledwindow4,
322 (GtkDestroyNotify) gtk_widget_unref);
323 gtk_widget_show (scrolledwindow4);
324 gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow4);
325 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
326
327 layout4 = gtk_layout_new (NULL, NULL);
328 gtk_widget_ref (layout4);
329 gtk_object_set_data_full (GTK_OBJECT (window1), "layout4", layout4,
330 (GtkDestroyNotify) gtk_widget_unref);
331 gtk_widget_show (layout4);
332 gtk_container_add (GTK_CONTAINER (scrolledwindow4), layout4);
333 gtk_layout_set_size (GTK_LAYOUT (layout4), 377, 272);
334 GTK_ADJUSTMENT (GTK_LAYOUT (layout4)->hadjustment)->step_increment = 10;
335 GTK_ADJUSTMENT (GTK_LAYOUT (layout4)->vadjustment)->step_increment = 10;
336
337 opt_zoom = gtk_check_button_new_with_label ("Software Zoom");
338 gtk_widget_ref (opt_zoom);
339 gtk_object_set_data_full (GTK_OBJECT (window1), "opt_zoom", opt_zoom,
340 (GtkDestroyNotify) gtk_widget_unref);
341 gtk_widget_show (opt_zoom);
342 gtk_layout_put (GTK_LAYOUT (layout4), opt_zoom, 24, 32);
343 gtk_widget_set_usize (opt_zoom, 168, 24);
344
345 opt_framedrop = gtk_check_button_new_with_label ("Frame Dropping");
346 gtk_widget_ref (opt_framedrop);
347 gtk_object_set_data_full (GTK_OBJECT (window1), "opt_framedrop", opt_framedrop,
348 (GtkDestroyNotify) gtk_widget_unref);
349 gtk_widget_show (opt_framedrop);
350 gtk_layout_put (GTK_LAYOUT (layout4), opt_framedrop, 24, 72);
351 gtk_widget_set_usize (opt_framedrop, 136, 24);
352
353 opt_idx = gtk_check_button_new_with_label ("Build Index");
354 gtk_widget_ref (opt_idx);
355 gtk_object_set_data_full (GTK_OBJECT (window1), "opt_idx", opt_idx,
356 (GtkDestroyNotify) gtk_widget_unref);
357 gtk_widget_show (opt_idx);
358 gtk_layout_put (GTK_LAYOUT (layout4), opt_idx, 24, 112);
359 gtk_widget_set_usize (opt_idx, 102, 24);
360
361 opt_onewin = gtk_check_button_new_with_label ("One Window (Experimental)");
362 gtk_widget_ref (opt_onewin);
363 gtk_object_set_data_full (GTK_OBJECT (window1), "opt_onewin", opt_onewin,
364 (GtkDestroyNotify) gtk_widget_unref);
365 gtk_widget_show (opt_onewin);
366 gtk_layout_put (GTK_LAYOUT (layout4), opt_onewin, 24, 152);
367 gtk_widget_set_usize (opt_onewin, 240, 24);
368
369 label_other = gtk_label_new ("Other");
370 gtk_widget_ref (label_other);
371 gtk_object_set_data_full (GTK_OBJECT (window1), "label_other", label_other,
372 (GtkDestroyNotify) gtk_widget_unref);
373 gtk_widget_show (label_other);
374 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label_other);
375
376 scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL);
377 gtk_widget_ref (scrolledwindow5);
378 gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow5", scrolledwindow5,
379 (GtkDestroyNotify) gtk_widget_unref);
380 gtk_widget_show (scrolledwindow5);
381 gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow5);
382 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
383
384 layout5 = gtk_layout_new (NULL, NULL);
385 gtk_widget_ref (layout5);
386 gtk_object_set_data_full (GTK_OBJECT (window1), "layout5", layout5,
387 (GtkDestroyNotify) gtk_widget_unref);
388 gtk_widget_show (layout5);
389 gtk_container_add (GTK_CONTAINER (scrolledwindow5), layout5);
390 gtk_layout_set_size (GTK_LAYOUT (layout5), 346, 267);
391 GTK_ADJUSTMENT (GTK_LAYOUT (layout5)->hadjustment)->step_increment = 10;
392 GTK_ADJUSTMENT (GTK_LAYOUT (layout5)->vadjustment)->step_increment = 10;
393
394 entry_extra_opts = gtk_entry_new ();
395 gtk_widget_ref (entry_extra_opts);
396 gtk_object_set_data_full (GTK_OBJECT (window1), "entry_extra_opts", entry_extra_opts,
397 (GtkDestroyNotify) gtk_widget_unref);
398 gtk_widget_show (entry_extra_opts);
399 gtk_layout_put (GTK_LAYOUT (layout5), entry_extra_opts, 40, 192);
400 gtk_widget_set_usize (entry_extra_opts, 392, 24);
401
402 label_extra_des = gtk_label_new ("Extra options for mplayer can be added here.\nParsing is done based on spaces.\nQuotes and escapes are not recognised yet.");
403 gtk_widget_ref (label_extra_des);
404 gtk_object_set_data_full (GTK_OBJECT (window1), "label_extra_des", label_extra_des,
405 (GtkDestroyNotify) gtk_widget_unref);
406 gtk_widget_show (label_extra_des);
407 gtk_layout_put (GTK_LAYOUT (layout5), label_extra_des, 40, 48);
408 gtk_widget_set_usize (label_extra_des, 392, 128);
409 gtk_label_set_justify (GTK_LABEL (label_extra_des), GTK_JUSTIFY_LEFT);
410 gtk_misc_set_alignment (GTK_MISC (label_extra_des), 0.18, 1);
411
412 label_extra = gtk_label_new ("Extra");
413 gtk_widget_ref (label_extra);
414 gtk_object_set_data_full (GTK_OBJECT (window1), "label_extra", label_extra,
415 (GtkDestroyNotify) gtk_widget_unref);
416 gtk_widget_show (label_extra);
417 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label_extra);
418
419 btn_ok = gtk_button_new_with_label ("OK");
420 gtk_widget_ref (btn_ok);
421 gtk_object_set_data_full (GTK_OBJECT (window1), "btn_ok", btn_ok,
422 (GtkDestroyNotify) gtk_widget_unref);
423 gtk_widget_show (btn_ok);
424 gtk_layout_put (GTK_LAYOUT (layout1), btn_ok, 432, 376);
425 gtk_widget_set_usize (btn_ok, 88, 32);
426
427 btn_cancel = gtk_button_new_with_label ("Cancel");
428 gtk_widget_ref (btn_cancel);
429 gtk_object_set_data_full (GTK_OBJECT (window1), "btn_cancel", btn_cancel,
430 (GtkDestroyNotify) gtk_widget_unref);
431 gtk_widget_show (btn_cancel);
432 gtk_layout_put (GTK_LAYOUT (layout1), btn_cancel, 24, 376);
433 gtk_widget_set_usize (btn_cancel, 88, 30);
434
435 gtk_signal_connect(GTK_OBJECT(window1),
436 "destroy",
437 GTK_SIGNAL_FUNC(mplayer_destroyed_conf_win),
438 NULL);
439
440 gtk_signal_connect (GTK_OBJECT (btn_ok), "clicked",
441 GTK_SIGNAL_FUNC (on_btn_ok_clicked),
442 NULL);
443 gtk_signal_connect (GTK_OBJECT (btn_cancel), "clicked",
444 GTK_SIGNAL_FUNC (on_btn_cancel_clicked),
445 NULL);
446 return window1;
447 }
448
449 void mplayer_configure(){
450 struct mplayer_cfg *cfg;
451 if (mplayer_configure_win)
452 return;
453 mplayer_configure_win=mplayer_create_configure_win();
454 gtk_widget_show(mplayer_configure_win);
455 cfg=mplayer_read_cfg();
456 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_zoom),cfg->zoom);
457 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_framedrop),cfg->framedrop);
458 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_idx),cfg->idx);
459 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_onewin),cfg->onewin);
460 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_xmmsaudio),cfg->xmmsaudio);
461
462 switch(cfg->vo){
463 case MPLAYER_VO_NONE:
464 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_none), TRUE);
465 break;
466 case MPLAYER_VO_XV:
467 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_xv), TRUE);
468 break;
469 case MPLAYER_VO_X11:
470 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_x11), TRUE);
471 break;
472 case MPLAYER_VO_GL:
473 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_gl), TRUE);
474 break;
475 case MPLAYER_VO_SDL:
476 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_sdl), TRUE);
477 break;
478 }
479 switch(cfg->ao){
480 case MPLAYER_AO_NONE:
481 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_none), TRUE);
482 break;
483 case MPLAYER_AO_OSS:
484 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_oss), TRUE);
485 break;
486 case MPLAYER_AO_ARTS:
487 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_arts), TRUE);
488 break;
489 case MPLAYER_AO_ESD:
490 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_esd), TRUE);
491 break;
492 case MPLAYER_AO_SDL:
493 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_sdl), TRUE);
494 break;
495 case MPLAYER_AO_ALSA:
496 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_alsa), TRUE);
497 break;
498 }
499 gtk_entry_set_text(GTK_ENTRY(entry_extra_opts),cfg->extra);
500 }