+
+void
+on_broadcast_check_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data)
+{
+ GtkWidget * p_network;
+
+ p_network = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) );
+ gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ),
+ "network_broadcast_combo" ),
+ gtk_toggle_button_get_active( togglebutton ) );
+ gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ),
+ "network_broadcast" ),
+ gtk_toggle_button_get_active( togglebutton ) );
+}
+
+
+/****************************************************************************
+ * Jump window
+ ****************************************************************************
+ * Those callback are received from the jump window that allow to select
+ * an arbitrary position of the stream.
+ ****************************************************************************/
+void
+on_jump_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ on_jump_apply_clicked( button, user_data );
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+void
+on_jump_apply_clicked (GtkButton *button,
+ gpointer user_data)
+{
+#if 1
+ intf_thread_t * p_intf;
+ off_t i_seek;
+ off_t i_size;
+ int i_hours;
+ int i_minutes;
+ int i_seconds;
+
+ p_intf = GetIntf( GTK_WIDGET( button ), "intf_jump" );
+
+#define GET_VALUE( name ) \
+ gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( gtk_object_get_data( \
+ GTK_OBJECT( p_intf->p_sys->p_jump ), name ) ) )
+
+ i_hours = GET_VALUE( "jump_hour_spinbutton" );
+ i_minutes = GET_VALUE( "jump_minute_spinbutton" );
+ i_seconds = GET_VALUE( "jump_second_spinbutton" );
+
+#undef GET_VALUE
+
+ i_seconds += 60 *i_minutes + 3600* i_hours;
+
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
+ i_seek = i_seconds * 50 * p_intf->p_input->stream.i_mux_rate;
+ i_size = p_intf->p_input->stream.p_selected_area->i_size;
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
+
+ if( i_seek < i_size )
+ {
+ input_Seek( p_intf->p_input, i_seek );
+ }
+#endif
+}
+
+
+void
+on_jump_cancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+/****************************************************************************
+ * Preferences window callbacks
+ ****************************************************************************/
+void
+on_preferences_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ on_preferences_apply_clicked( button, user_data );
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+void
+on_preferences_apply_clicked (GtkButton *button,
+ gpointer user_data)
+{
+#if 1
+ GtkWidget * p_preferences;
+
+ /* get preferences window */
+ p_preferences = gtk_widget_get_toplevel( GTK_WIDGET( button ) );
+
+#define ASSIGN_PSZ_ENTRY( var, name ) \
+ main_PutPszVariable( var, gtk_entry_get_text( \
+ GTK_ENTRY( gtk_object_get_data( GTK_OBJECT( p_preferences ), name ) ) ) )
+
+#define ASSIGN_INT_VALUE( var, name ) \
+ main_PutIntVariable( var, gtk_spin_button_get_value_as_int( \
+ GTK_SPIN_BUTTON( gtk_object_get_data( GTK_OBJECT( p_preferences ), \
+ name ) ) ) )
+
+#define ASSIGN_INT_TOGGLE( var, name ) \
+ main_PutIntVariable( var, gtk_toggle_button_get_active( \
+ GTK_TOGGLE_BUTTON( gtk_object_get_data( GTK_OBJECT( p_preferences ), \
+ name ) ) ) )
+
+ /* Default path */
+ ASSIGN_PSZ_ENTRY( INTF_PATH_VAR, "preferences_file_entry" );
+
+ /* Default DVD */
+ ASSIGN_PSZ_ENTRY( INPUT_DVD_DEVICE_VAR, "preferences_disc_dvd_entry" );
+
+ /* Default VCD */
+ ASSIGN_PSZ_ENTRY( INPUT_VCD_DEVICE_VAR, "preferences_disc_vcd_entry" );
+
+ /* Default server */
+ ASSIGN_PSZ_ENTRY( INPUT_SERVER_VAR, "preferences_network_server_entry" );
+
+ /* Default port */
+ ASSIGN_INT_VALUE( INPUT_PORT_VAR, "preferences_network_port_spinbutton" );
+
+ /* Broadcast address */
+ ASSIGN_PSZ_ENTRY( INPUT_BCAST_ADRR_VAR,
+ "preferences_network_broadcast_entry" );
+
+ /* Broadcast stream by default ? */
+ ASSIGN_INT_TOGGLE( INPUT_BROADCAST_VAR,
+ "preferences_network_broadcast_checkbutton" );
+
+ /* XXX Protocol */
+
+ /* Default interface */
+ ASSIGN_PSZ_ENTRY( INTF_METHOD_VAR, "preferences_interface_entry" );
+
+ /* Default video output */
+ ASSIGN_PSZ_ENTRY( VOUT_METHOD_VAR, "preferences_video_output_entry" );
+
+ /* Default output width */
+ ASSIGN_INT_VALUE( VOUT_WIDTH_VAR, "preferences_video_width_spinbutton" );
+
+ /* Default output height */
+ ASSIGN_INT_VALUE( VOUT_HEIGHT_VAR, "preferences_video_height_spinbutton" );
+
+ /* XXX Default screen depth */
+
+ /* XXX Default fullscreen depth */
+
+ /* XXX Default gamma */
+
+ /* Fullscreen on play */
+ ASSIGN_INT_TOGGLE( VOUT_FULLSCREEN_VAR,
+ "preferences_video_fullscreen_checkbutton" );
+
+ /* Grayscale display */
+ ASSIGN_INT_TOGGLE( VOUT_GRAYSCALE_VAR,
+ "preferences_video_grayscale_checkbutton" );
+
+ /* Default audio output */
+ ASSIGN_PSZ_ENTRY( AOUT_METHOD_VAR, "preferences_audio_output_entry" );
+
+ /* Default audio device */
+ ASSIGN_PSZ_ENTRY( AOUT_DSP_VAR, "preferences_audio_device_entry" );
+
+ /* XXX Default frequency */
+
+ /* XXX Default quality */
+
+ /* XXX Default number of channels */
+
+ /* Use spdif output ? */
+ ASSIGN_INT_TOGGLE( AOUT_SPDIF_VAR, "preferences_audio_spdif_checkbutton" );
+
+ /* Launch playlist on startup */
+ ASSIGN_INT_TOGGLE( PLAYLIST_STARTUP_VAR,
+ "preferences_playlist_launch_on_startup_checkbutton" );
+
+ /* Enqueue drag'n dropped item as default */
+ ASSIGN_INT_TOGGLE( PLAYLIST_ENQUEUE_VAR,
+ "preferences_playlist_enqueue_as_default_checkbutton" );
+
+ /* Loop on playlist end */
+ ASSIGN_INT_TOGGLE( PLAYLIST_LOOP_VAR,
+ "preferences_playlist_loop_checkbutton" );
+
+ /* Verbosity of warning messages */
+ ASSIGN_INT_VALUE( INTF_WARNING_VAR,
+ "preferences_misc_messages_spinbutton" );
+#undef ASSIGN_PSZ_ENTRY
+#undef ASSIGN_INT_VALUE
+#undef ASSIGN_INT_TOGGLE
+#endif
+}
+
+
+void
+on_preferences_cancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+