Mercurial > audlegacy-plugins
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mplayer/interface.c Sat Oct 28 18:08:06 2006 -0700 @@ -0,0 +1,500 @@ + + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> + +#include <glib.h> +#include <gtk/gtk.h> +#include <gdk/gdk.h> +#include <gdk/gdkx.h> +#include <audacious/plugin.h> +#include <audacious/beepctrl.h> +#include <audacious/rcfile.h> +#include <audacious/util.h> + +#include "xmmsmplayer.h" + +static GtkWidget *vo_none; +static GtkWidget *vo_xv; +static GtkWidget *vo_x11; +static GtkWidget *vo_gl; +static GtkWidget *vo_sdl; +static GtkWidget *opt_zoom; +static GtkWidget *opt_framedrop; +static GtkWidget *opt_idx; +static GtkWidget *opt_onewin; +static GtkWidget *opt_xmmsaudio; +static GtkWidget *ao_none; +static GtkWidget *ao_oss; +static GtkWidget *ao_arts; +static GtkWidget *ao_esd; +static GtkWidget *ao_alsa; +static GtkWidget *ao_sdl; +static GtkWidget *entry_extra_opts; + +static GtkWidget *mplayer_configure_win = NULL; + +void mplayer_destroyed_conf_win(GtkWidget *widget, gpointer data) { + mplayer_configure_win = NULL; +} + + +void on_btn_cancel_clicked(GtkButton *button, gpointer user_data){ + gtk_widget_destroy(mplayer_configure_win); + mplayer_configure_win=NULL; +} + + +void on_btn_ok_clicked (GtkButton *button, gpointer user_data){ + RcFile *cfg; + struct mplayer_cfg new_cfg; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_none))) + new_cfg.vo=MPLAYER_VO_NONE; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_xv))) + new_cfg.vo=MPLAYER_VO_XV; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_x11))) + new_cfg.vo=MPLAYER_VO_X11; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_gl))) + new_cfg.vo=MPLAYER_VO_GL; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vo_sdl))) + new_cfg.vo=MPLAYER_VO_SDL; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_none))) + new_cfg.ao=MPLAYER_AO_NONE; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_oss))) + new_cfg.ao=MPLAYER_AO_OSS; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_arts))) + new_cfg.ao=MPLAYER_AO_ARTS; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_esd))) + new_cfg.ao=MPLAYER_AO_ESD; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_alsa))) + new_cfg.ao=MPLAYER_AO_ALSA; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ao_sdl))) + new_cfg.ao=MPLAYER_AO_SDL; + new_cfg.zoom=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_zoom)); + new_cfg.framedrop= + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_framedrop)); + new_cfg.idx=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_idx)); + new_cfg.onewin=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_onewin)); + new_cfg.xmmsaudio=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_xmmsaudio)); + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_xmmsaudio))) + new_cfg.ao=MPLAYER_AO_XMMS; + new_cfg.extra=gtk_entry_get_text(GTK_ENTRY(entry_extra_opts)); + +// cfg = xmms_cfg_open_default_file(); + cfg=bmp_rcfile_open("what"); + bmp_rcfile_write_int(cfg,"xmms-mplayer","vo",new_cfg.vo); + bmp_rcfile_write_int(cfg,"xmms-mplayer","ao",new_cfg.ao); + bmp_rcfile_write_boolean(cfg,"xmms-mplayer","zoom",new_cfg.zoom); + bmp_rcfile_write_boolean(cfg,"xmms-mplayer","framedrop",new_cfg.framedrop); + bmp_rcfile_write_boolean(cfg,"xmms-mplayer","idx",new_cfg.idx); + bmp_rcfile_write_boolean(cfg,"xmms-mplayer","onewin",new_cfg.onewin); + bmp_rcfile_write_boolean(cfg,"xmms-mplayer","xmmsaudio",new_cfg.xmmsaudio); + bmp_rcfile_write_string(cfg,"xmms-mplayer","extra",new_cfg.extra); + bmp_rcfile_write(cfg, "what"); +// xmms_cfg_write_default_file(cfg); + bmp_rcfile_free(cfg); + + gtk_widget_destroy(mplayer_configure_win); + mplayer_configure_win=NULL; +} + + +GtkWidget* +mplayer_create_configure_win (void) +{ + GtkWidget *window1; + GtkWidget *scrolledwindow1; + GtkWidget *layout1; + GtkWidget *notebook1; + GtkWidget *scrolledwindow2; + GtkWidget *layout2; + GSList *layout2_group = NULL; + GtkWidget *label_vo; + GtkWidget *scrolledwindow3; + GtkWidget *layout3; + GSList *layout3_group = NULL; + GtkWidget *label_ao; + GtkWidget *scrolledwindow4; + GtkWidget *layout4; + GtkWidget *label_other; + GtkWidget *scrolledwindow5; + GtkWidget *layout5; + GtkWidget *label_extra_des; + GtkWidget *label_extra; + GtkWidget *btn_ok; + GtkWidget *btn_cancel; + + window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_object_set_data (GTK_OBJECT (window1), "window1", window1); + gtk_window_set_title (GTK_WINDOW (window1), "Xmms-Mplayer"); + gtk_widget_set_usize (window1, 550, 430); + + + scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_ref (scrolledwindow1); + gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow1", scrolledwindow1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (scrolledwindow1); + gtk_container_add (GTK_CONTAINER (window1), scrolledwindow1); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + layout1 = gtk_layout_new (NULL, NULL); + gtk_widget_ref (layout1); + gtk_object_set_data_full (GTK_OBJECT (window1), "layout1", layout1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (layout1); + gtk_container_add (GTK_CONTAINER (scrolledwindow1), layout1); + gtk_layout_set_size (GTK_LAYOUT (layout1), 336, 235); + GTK_ADJUSTMENT (GTK_LAYOUT (layout1)->hadjustment)->step_increment = 10; + GTK_ADJUSTMENT (GTK_LAYOUT (layout1)->vadjustment)->step_increment = 10; + + notebook1 = gtk_notebook_new (); + gtk_widget_ref (notebook1); + gtk_object_set_data_full (GTK_OBJECT (window1), "notebook1", notebook1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (notebook1); + gtk_layout_put (GTK_LAYOUT (layout1), notebook1, 24, 24); + gtk_widget_set_usize (notebook1, 496, 336); + + scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_ref (scrolledwindow2); + gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow2", scrolledwindow2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (scrolledwindow2); + gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow2); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + layout2 = gtk_layout_new (NULL, NULL); + gtk_widget_ref (layout2); + gtk_object_set_data_full (GTK_OBJECT (window1), "layout2", layout2, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (layout2); + gtk_container_add (GTK_CONTAINER (scrolledwindow2), layout2); + gtk_layout_set_size (GTK_LAYOUT (layout2), 384, 296); + GTK_ADJUSTMENT (GTK_LAYOUT (layout2)->hadjustment)->step_increment = 10; + GTK_ADJUSTMENT (GTK_LAYOUT (layout2)->vadjustment)->step_increment = 10; + + vo_none = gtk_radio_button_new_with_label (layout2_group, "Automatic (MPlayer Chooses)"); + layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_none)); + gtk_widget_ref (vo_none); + gtk_object_set_data_full (GTK_OBJECT (window1), "vo_none", vo_none, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (vo_none); + gtk_layout_put (GTK_LAYOUT (layout2), vo_none, 24, 32); + gtk_widget_set_usize (vo_none, 336, 24); + + vo_xv = gtk_radio_button_new_with_label (layout2_group, "Xvideo"); + layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_xv)); + gtk_widget_ref (vo_xv); + gtk_object_set_data_full (GTK_OBJECT (window1), "vo_xv", vo_xv, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (vo_xv); + gtk_layout_put (GTK_LAYOUT (layout2), vo_xv, 24, 64); + gtk_widget_set_usize (vo_xv, 96, 24); + + vo_x11 = gtk_radio_button_new_with_label (layout2_group, "X11"); + layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_x11)); + gtk_widget_ref (vo_x11); + gtk_object_set_data_full (GTK_OBJECT (window1), "vo_x11", vo_x11, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (vo_x11); + gtk_layout_put (GTK_LAYOUT (layout2), vo_x11, 24, 104); + gtk_widget_set_usize (vo_x11, 96, 24); + + vo_gl = gtk_radio_button_new_with_label (layout2_group, "GL"); + layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_gl)); + gtk_widget_ref (vo_gl); + gtk_object_set_data_full (GTK_OBJECT (window1), "vo_gl", vo_gl, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (vo_gl); + gtk_layout_put (GTK_LAYOUT (layout2), vo_gl, 24, 144); + gtk_widget_set_usize (vo_gl, 96, 24); + + vo_sdl = gtk_radio_button_new_with_label (layout2_group, "SDL"); + layout2_group = gtk_radio_button_group (GTK_RADIO_BUTTON (vo_sdl)); + gtk_widget_ref (vo_sdl); + gtk_object_set_data_full (GTK_OBJECT (window1), "vo_sdl", vo_sdl, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (vo_sdl); + gtk_layout_put (GTK_LAYOUT (layout2), vo_sdl, 24, 184); + gtk_widget_set_usize (vo_sdl, 96, 24); + + label_vo = gtk_label_new ("Video Out"); + gtk_widget_ref (label_vo); + gtk_object_set_data_full (GTK_OBJECT (window1), "label_vo", label_vo, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label_vo); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label_vo); + + scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_ref (scrolledwindow3); + gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow3", scrolledwindow3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (scrolledwindow3); + gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow3); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + layout3 = gtk_layout_new (NULL, NULL); + gtk_widget_ref (layout3); + gtk_object_set_data_full (GTK_OBJECT (window1), "layout3", layout3, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (layout3); + gtk_container_add (GTK_CONTAINER (scrolledwindow3), layout3); + gtk_layout_set_size (GTK_LAYOUT (layout3), 382, 295); + GTK_ADJUSTMENT (GTK_LAYOUT (layout3)->hadjustment)->step_increment = 10; + GTK_ADJUSTMENT (GTK_LAYOUT (layout3)->vadjustment)->step_increment = 10; + + ao_none = gtk_radio_button_new_with_label (layout3_group, "Automatic (MPlayer Chooses)"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_none)); + gtk_widget_ref (ao_none); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_none", ao_none, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_none); + gtk_layout_put (GTK_LAYOUT (layout3), ao_none, 24, 32); + gtk_widget_set_usize (ao_none, 272, 24); + + ao_oss = gtk_radio_button_new_with_label (layout3_group, "OSS"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_oss)); + gtk_widget_ref (ao_oss); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_oss", ao_oss, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_oss); + gtk_layout_put (GTK_LAYOUT (layout3), ao_oss, 24, 64); + gtk_widget_set_usize (ao_oss, 96, 24); + + ao_arts = gtk_radio_button_new_with_label (layout3_group, "ARTS"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_arts)); + gtk_widget_ref (ao_arts); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_arts", ao_arts, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_arts); + gtk_layout_put (GTK_LAYOUT (layout3), ao_arts, 24, 96); + gtk_widget_set_usize (ao_arts, 96, 24); + + ao_esd = gtk_radio_button_new_with_label (layout3_group, "ESD"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_esd)); + gtk_widget_ref (ao_esd); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_esd", ao_esd, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_esd); + gtk_layout_put (GTK_LAYOUT (layout3), ao_esd, 24, 128); + gtk_widget_set_usize (ao_esd, 96, 24); + + ao_alsa = gtk_radio_button_new_with_label (layout3_group, "ALSA"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_alsa)); + gtk_widget_ref (ao_alsa); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_alsa", ao_alsa, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_alsa); + gtk_layout_put (GTK_LAYOUT (layout3), ao_alsa, 24, 160); + gtk_widget_set_usize (ao_alsa, 103, 24); + + ao_sdl = gtk_radio_button_new_with_label (layout3_group, "SDL"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (ao_sdl)); + gtk_widget_ref (ao_sdl); + gtk_object_set_data_full (GTK_OBJECT (window1), "ao_sdl", ao_sdl, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (ao_sdl); + gtk_layout_put (GTK_LAYOUT (layout3), ao_sdl, 24, 192); + gtk_widget_set_usize (ao_sdl, 103, 24); + + opt_xmmsaudio = gtk_radio_button_new_with_label (layout3_group, "XMMS Output Plugin (Experimental)"); + layout3_group = gtk_radio_button_group (GTK_RADIO_BUTTON (opt_xmmsaudio)); + gtk_widget_ref (opt_xmmsaudio); + gtk_object_set_data_full (GTK_OBJECT (window1), "opt_xmmsaudio", opt_xmmsaudio, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (opt_xmmsaudio); + gtk_layout_put (GTK_LAYOUT (layout3), opt_xmmsaudio, 24, 224); + gtk_widget_set_usize (opt_xmmsaudio, 272, 24); + + label_ao = gtk_label_new ("Audio Out"); + gtk_widget_ref (label_ao); + gtk_object_set_data_full (GTK_OBJECT (window1), "label_ao", label_ao, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label_ao); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label_ao); + + scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_ref (scrolledwindow4); + gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow4", scrolledwindow4, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (scrolledwindow4); + gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow4); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + layout4 = gtk_layout_new (NULL, NULL); + gtk_widget_ref (layout4); + gtk_object_set_data_full (GTK_OBJECT (window1), "layout4", layout4, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (layout4); + gtk_container_add (GTK_CONTAINER (scrolledwindow4), layout4); + gtk_layout_set_size (GTK_LAYOUT (layout4), 377, 272); + GTK_ADJUSTMENT (GTK_LAYOUT (layout4)->hadjustment)->step_increment = 10; + GTK_ADJUSTMENT (GTK_LAYOUT (layout4)->vadjustment)->step_increment = 10; + + opt_zoom = gtk_check_button_new_with_label ("Software Zoom"); + gtk_widget_ref (opt_zoom); + gtk_object_set_data_full (GTK_OBJECT (window1), "opt_zoom", opt_zoom, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (opt_zoom); + gtk_layout_put (GTK_LAYOUT (layout4), opt_zoom, 24, 32); + gtk_widget_set_usize (opt_zoom, 168, 24); + + opt_framedrop = gtk_check_button_new_with_label ("Frame Dropping"); + gtk_widget_ref (opt_framedrop); + gtk_object_set_data_full (GTK_OBJECT (window1), "opt_framedrop", opt_framedrop, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (opt_framedrop); + gtk_layout_put (GTK_LAYOUT (layout4), opt_framedrop, 24, 72); + gtk_widget_set_usize (opt_framedrop, 136, 24); + + opt_idx = gtk_check_button_new_with_label ("Build Index"); + gtk_widget_ref (opt_idx); + gtk_object_set_data_full (GTK_OBJECT (window1), "opt_idx", opt_idx, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (opt_idx); + gtk_layout_put (GTK_LAYOUT (layout4), opt_idx, 24, 112); + gtk_widget_set_usize (opt_idx, 102, 24); + + opt_onewin = gtk_check_button_new_with_label ("One Window (Experimental)"); + gtk_widget_ref (opt_onewin); + gtk_object_set_data_full (GTK_OBJECT (window1), "opt_onewin", opt_onewin, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (opt_onewin); + gtk_layout_put (GTK_LAYOUT (layout4), opt_onewin, 24, 152); + gtk_widget_set_usize (opt_onewin, 240, 24); + + label_other = gtk_label_new ("Other"); + gtk_widget_ref (label_other); + gtk_object_set_data_full (GTK_OBJECT (window1), "label_other", label_other, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label_other); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label_other); + + scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_ref (scrolledwindow5); + gtk_object_set_data_full (GTK_OBJECT (window1), "scrolledwindow5", scrolledwindow5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (scrolledwindow5); + gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow5); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + layout5 = gtk_layout_new (NULL, NULL); + gtk_widget_ref (layout5); + gtk_object_set_data_full (GTK_OBJECT (window1), "layout5", layout5, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (layout5); + gtk_container_add (GTK_CONTAINER (scrolledwindow5), layout5); + gtk_layout_set_size (GTK_LAYOUT (layout5), 346, 267); + GTK_ADJUSTMENT (GTK_LAYOUT (layout5)->hadjustment)->step_increment = 10; + GTK_ADJUSTMENT (GTK_LAYOUT (layout5)->vadjustment)->step_increment = 10; + + entry_extra_opts = gtk_entry_new (); + gtk_widget_ref (entry_extra_opts); + gtk_object_set_data_full (GTK_OBJECT (window1), "entry_extra_opts", entry_extra_opts, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (entry_extra_opts); + gtk_layout_put (GTK_LAYOUT (layout5), entry_extra_opts, 40, 192); + gtk_widget_set_usize (entry_extra_opts, 392, 24); + + 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."); + gtk_widget_ref (label_extra_des); + gtk_object_set_data_full (GTK_OBJECT (window1), "label_extra_des", label_extra_des, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label_extra_des); + gtk_layout_put (GTK_LAYOUT (layout5), label_extra_des, 40, 48); + gtk_widget_set_usize (label_extra_des, 392, 128); + gtk_label_set_justify (GTK_LABEL (label_extra_des), GTK_JUSTIFY_LEFT); + gtk_misc_set_alignment (GTK_MISC (label_extra_des), 0.18, 1); + + label_extra = gtk_label_new ("Extra"); + gtk_widget_ref (label_extra); + gtk_object_set_data_full (GTK_OBJECT (window1), "label_extra", label_extra, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (label_extra); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label_extra); + + btn_ok = gtk_button_new_with_label ("OK"); + gtk_widget_ref (btn_ok); + gtk_object_set_data_full (GTK_OBJECT (window1), "btn_ok", btn_ok, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (btn_ok); + gtk_layout_put (GTK_LAYOUT (layout1), btn_ok, 432, 376); + gtk_widget_set_usize (btn_ok, 88, 32); + + btn_cancel = gtk_button_new_with_label ("Cancel"); + gtk_widget_ref (btn_cancel); + gtk_object_set_data_full (GTK_OBJECT (window1), "btn_cancel", btn_cancel, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (btn_cancel); + gtk_layout_put (GTK_LAYOUT (layout1), btn_cancel, 24, 376); + gtk_widget_set_usize (btn_cancel, 88, 30); + + gtk_signal_connect(GTK_OBJECT(window1), + "destroy", + GTK_SIGNAL_FUNC(mplayer_destroyed_conf_win), + NULL); + + gtk_signal_connect (GTK_OBJECT (btn_ok), "clicked", + GTK_SIGNAL_FUNC (on_btn_ok_clicked), + NULL); + gtk_signal_connect (GTK_OBJECT (btn_cancel), "clicked", + GTK_SIGNAL_FUNC (on_btn_cancel_clicked), + NULL); + return window1; +} + +void mplayer_configure(){ + struct mplayer_cfg *cfg; + if (mplayer_configure_win) + return; + mplayer_configure_win=mplayer_create_configure_win(); + gtk_widget_show(mplayer_configure_win); + cfg=mplayer_read_cfg(); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_zoom),cfg->zoom); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_framedrop),cfg->framedrop); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_idx),cfg->idx); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_onewin),cfg->onewin); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (opt_xmmsaudio),cfg->xmmsaudio); + + switch(cfg->vo){ + case MPLAYER_VO_NONE: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_none), TRUE); + break; + case MPLAYER_VO_XV: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_xv), TRUE); + break; + case MPLAYER_VO_X11: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_x11), TRUE); + break; + case MPLAYER_VO_GL: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_gl), TRUE); + break; + case MPLAYER_VO_SDL: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vo_sdl), TRUE); + break; + } + switch(cfg->ao){ + case MPLAYER_AO_NONE: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_none), TRUE); + break; + case MPLAYER_AO_OSS: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_oss), TRUE); + break; + case MPLAYER_AO_ARTS: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_arts), TRUE); + break; + case MPLAYER_AO_ESD: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_esd), TRUE); + break; + case MPLAYER_AO_SDL: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_sdl), TRUE); + break; + case MPLAYER_AO_ALSA: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ao_alsa), TRUE); + break; + } + gtk_entry_set_text(GTK_ENTRY(entry_extra_opts),cfg->extra); +}
