From: Stéphane Borel Date: Fri, 16 Nov 2001 00:29:52 +0000 (+0000) Subject: * --chennels puts gtk/gnome in multi-channel network mode. X-Git-Tag: 0.3.0~392 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0050c5308561f7dcbf62d61bd005b20bcc8df6c4;p=vlc * --chennels puts gtk/gnome in multi-channel network mode. * the network window of the interface reports the values of the environment variables. * channels mode excludes vls configuration * the vlc does not try to bind vls.via.ecp.fr by default when you select channels mode. --- diff --git a/plugins/gtk/gnome_interface.c b/plugins/gtk/gnome_interface.c index 2101313788..4937830558 100644 --- a/plugins/gtk/gnome_interface.c +++ b/plugins/gtk/gnome_interface.c @@ -644,7 +644,7 @@ create_intf_window (void) gtk_widget_show (label_network); gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 5); - network_channel_spinbutton_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); + network_channel_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); network_channel_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_spinbutton_adj), 1, 0); gtk_widget_ref (network_channel_spinbutton); gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_spinbutton", network_channel_spinbutton, @@ -1382,8 +1382,8 @@ create_intf_network (void) GtkWidget *network_http; GtkWidget *frame4; GtkWidget *table2; - GtkWidget *label17; - GtkWidget *label18; + GtkWidget *network_server_label; + GtkWidget *network_port_label; GtkObject *network_port_adj; GtkWidget *network_port; GtkWidget *network_broadcast_check; @@ -1396,7 +1396,7 @@ create_intf_network (void) GtkWidget *network_channel_check; GtkWidget *network_channel_combo; GtkWidget *network_channel; - GtkWidget *channel_port; + GtkWidget *network_channel_port_label; GtkObject *network_channel_port_adj; GtkWidget *network_channel_port; GtkWidget *hbuttonbox1; @@ -1478,25 +1478,25 @@ create_intf_network (void) gtk_table_set_row_spacings (GTK_TABLE (table2), 5); gtk_table_set_col_spacings (GTK_TABLE (table2), 5); - label17 = gtk_label_new (_("Address")); - gtk_widget_ref (label17); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "label17", label17, + network_server_label = gtk_label_new (_("Address")); + gtk_widget_ref (network_server_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server_label", network_server_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label17); - gtk_table_attach (GTK_TABLE (table2), label17, 0, 1, 0, 1, + gtk_widget_show (network_server_label); + gtk_table_attach (GTK_TABLE (table2), network_server_label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (network_server_label), 0, 0.5); - label18 = gtk_label_new (_("Port")); - gtk_widget_ref (label18); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "label18", label18, + network_port_label = gtk_label_new (_("Port")); + gtk_widget_ref (network_port_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_port_label", network_port_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label18); - gtk_table_attach (GTK_TABLE (table2), label18, 0, 1, 1, 2, + gtk_widget_show (network_port_label); + gtk_table_attach (GTK_TABLE (table2), network_port_label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (network_port_label), 0, 0.5); network_port_adj = gtk_adjustment_new (1234, 1024, 65535, 1, 10, 10); network_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_port_adj), 1, 0); @@ -1588,12 +1588,12 @@ create_intf_network (void) gtk_widget_show (network_channel); gtk_entry_set_text (GTK_ENTRY (network_channel), _("138.195.143.120")); - channel_port = gtk_label_new (_("port:")); - gtk_widget_ref (channel_port); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "channel_port", channel_port, + network_channel_port_label = gtk_label_new (_("port:")); + gtk_widget_ref (network_channel_port_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_channel_port_label", network_channel_port_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (channel_port); - gtk_box_pack_start (GTK_BOX (hbox4), channel_port, FALSE, FALSE, 5); + gtk_widget_show (network_channel_port_label); + gtk_box_pack_start (GTK_BOX (hbox4), network_channel_port_label, FALSE, FALSE, 5); network_channel_port_adj = gtk_adjustment_new (6010, 1024, 65535, 1, 10, 10); network_channel_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_port_adj), 1, 0); diff --git a/plugins/gtk/gtk_callbacks.c b/plugins/gtk/gtk_callbacks.c index 3ec0199ee2..b894ab07ea 100644 --- a/plugins/gtk/gtk_callbacks.c +++ b/plugins/gtk/gtk_callbacks.c @@ -2,7 +2,7 @@ * gtk_callbacks.c : Callbacks for the Gtk+ plugin. ***************************************************************************** * Copyright (C) 2000, 2001 VideoLAN - * $Id: gtk_callbacks.c,v 1.25 2001/11/12 04:12:37 sam Exp $ + * $Id: gtk_callbacks.c,v 1.26 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * Stéphane Borel @@ -336,7 +336,7 @@ void GtkChannelGo( GtkButton * button, gpointer user_data ) vlc_mutex_unlock( &p_intf->change_lock ); - input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); +// input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); } diff --git a/plugins/gtk/gtk_display.c b/plugins/gtk/gtk_display.c index cc2da595bc..4a4a2afc5d 100644 --- a/plugins/gtk/gtk_display.c +++ b/plugins/gtk/gtk_display.c @@ -2,7 +2,7 @@ * gtk_display.c: Gtk+ tools for main interface ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN - * $Id: gtk_display.c,v 1.6 2001/08/09 08:20:26 sam Exp $ + * $Id: gtk_display.c,v 1.7 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * Stéphane Borel @@ -204,27 +204,39 @@ gint GtkModeManage( intf_thread_t * p_intf ) } else { + if( main_GetIntVariable( INPUT_NETWORK_CHANNEL_VAR, + INPUT_NETWORK_CHANNEL_DEFAULT ) ) + { + gtk_widget_show( GTK_WIDGET( p_network_box ) ); + + p_channel = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( + p_intf->p_sys->p_window ), "network_channel_box" ) ); + gtk_widget_show( GTK_WIDGET( p_channel ) ); + } + else + { //intf_WarnMsg( 2, "intf info: default to file method" ); - /* default mode */ - p_label = gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_window ), - "label_status" ); - gtk_label_set_text( GTK_LABEL( p_label ), "" ); - gtk_widget_show( GTK_WIDGET( p_file_box ) ); - - /* unsensitize menus */ - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_title"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_chapter"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_angle"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_audio"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_subpictures"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_navigation"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_angle"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_audio"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_subpictures"), - FALSE ); + /* default mode */ + p_label = gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_window ), "label_status" ); + gtk_label_set_text( GTK_LABEL( p_label ), "" ); + gtk_widget_show( GTK_WIDGET( p_file_box ) ); + + /* unsensitize menus */ + gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_title"), FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_chapter"), + FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_angle"), FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_audio"), FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_subpictures"), + FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_navigation"), + FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_angle"), FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_audio"), FALSE ); + gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_subpictures"), + FALSE ); + } } /* set control items */ diff --git a/plugins/gtk/gtk_interface.c b/plugins/gtk/gtk_interface.c index 4f7f276a5b..b5f00b853d 100644 --- a/plugins/gtk/gtk_interface.c +++ b/plugins/gtk/gtk_interface.c @@ -741,7 +741,7 @@ create_intf_window (void) gtk_widget_show (channel_label); gtk_box_pack_start (GTK_BOX (network_channel_box), channel_label, FALSE, FALSE, 5); - network_channel_spinbutton_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); + network_channel_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); network_channel_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_spinbutton_adj), 1, 0); gtk_widget_ref (network_channel_spinbutton); gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_spinbutton", network_channel_spinbutton, @@ -1594,8 +1594,8 @@ create_intf_network (void) GtkWidget *table2; GtkObject *network_port_adj; GtkWidget *network_port; - GtkWidget *label24; - GtkWidget *label25; + GtkWidget *network_port_label; + GtkWidget *network_server_label; GtkWidget *network_broadcast_check; GtkWidget *network_broadcast_combo; GtkWidget *network_broadcast; @@ -1607,7 +1607,7 @@ create_intf_network (void) GtkWidget *network_channel_check; GtkWidget *network_channel_combo; GtkWidget *network_channel; - GtkWidget *channel_port; + GtkWidget *network_channel_port_label; GtkObject *network_channel_port_adj; GtkWidget *network_channel_port; GtkWidget *hbox4; @@ -1707,25 +1707,25 @@ create_intf_network (void) (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); - label24 = gtk_label_new (_("Port")); - gtk_widget_ref (label24); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "label24", label24, + network_port_label = gtk_label_new (_("Port")); + gtk_widget_ref (network_port_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_port_label", network_port_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label24); - gtk_table_attach (GTK_TABLE (table2), label24, 0, 1, 1, 2, + gtk_widget_show (network_port_label); + gtk_table_attach (GTK_TABLE (table2), network_port_label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (network_port_label), 0, 0.5); - label25 = gtk_label_new (_("Address")); - gtk_widget_ref (label25); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "label25", label25, + network_server_label = gtk_label_new (_("Address")); + gtk_widget_ref (network_server_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server_label", network_server_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label25); - gtk_table_attach (GTK_TABLE (table2), label25, 0, 1, 0, 1, + gtk_widget_show (network_server_label); + gtk_table_attach (GTK_TABLE (table2), network_server_label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (network_server_label), 0, 0.5); network_broadcast_check = gtk_check_button_new_with_label (_("Broadcast")); gtk_widget_ref (network_broadcast_check); @@ -1809,12 +1809,12 @@ create_intf_network (void) gtk_widget_show (network_channel); gtk_entry_set_text (GTK_ENTRY (network_channel), _("138.195.143.120")); - channel_port = gtk_label_new (_("port:")); - gtk_widget_ref (channel_port); - gtk_object_set_data_full (GTK_OBJECT (intf_network), "channel_port", channel_port, + network_channel_port_label = gtk_label_new (_("port:")); + gtk_widget_ref (network_channel_port_label); + gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_channel_port_label", network_channel_port_label, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (channel_port); - gtk_box_pack_start (GTK_BOX (hbox14), channel_port, FALSE, FALSE, 5); + gtk_widget_show (network_channel_port_label); + gtk_box_pack_start (GTK_BOX (hbox14), network_channel_port_label, FALSE, FALSE, 5); network_channel_port_adj = gtk_adjustment_new (6010, 1024, 100, 1, 10, 10); network_channel_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_port_adj), 1, 0); diff --git a/plugins/gtk/gtk_open.c b/plugins/gtk/gtk_open.c index 9169f32a6f..b97e2743a6 100644 --- a/plugins/gtk/gtk_open.c +++ b/plugins/gtk/gtk_open.c @@ -2,7 +2,7 @@ * gtk_open.c : functions to handle file/disc/network open widgets. ***************************************************************************** * Copyright (C) 2000, 2001 VideoLAN - * $Id: gtk_open.c,v 1.7 2001/10/10 14:25:15 sam Exp $ + * $Id: gtk_open.c,v 1.8 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * Stéphane Borel @@ -268,6 +268,41 @@ gboolean GtkNetworkOpenShow( GtkWidget *widget, p_intf->p_sys->p_network = create_intf_network(); gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_network ), "p_intf", p_intf ); + + gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_network ), "network_server" ) ), + main_GetPszVariable( INPUT_SERVER_VAR, + INPUT_SERVER_DEFAULT ) ); + + gtk_spin_button_set_value( GTK_SPIN_BUTTON( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_network ), "network_port" ) ), + main_GetIntVariable( INPUT_PORT_VAR, + INPUT_PORT_DEFAULT ) ); + + gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_network ), "network_broadcast" ) ), + main_GetPszVariable( INPUT_BCAST_ADDR_VAR, + INPUT_BCAST_ADDR_DEFAULT ) ); + + gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_network ), "network_channel" ) ), + main_GetPszVariable( INPUT_CHANNEL_SERVER_VAR, + INPUT_CHANNEL_SERVER_DEFAULT ) ); + + gtk_spin_button_set_value( GTK_SPIN_BUTTON( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_network ), "network_channel_port" ) ), + main_GetIntVariable( INPUT_CHANNEL_PORT_VAR, + INPUT_CHANNEL_PORT_DEFAULT ) ); + + gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( + p_intf->p_sys->p_network ), "network_channel_check" ), + main_GetIntVariable( INPUT_NETWORK_CHANNEL_VAR, + INPUT_NETWORK_CHANNEL_DEFAULT ) ); + + gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( + p_intf->p_sys->p_network ), "network_broadcast_check" ), + main_GetIntVariable( INPUT_BROADCAST_VAR, + INPUT_BROADCAST_DEFAULT ) ); } gtk_widget_show( p_intf->p_sys->p_network ); @@ -291,6 +326,12 @@ void GtkNetworkOpenOk( GtkButton *button, gpointer user_data ) psz_server = gtk_entry_get_text( GTK_ENTRY( lookup_widget( GTK_WIDGET(button), "network_server" ) ) ); + /* select added item */ + if( p_intf->p_input != NULL ) + { + p_intf->p_input->b_eof = 1; + } + /* Check which protocol was activated */ if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), "network_ts" ) )->active ) @@ -308,54 +349,6 @@ void GtkNetworkOpenOk( GtkButton *button, gpointer user_data ) return; } - /* Get the port number and make sure it will not overflow 5 characters */ - i_port = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( - lookup_widget( GTK_WIDGET(button), "network_port" ) ) ); - if( i_port > 65535 ) - { - intf_ErrMsg( "intf error: invalid port %i", i_port ); - } - - /* do we have a broadcast address */ - b_broadcast = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( - lookup_widget( GTK_WIDGET(button), "network_broadcast_check" ) ) ); - if( b_broadcast ) - { - char * psz_broadcast; - psz_broadcast = gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "network_broadcast" ) ) ); - /* Allocate room for "protocol://server:port" */ - psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */ - + strlen( psz_server ) + 1 /* ":" */ - + 5 /* 0-65535 */ - + strlen( psz_broadcast ) + 2 /* "::" */ - + 1 /* "\0" */ ); - if( psz_source == NULL ) - { - return; - } - - /* Build source name and add it to playlist */ - sprintf( psz_source, "%s://%s:%i/%s", psz_protocol, - psz_server, - i_port, - psz_broadcast ); - } - else - { - /* Allocate room for "protocol://server:port" */ - psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */ - + strlen( psz_server ) + 1 /* ":" */ - + 5 /* 0-65535 */ + 1 /* "\0" */ ); - if( psz_source == NULL ) - { - return; - } - - /* Build source name and add it to playlist */ - sprintf( psz_source, "%s://%s:%i", psz_protocol, psz_server, i_port ); - } - /* Manage channel server */ b_channel = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), "network_channel_check" ) ) ); @@ -380,24 +373,73 @@ void GtkNetworkOpenOk( GtkButton *button, gpointer user_data ) { main_PutIntVariable( INPUT_CHANNEL_PORT_VAR, i_channel_port ); } - } - intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, psz_source ); - free( psz_source ); + p_intf->p_sys->b_playing = 1; - /* catch the GTK CList */ - p_playlist_clist = GTK_CLIST( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) ); - /* update the display */ - GtkRebuildCList( p_playlist_clist, p_main->p_playlist ); - - /* select added item */ - if( p_intf->p_input != NULL ) - { - p_intf->p_input->b_eof = 1; } + else + { + /* Get the port number and make sure it will not + * overflow 5 characters */ + i_port = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( + lookup_widget( GTK_WIDGET(button), "network_port" ) ) ); + if( i_port > 65535 ) + { + intf_ErrMsg( "intf error: invalid port %i", i_port ); + } - intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 ); + /* do we have a broadcast address */ + b_broadcast = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( + lookup_widget( GTK_WIDGET(button), "network_broadcast_check" ) ) ); + if( b_broadcast ) + { + char * psz_broadcast; + psz_broadcast = gtk_entry_get_text( GTK_ENTRY( lookup_widget( + GTK_WIDGET(button), "network_broadcast" ) ) ); + /* Allocate room for "protocol://server:port" */ + psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */ + + strlen( psz_server ) + 1 /* ":" */ + + 5 /* 0-65535 */ + + strlen( psz_broadcast ) + 2 /* "::" */ + + 1 /* "\0" */ ); + if( psz_source == NULL ) + { + return; + } + + /* Build source name and add it to playlist */ + sprintf( psz_source, "%s://%s:%i/%s", psz_protocol, + psz_server, + i_port, + psz_broadcast ); + } + else + { + /* Allocate room for "protocol://server:port" */ + psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */ + + strlen( psz_server ) + 1 /* ":" */ + + 5 /* 0-65535 */ + 1 /* "\0" */ ); + if( psz_source == NULL ) + { + return; + } + + /* Build source name and add it to playlist */ + sprintf( psz_source, "%s://%s:%i", + psz_protocol, psz_server, i_port ); + } + + intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, psz_source ); + free( psz_source ); + + /* catch the GTK CList */ + p_playlist_clist = GTK_CLIST( gtk_object_get_data( + GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) ); + /* update the display */ + GtkRebuildCList( p_playlist_clist, p_main->p_playlist ); + + intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 ); + } } void GtkNetworkOpenCancel( GtkButton * button, gpointer user_data) @@ -427,21 +469,49 @@ void GtkNetworkOpenChannel( GtkToggleButton * togglebutton, gpointer user_data ) { GtkWidget * p_network; + boolean_t b_channel; + boolean_t b_broadcast; p_network = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); + b_channel = gtk_toggle_button_get_active( togglebutton ); + b_broadcast = gtk_toggle_button_get_active( gtk_object_get_data( + GTK_OBJECT( p_network ), "network_broadcast_check" ) ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_channel_combo" ), b_channel ) ; gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), - "network_channel_combo" ), - gtk_toggle_button_get_active( togglebutton ) ); + "network_channel" ), b_channel ); gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), - "network_channel" ), - gtk_toggle_button_get_active( togglebutton ) ); + "network_channel_port" ), b_channel ); gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), - "network_channel_port" ), - gtk_toggle_button_get_active( togglebutton ) ); + "network_channel_port_label" ), b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_server_combo" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_server_label" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_server" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_port_label" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_port" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_broadcast_check" ), ! b_channel ); + + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_broadcast_combo" ), b_broadcast && ! b_channel ); + gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ), + "network_broadcast" ), b_broadcast && ! b_channel ); } diff --git a/plugins/gtk/intf_gnome.c b/plugins/gtk/intf_gnome.c index 84fc17cd72..f3a02905e4 100644 --- a/plugins/gtk/intf_gnome.c +++ b/plugins/gtk/intf_gnome.c @@ -2,7 +2,7 @@ * intf_gnome.c: Gnome interface ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN - * $Id: intf_gnome.c,v 1.4 2001/10/04 00:50:24 sam Exp $ + * $Id: intf_gnome.c,v 1.5 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * Stéphane Borel @@ -145,6 +145,7 @@ static int intf_Open( intf_thread_t *p_intf ) } /* Initialize Gnome thread */ + p_intf->p_sys->b_playing = 1; p_intf->p_sys->b_popup_changed = 0; p_intf->p_sys->b_window_changed = 0; p_intf->p_sys->b_playlist_changed = 0; @@ -325,6 +326,7 @@ static gint GnomeManage( gpointer p_data ) { GtkModeManage( p_intf ); GtkSetupMenus( p_intf ); + p_intf->p_sys->b_playing = 1; } /* Manage the slider */ @@ -370,9 +372,10 @@ static gint GnomeManage( gpointer p_data ) vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock ); } - else if( !p_intf->b_die ) + else if( p_intf->p_sys->b_playing && !p_intf->b_die ) { GtkModeManage( p_intf ); + p_intf->p_sys->b_playing = 0; } /* Manage core vlc functions through the callback */ diff --git a/plugins/gtk/intf_gnome.glade b/plugins/gtk/intf_gnome.glade index 8c21e7b5c5..c50963256b 100644 --- a/plugins/gtk/intf_gnome.glade +++ b/plugins/gtk/intf_gnome.glade @@ -909,7 +909,7 @@ GTK_UPDATE_ALWAYS False False - 1 + 0 0 100 1 @@ -1953,7 +1953,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - label17 + network_server_label GTK_JUSTIFY_CENTER False @@ -1979,7 +1979,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - label18 + network_port_label GTK_JUSTIFY_CENTER False @@ -2194,7 +2194,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - channel_port + network_channel_port_label GTK_JUSTIFY_CENTER False diff --git a/plugins/gtk/intf_gtk.c b/plugins/gtk/intf_gtk.c index 0d7bc20102..4d2ee9fac9 100644 --- a/plugins/gtk/intf_gtk.c +++ b/plugins/gtk/intf_gtk.c @@ -2,7 +2,7 @@ * intf_gtk.c: Gtk+ interface ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN - * $Id: intf_gtk.c,v 1.26 2001/10/04 00:50:24 sam Exp $ + * $Id: intf_gtk.c,v 1.27 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * Stéphane Borel @@ -146,6 +146,7 @@ static int intf_Open( intf_thread_t *p_intf ) } /* Initialize Gtk+ thread */ + p_intf->p_sys->b_playing = 1; p_intf->p_sys->b_popup_changed = 0; p_intf->p_sys->b_window_changed = 0; p_intf->p_sys->b_playlist_changed = 0; @@ -325,6 +326,7 @@ static gint GtkManage( gpointer p_data ) { GtkModeManage( p_intf ); GtkSetupMenus( p_intf ); + p_intf->p_sys->b_playing = 1; } /* Manage the slider */ @@ -371,9 +373,10 @@ static gint GtkManage( gpointer p_data ) vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock ); } - else if( !p_intf->b_die ) + else if( p_intf->p_sys->b_playing && !p_intf->b_die ) { GtkModeManage( p_intf ); + p_intf->p_sys->b_playing = 0; } /* Manage core vlc functions through the callback */ diff --git a/plugins/gtk/intf_gtk.glade b/plugins/gtk/intf_gtk.glade index 2ffab62472..871bb0bc30 100644 --- a/plugins/gtk/intf_gtk.glade +++ b/plugins/gtk/intf_gtk.glade @@ -907,7 +907,7 @@ GTK_UPDATE_ALWAYS False False - 1 + 0 0 100 1 @@ -2064,7 +2064,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - label24 + network_port_label GTK_JUSTIFY_CENTER False @@ -2090,7 +2090,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - label25 + network_server_label GTK_JUSTIFY_CENTER False @@ -2288,7 +2288,7 @@ Henri Fallon <henri@via.ecp.fr> GtkLabel - channel_port + network_channel_port_label GTK_JUSTIFY_CENTER False diff --git a/plugins/gtk/intf_gtk.h b/plugins/gtk/intf_gtk.h index 8cc266f26b..8d225ee754 100644 --- a/plugins/gtk/intf_gtk.h +++ b/plugins/gtk/intf_gtk.h @@ -2,7 +2,7 @@ * intf_gtk.h: private Gtk+ interface description ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN - * $Id: intf_gtk.h,v 1.8 2001/10/04 00:50:24 sam Exp $ + * $Id: intf_gtk.h,v 1.9 2001/11/16 00:29:52 stef Exp $ * * Authors: Samuel Hocevar * @@ -43,6 +43,7 @@ static __inline__ intf_thread_t * GetIntf( GtkWidget *item, char * psz_parent ) typedef struct intf_sys_s { /* special actions */ + boolean_t b_playing; boolean_t b_popup_changed; /* display menu ? */ boolean_t b_window_changed; /* window display toggled ? */ boolean_t b_playlist_changed; /* playlist display toggled ? */ diff --git a/src/misc/netutils.c b/src/misc/netutils.c index b4a1d6df45..12c15503aa 100644 --- a/src/misc/netutils.c +++ b/src/misc/netutils.c @@ -2,7 +2,7 @@ * netutils.c: various network functions ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: netutils.c,v 1.45 2001/11/13 00:46:23 sam Exp $ + * $Id: netutils.c,v 1.46 2001/11/16 00:29:52 stef Exp $ * * Authors: Vincent Seguin * Benoit Steiner @@ -402,8 +402,15 @@ int network_ChannelJoin( int i_channel ) # define p_item \ (&p_main->p_playlist->p_item[ p_main->p_playlist->i_index + 1]) vlc_mutex_lock( &p_main->p_playlist->change_lock ); - free( p_item->psz_name ); - p_item->psz_name = strdup( psz_mess ); + if( p_item ) + { + free( p_item->psz_name ); + p_item->psz_name = strdup( psz_mess ); + } + else + { + intf_PlaylistAdd( p_main->p_playlist, 0, psz_mess ); + } vlc_mutex_unlock( &p_main->p_playlist->change_lock ); }