* -dvd_udf to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: input_dvd.c,v 1.58 2001/05/15 01:01:44 stef Exp $
+ * $Id: input_dvd.c,v 1.59 2001/05/15 14:49:47 stef Exp $
*
* Author: Stéphane Borel <stef@via.ecp.fr>
*
p_input->stream.p_selected_area->i_tell = i_off -
p_input->stream.p_selected_area->i_start;
p_input->stream.p_selected_area->i_part = p_dvd->i_chapter;
-
+intf_WarnMsg( 2, "chapter %d", p_dvd->i_chapter);
/* the synchro has to be reinitialized when we change cell */
p_input->stream.pp_programs[0]->i_synchro_state = SYNCHRO_REINIT;
* gtk_callbacks.c : Callbacks for the Gtk+ plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_callbacks.c,v 1.17 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_callbacks.c,v 1.18 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Main interface callbacks
*/
-gboolean
-GtkExit (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkExit( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
return TRUE;
}
-gboolean
-GtkWindowDelete (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
+gboolean GtkWindowDelete( GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data )
{
GtkExit( GTK_WIDGET( widget ), NULL, user_data );
}
-gboolean
-GtkWindowToggle (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkWindowToggle( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
return TRUE;
}
-gboolean
-GtkFullscreen (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkFullscreen( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
{
if( p_vout_bank->i_count )
{
vlc_mutex_lock( &p_vout_bank->pp_vout[0]->change_lock );
- if( p_vout_bank->pp_vout[0]->b_fullscreen ==
- !GTK_CHECK_MENU_ITEM( widget )->active )
- p_vout_bank->pp_vout[0]->i_changes |= VOUT_FULLSCREEN_CHANGE;
+
+ p_vout_bank->pp_vout[0]->i_changes |= VOUT_FULLSCREEN_CHANGE;
+
vlc_mutex_unlock( &p_vout_bank->pp_vout[0]->change_lock );
- }
- return TRUE;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
}
-void
-GtkWindowDrag (GtkWidget *widget,
- GdkDragContext *drag_context,
- gint x,
- gint y,
- GtkSelectionData *data,
- guint info,
- guint time,
- gpointer user_data)
+void GtkWindowDrag( GtkWidget *widget,
+ GdkDragContext *drag_context,
+ gint x,
+ gint y,
+ GtkSelectionData *data,
+ guint info,
+ guint time,
+ gpointer user_data)
{
intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
int end = p_main->p_playlist->i_size;
- GtkDropDataReceived( p_intf, data, info, PLAYLIST_END);
+ GtkDropDataReceived( p_intf, data, info, PLAYLIST_END );
if( p_intf->p_input != NULL )
{
}
intf_PlaylistJumpto( p_main->p_playlist, end-1 );
- p_main->p_playlist->b_stopped = 0;
}
+/****************************************************************************
+ * Slider management
+ ****************************************************************************/
-gboolean
-GtkSliderRelease (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkSliderRelease( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
}
-gboolean
-GtkSliderPress (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkSliderPress( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
}
-void
-GtkTitlePrev (GtkButton *button,
- gpointer user_data)
+/****************************************************************************
+ * DVD specific items
+ ****************************************************************************/
+
+void GtkTitlePrev( GtkButton * button, gpointer user_data )
{
intf_thread_t * p_intf;
input_area_t * p_area;
}
-void
-GtkTitleNext (GtkButton *button,
- gpointer user_data)
+void GtkTitleNext( GtkButton * button, gpointer user_data )
{
intf_thread_t * p_intf;
input_area_t * p_area;
int i_id;
- p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ p_intf = GetIntf( GTK_WIDGET(button), (char*)user_data );
i_id = p_intf->p_input->stream.p_selected_area->i_id + 1;
if( i_id < p_intf->p_input->stream.i_area_nb )
}
-void
-GtkChapterPrev (GtkButton *button,
- gpointer user_data)
+void GtkChapterPrev( GtkButton * button, gpointer user_data )
{
intf_thread_t * p_intf;
input_area_t * p_area;
}
-void
-GtkChapterNext (GtkButton *button,
- gpointer user_data)
+void GtkChapterNext( GtkButton * button, gpointer user_data )
{
intf_thread_t * p_intf;
input_area_t * p_area;
}
-void
-GtkFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void
-GtkDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void
-GtkNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-
-}
-
-
-void
-GtkExitActivate (GtkMenuItem *menuitem,
- gpointer user_data)
+/****************************************************************************
+ * Callbacks for menuitems
+ ****************************************************************************/
+void GtkExitActivate( GtkMenuItem * menuitem, gpointer user_data )
{
GtkExit( GTK_WIDGET( menuitem ), NULL, user_data );
}
-void
-GtkWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkWindowToggle( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void
-GtkFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
+void GtkFullscreenActivate( GtkMenuItem * menuitem, gpointer user_data )
{
GtkFullscreen( GTK_WIDGET( menuitem ), NULL, user_data );
}
-void
-GtkPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data)
+void GtkWindowToggleActivate( GtkMenuItem * menuitem, gpointer user_data )
{
- GtkPlaylistShow( GTK_WIDGET( menuitem ), NULL, user_data );
+ GtkWindowToggle( GTK_WIDGET( menuitem ), NULL, user_data );
}
-void
-GtkModulesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
+void GtkAboutActivate( GtkMenuItem * menuitem, gpointer user_data )
{
-
+ GtkAboutShow( GTK_WIDGET( menuitem ), NULL, user_data );
}
-void
-GtkPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
+void GtkJumpActivate( GtkMenuItem * menuitem, gpointer user_data )
{
- GtkPreferencesShow( GTK_WIDGET( menuitem ), NULL, user_data );
+ GtkJumpShow( GTK_WIDGET( menuitem ), NULL, user_data );
}
-
void
-GtkAboutActivate (GtkMenuItem *menuitem,
+GtkPlaylistDestroy (GtkObject *object,
gpointer user_data)
{
- GtkAboutShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void
-GtkJumpActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkJumpShow( GTK_WIDGET( menuitem ), NULL, user_data );
}
-
-
/* General glade callbacks */
-gboolean
-GtkExit (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-gboolean
-GtkWindowToggle (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-
-gboolean
-GtkSliderRelease (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-gboolean
-GtkSliderPress (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-void
-GtkTitlePrev (GtkButton *button,
- gpointer user_data);
-
-void
-GtkTitleNext (GtkButton *button,
- gpointer user_data);
-
-void
-GtkChapterPrev (GtkButton *button,
- gpointer user_data);
-
-void
-GtkChapterNext (GtkButton *button,
- gpointer user_data);
-
-
-gboolean
-GtkFullscreen (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-gboolean
-GtkAboutShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-void GtkAboutOk( GtkButton * button, gpointer user_data);
-
-
-void
-GtkWindowDrag (GtkWidget *widget,
- GdkDragContext *drag_context,
- gint x,
- gint y,
- GtkSelectionData *data,
- guint info,
- guint time,
- gpointer user_data);
-
-gboolean
-GtkWindowDelete (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data);
-
-gboolean
-GtkJumpShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-void
-GtkJumpOk (GtkButton *button,
- gpointer user_data);
-void
-GtkJumpCancel (GtkButton *button,
- gpointer user_data);
-
-
-gboolean
-GtkDiscOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-gboolean
-GtkFileOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-gboolean
-GtkNetworkOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-
-
-void
-on_menubar_open_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_open_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_disc_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_network_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_exit_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_interface_hide_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_fullscreen_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_playlist_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_modules_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_preferences_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_menubar_about_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_play_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_pause_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_stop_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_back_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_slow_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_fast_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_interface_toggle_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_fullscreen_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_next_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_prev_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_jump_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_file_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_disc_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_network_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_about_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_playlist_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_preferences_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-on_popup_exit_activate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-
-
-void
-GtkPreferencesOk (GtkButton *button,
- gpointer user_data);
-
-void
-GtkPreferencesApply (GtkButton *button,
- gpointer user_data);
-
-void
-GtkPreferencesCancel (GtkButton *button,
- gpointer user_data);
-
-void
-GtkFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkExitActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkModulesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkAboutActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-
-void
-GtkNextActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkPrevActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkJumpActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkPlaylistAddUrl (GtkMenuItem *menuitem,
+/* main window callbacks: specific prototypes are in headers listed before */
+
+gboolean GtkExit ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkWindowToggle ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkFullscreen ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkSliderRelease ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkSliderPress ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkWindowDelete ( GtkWidget * widget, GdkEvent *, gpointer );
+gboolean GtkJumpShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkAboutShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkTitlePrev ( GtkButton * button, gpointer );
+void GtkTitleNext ( GtkButton * button, gpointer );
+void GtkChapterPrev ( GtkButton *, gpointer );
+void GtkChapterNext ( GtkButton * button, gpointer );
+void GtkAboutOk ( GtkButton *, gpointer );
+void GtkWindowDrag ( GtkWidget *, GdkDragContext *,
+ gint, gint, GtkSelectionData *,
+ guint , guint, gpointer );
+void GtkJumpOk ( GtkButton * button, gpointer );
+void GtkJumpCancel ( GtkButton * button, gpointer user_data );
+void GtkExitActivate ( GtkMenuItem *, gpointer );
+void GtkWindowToggleActivate( GtkMenuItem *, gpointer );
+void GtkFullscreenActivate ( GtkMenuItem *, gpointer );
+void GtkAboutActivate ( GtkMenuItem *, gpointer );
+void GtkJumpActivate ( GtkMenuItem *, gpointer );
+
+void
+GtkPlaylistDestroy (GtkObject *object,
gpointer user_data);
* gtk_control.c : functions to handle stream control buttons.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_control.c,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_control.c,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
p_intf->p_input->b_eof = 1;
/* update playlist */
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
p_main->p_playlist->i_index--;
p_main->p_playlist->b_stopped = 1;
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
}
else
{
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
if( p_main->p_playlist->b_stopped )
{
if( p_main->p_playlist->i_size )
{
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
intf_PlaylistJumpto( p_main->p_playlist,
p_main->p_playlist->i_index );
- p_main->p_playlist->b_stopped = 0;
}
else
{
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
GtkFileOpenShow( widget, event, user_data );
}
}
+ else
+ {
+
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
+ }
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
return TRUE;
if( p_intf->p_input != NULL )
{
input_SetStatus( p_intf->p_input, INPUT_STATUS_PAUSE );
+
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
p_main->p_playlist->b_stopped = 0;
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
return TRUE;
if( p_intf->p_input != NULL )
{
input_SetStatus( p_intf->p_input, INPUT_STATUS_SLOWER );
+
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
p_main->p_playlist->b_stopped = 0;
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
return TRUE;
if( p_intf->p_input != NULL )
{
input_SetStatus( p_intf->p_input, INPUT_STATUS_FASTER );
+
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
p_main->p_playlist->b_stopped = 0;
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
return TRUE;
gtk_container_add (GTK_CONTAINER (intf_popup), separator6);
gtk_widget_set_sensitive (separator6, FALSE);
- popup_interface_toggle = gtk_check_menu_item_new_with_label ("");
+ popup_interface_toggle = gtk_menu_item_new_with_label ("");
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_interface_toggle)->child),
_("Toggle _Interface"));
gtk_widget_add_accelerator (popup_interface_toggle, "activate_item", intf_popup_accels,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (popup_interface_toggle);
gtk_container_add (GTK_CONTAINER (intf_popup), popup_interface_toggle);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (popup_interface_toggle), TRUE);
- gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (popup_interface_toggle), TRUE);
- popup_fullscreen = gtk_check_menu_item_new_with_label ("");
+ popup_fullscreen = gtk_menu_item_new_with_label ("");
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_fullscreen)->child),
_("_Fullscreen"));
gtk_widget_add_accelerator (popup_fullscreen, "activate_item", intf_popup_accels,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (popup_fullscreen);
gtk_container_add (GTK_CONTAINER (intf_popup), popup_fullscreen);
- gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (popup_fullscreen), TRUE);
separator5 = gtk_menu_item_new ();
gtk_widget_ref (separator5);
GtkWidget *dialog_vbox3;
GtkWidget *jump_frame;
GtkWidget *hbox13;
- GtkWidget *jump_seconde_label;
- GtkObject *jump_seconde_spinbutton_adj;
- GtkWidget *jump_seconde_spinbutton;
+ GtkWidget *jump_second_label;
+ GtkObject *jump_second_spinbutton_adj;
+ GtkWidget *jump_second_spinbutton;
GtkWidget *jump_minute_label;
GtkObject *jump_minute_spinbutton_adj;
GtkWidget *jump_minute_spinbutton;
gtk_widget_show (hbox13);
gtk_container_add (GTK_CONTAINER (jump_frame), hbox13);
- jump_seconde_label = gtk_label_new (_("s."));
- gtk_widget_ref (jump_seconde_label);
- gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_seconde_label", jump_seconde_label,
+ jump_second_label = gtk_label_new (_("s."));
+ gtk_widget_ref (jump_second_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_label", jump_second_label,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (jump_seconde_label);
- gtk_box_pack_end (GTK_BOX (hbox13), jump_seconde_label, FALSE, FALSE, 5);
+ gtk_widget_show (jump_second_label);
+ gtk_box_pack_end (GTK_BOX (hbox13), jump_second_label, FALSE, FALSE, 5);
- jump_seconde_spinbutton_adj = gtk_adjustment_new (0, 0, 60, 1, 10, 10);
- jump_seconde_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_seconde_spinbutton_adj), 1, 0);
- gtk_widget_ref (jump_seconde_spinbutton);
- gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_seconde_spinbutton", jump_seconde_spinbutton,
+ jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 60, 1, 10, 10);
+ jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0);
+ gtk_widget_ref (jump_second_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (jump_seconde_spinbutton);
- gtk_box_pack_end (GTK_BOX (hbox13), jump_seconde_spinbutton, FALSE, TRUE, 0);
+ gtk_widget_show (jump_second_spinbutton);
+ gtk_box_pack_end (GTK_BOX (hbox13), jump_second_spinbutton, FALSE, TRUE, 0);
jump_minute_label = gtk_label_new (_("m:"));
gtk_widget_ref (jump_minute_label);
gtk_widget_show (playlist_cancel_button);
gtk_box_pack_start (GTK_BOX (dialog_action_area3), playlist_cancel_button, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
+ GTK_SIGNAL_FUNC (gtk_widget_hide),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event",
+ GTK_SIGNAL_FUNC (gtk_widget_hide),
+ NULL);
gtk_signal_connect (GTK_OBJECT (playlist_add_disc), "activate",
GTK_SIGNAL_FUNC (GtkDiscOpenActivate),
"intf_playlist");
* gtk_menu.c : functions to handle menu items.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_menu.c,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_menu.c,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
/* link the new menu to the title menu item */
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu );
- /* toggle currently selected chapter */
+ /* toggle currently selected chapter
+ * We have to release the lock since input_ToggleES needs it */
if( p_item_selected != NULL )
{
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_selected ),
TRUE );
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
}
/* be sure that menu is sensitive, if there are several items */
gtk_widget_show( p_separator );
gtk_menu_append( GTK_MENU( p_menu ), p_separator );
- vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
p_item_active = NULL;
i_item = 0;
}
}
- vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
/* link the new menu to the menubar item */
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu );
/* acitvation will call signals so we can only do it
- * when submenu is attached to menu - to get intf_window */
+ * when submenu is attached to menu - to get intf_window
+ * We have to release the lock since input_ToggleES needs it */
if( p_item_active != NULL )
{
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ),
TRUE );
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
}
/* be sure that menu is sensitive if non empty */
return TRUE;
}
+
#if 1
/*****************************************************************************
* GtkTitleMenu: sets menus for titles and chapters selection
/* link the new menu to the menubar item */
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_navigation ), p_title_menu );
+ /* Default selected chapter
+ * We have to release the lock since input_ToggleES needs it */
if( p_item_active != NULL )
{
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ),
TRUE );
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
}
#if 0
if( p_intf->p_input->stream.i_area_nb > 1 )
return TRUE;
}
#endif
+
/*****************************************************************************
* GtkSetupMenu: function that generates title/chapter/audio/subpic
* menus with help from preceding functions
GtkWidget * p_popup_menu;
gint i;
- p_intf->p_sys->b_chapter_update |= p_intf->p_sys->b_title_update;
+ p_intf->p_sys->b_chapter_update |= p_intf->p_sys->b_title_update |
+ ( p_intf->p_sys->i_part !=
+ p_intf->p_input->stream.p_selected_area->i_part );
p_intf->p_sys->b_angle_update |= p_intf->p_sys->b_title_update;
p_intf->p_sys->b_audio_update |= p_intf->p_sys->b_title_update;
p_intf->p_sys->b_spu_update |= p_intf->p_sys->b_title_update;
p_intf->p_sys->b_spu_update = 0;
}
- /* handle fullscreen check items */
- if( p_vout_bank->i_count )
- {
- p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "menubar_fullscreen" ) );
-
- p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_popup ), "popup_fullscreen" ) );
-
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_menubar_menu ),
- p_vout_bank->pp_vout[0]->b_fullscreen );
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_popup_menu ),
- p_vout_bank->pp_vout[0]->b_fullscreen );
-
- }
-
return TRUE;
}
* gtk_menu.h: prototypes for menu functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_menu.h,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_menu.h,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-
-#if 0
-void GtkMenubarAudioToggle ( GtkCheckMenuItem *, gpointer );
-void GtkPopupAudioToggle ( GtkCheckMenuItem *, gpointer );
-void GtkMenubarSubtitleToggle ( GtkCheckMenuItem *, gpointer );
-void GtkPopupSubtitleToggle ( GtkCheckMenuItem *, gpointer );
-void GtkMenubarTitleToggle ( GtkCheckMenuItem *, gpointer );
-void GtkPopupTitleToggle ( GtkCheckMenuItem *, gpointer );
-void GtkMenubarChapterToggle ( GtkCheckMenuItem *, gpointer );
-void GtkPopupChapterToggle ( GtkCheckMenuItem *, gpointer );
-void GtkMenubarAngleToggle ( GtkCheckMenuItem *, gpointer );
-void GtkPopupAngleToggle ( GtkCheckMenuItem *, gpointer );
-#endif
-
-
* gtk_modules.c : functions to build modules configuration boxes.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_modules.c,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_modules.c,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
gtk_widget_hide( p_intf->p_sys->p_modules );
}
+/****************************************************************************
+ * Callbacks for menuitems
+ ****************************************************************************/
+void GtkModulesActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkModulesShow( GTK_WIDGET( menuitem ), NULL, user_data );
+}
* gtk_modules.h: prototypes for modules functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_modules.h,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_modules.h,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean GtkModulesShow( GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-void GtkModulesCancel ( GtkButton * button, gpointer user_data );
-
+gboolean GtkModulesShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkModulesCancel ( GtkButton * button, gpointer );
+void GtkModulesActivate( GtkMenuItem * menuitem, gpointer );
* gtk_open.c : functions to handle file/disc/network open widgets.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_open.c,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_open.c,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
*****************************************************************************
* The following callbacks are related to the file requester.
*****************************************************************************/
-#if 0
-void GtkFileOpenShow( GtkMenuItem * menuitem, gpointer user_data)
-{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), (char*)user_data );
-
- /* If we have never used the file selector, open it */
- if( !GTK_IS_WIDGET( p_intf->p_sys->p_fileopen ) )
- {
- p_intf->p_sys->p_fileopen = create_intf_fileopen();
- gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_fileopen ),
- "p_intf", p_intf );
-
- gtk_file_selection_set_filename( GTK_FILE_SELECTION(
- p_intf->p_sys->p_fileopen ),
- main_GetPszVariable( INTF_PATH_VAR, INTF_PATH_DEFAULT ) );
- }
-
- gtk_widget_show( p_intf->p_sys->p_fileopen );
- gdk_window_raise( p_intf->p_sys->p_fileopen->window );
-}
-#else
-
-gboolean
-GtkFileOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkFileOpenShow( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
gtk_widget_show( p_intf->p_sys->p_fileopen );
gdk_window_raise( p_intf->p_sys->p_fileopen->window );
- return FALSE;
+ return TRUE;
}
-#endif
-void GtkFileOpenCancel( GtkButton * button, gpointer user_data)
+void GtkFileOpenCancel( GtkButton * button, gpointer user_data )
{
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
}
intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
- p_main->p_playlist->b_stopped = 0;
}
/*****************************************************************************
*****************************************************************************
* The following callbacks are related to the disc manager.
*****************************************************************************/
-#if 0
-void GtkDiscOpenShow( GtkMenuItem * menuitem, gpointer user_data)
-{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), (char*)user_data );
-
- if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
- {
- p_intf->p_sys->p_disc = create_intf_disc();
- gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
- "p_intf", p_intf );
- }
-
- gtk_widget_show( p_intf->p_sys->p_disc );
- gdk_window_raise( p_intf->p_sys->p_disc->window );
-}
-#else
-gboolean
-GtkDiscOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkDiscOpenShow( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
gtk_widget_show( p_intf->p_sys->p_disc );
gdk_window_raise( p_intf->p_sys->p_disc->window );
- return FALSE;
+ return TRUE;
}
-#endif
+
void GtkDiscOpenDvd( GtkToggleButton * togglebutton, gpointer user_data )
{
if( togglebutton->active )
}
}
-void GtkDiscOpenVcd( GtkToggleButton *togglebutton, gpointer user_data )
+void GtkDiscOpenVcd( GtkToggleButton * togglebutton, gpointer user_data )
{
if( togglebutton->active )
{
p_intf->p_input->b_eof = 1;
}
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
- p_main->p_playlist->b_stopped = 0;
-
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
-void GtkDiscOpenCancel( GtkButton * button, gpointer user_data)
+
+void GtkDiscOpenCancel( GtkButton * button, gpointer user_data )
{
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
+
/*****************************************************************************
* Network stream callbacks
*****************************************************************************
* The following callbacks are related to the network stream manager.
*****************************************************************************/
-#if 0
-void GtkNetworkOpenShow( GtkMenuItem * menuitem, gpointer user_data)
-{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), (char*)user_data );
-
- if( !GTK_IS_WIDGET( p_intf->p_sys->p_network ) )
- {
- p_intf->p_sys->p_disc = create_intf_network();
- gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_network ),
- "p_intf", p_intf );
- }
-
- gtk_widget_show( p_intf->p_sys->p_network );
- gdk_window_raise( p_intf->p_sys->p_network->window );
-}
-#else
-
-gboolean
-GtkNetworkOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+gboolean GtkNetworkOpenShow( GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
gtk_widget_show( p_intf->p_sys->p_network );
gdk_window_raise( p_intf->p_sys->p_network->window );
- return FALSE;
+ return TRUE;
}
-
-#endif
-
void GtkNetworkOpenOk( GtkButton *button, gpointer user_data )
{
intf_thread_t * p_intf = GetIntf( GTK_WIDGET(button), "intf_network" );
p_intf->p_input->b_eof = 1;
}
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
- p_main->p_playlist->b_stopped = 0;
-
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
void GtkNetworkOpenCancel( GtkButton * button, gpointer user_data)
+/****************************************************************************
+ * Callbacks for menuitem
+ ****************************************************************************/
+void GtkFileOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
+}
+
+
+void GtkDiscOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
+}
+
+
+void GtkNetworkOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
+
+}
+
* gtk_open.h: prototypes for open functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_open.h,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_open.h,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean
-GtkFileOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
+gboolean GtkFileOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkFileOpenCancel ( GtkButton *, gpointer );
+void GtkFileOpenOk ( GtkButton *, gpointer );
-void GtkFileOpenCancel( GtkButton * button, gpointer user_data);
-
-void GtkFileOpenOk( GtkButton * button, gpointer user_data );
-
-
-gboolean
-GtkDiscOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-void GtkDiscOpenDvd( GtkToggleButton * togglebutton, gpointer user_data );
-void GtkDiscOpenVcd( GtkToggleButton *togglebutton, gpointer user_data );
-void GtkDiscOpenOk( GtkButton * button, gpointer user_data );
-void GtkDiscOpenCancel( GtkButton * button, gpointer user_data);
-
-
-
-
-gboolean
-GtkNetworkOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-void GtkNetworkOpenOk( GtkButton *button, gpointer user_data );
-void GtkNetworkOpenCancel( GtkButton * button, gpointer user_data);
-void GtkNetworkOpenBroadcast( GtkToggleButton * togglebutton,
- gpointer user_data );
+gboolean GtkDiscOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkDiscOpenDvd ( GtkToggleButton *, gpointer );
+void GtkDiscOpenVcd ( GtkToggleButton *, gpointer );
+void GtkDiscOpenOk ( GtkButton *, gpointer );
+void GtkDiscOpenCancel ( GtkButton *, gpointer );
+gboolean GtkNetworkOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkNetworkOpenOk ( GtkButton *, gpointer );
+void GtkNetworkOpenCancel ( GtkButton *, gpointer );
+void GtkNetworkOpenBroadcast( GtkToggleButton *, gpointer );
+void GtkFileOpenActivate ( GtkMenuItem *, gpointer );
+void GtkDiscOpenActivate ( GtkMenuItem *, gpointer );
+void GtkNetworkOpenActivate ( GtkMenuItem *, gpointer );
* gtk_playlist.c : Interface for the playlist dialog
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: gtk_playlist.c,v 1.12 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_playlist.c,v 1.13 2001/05/15 14:49:48 stef Exp $
*
* Authors: Pierre Baillet <oct@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
{
+ /* The data types we are allowed to receive */
+ static GtkTargetEntry target_table[] =
+ {
+ { "text/uri-list", 0, DROP_ACCEPT_TEXT_URI_LIST },
+ { "text/plain", 0, DROP_ACCEPT_TEXT_PLAIN }
+ };
+
p_intf->p_sys->p_playlist = create_intf_playlist();
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
"p_intf", p_intf );
+
+ /* Accept file drops on the playlist window */
+ gtk_drag_dest_set( GTK_WIDGET( lookup_widget( p_intf->p_sys->p_playlist,
+ "playlist_clist") ),
+ GTK_DEST_DEFAULT_ALL, target_table,
+ 1, GDK_ACTION_COPY );
}
if( GTK_WIDGET_VISIBLE( p_intf->p_sys->p_playlist ) )
/****************************************************************************
* Menu callbacks for playlist functions
****************************************************************************/
+void GtkPlaylistActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkPlaylistShow( GTK_WIDGET( menuitem ), NULL, user_data );
+}
+
+
void GtkNextActivate( GtkMenuItem * menuitem, gpointer user_data )
{
GtkPlaylistNext( GTK_WIDGET( menuitem ), NULL, user_data );
p_intf->p_input->b_eof = 1;
}
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
intf_PlaylistJumpto( p_main->p_playlist, i_row - 1 );
- p_main->p_playlist->b_stopped = 0;
-
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
return TRUE;
}
GtkDropDataReceived( p_intf, data, info, PLAYLIST_END );
}
-// vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
- p_main->p_playlist->b_stopped = 0;
-
-// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
/* unlock the interface */
vlc_mutex_unlock( &p_intf->change_lock );
-
- p_main->p_playlist->b_stopped = 0;
}
}
playlist_t * p_playlist = p_main->p_playlist ;
GtkCList * p_clist;
- p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
-
- if( p_intf->p_sys->i_playing != p_playlist->i_index )
+ if( GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
{
- GdkColor color;
-
- color.red = 0xffff;
- color.blue = 0;
- color.green = 0;
-
- gtk_clist_set_background( p_clist, p_playlist->i_index, &color );
-
- if( p_intf->p_sys->i_playing != -1 )
+ p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+
+ vlc_mutex_lock( &p_playlist->change_lock );
+
+ if( p_intf->p_sys->i_playing != p_playlist->i_index )
{
+ GdkColor color;
+
color.red = 0xffff;
- color.blue = 0xffff;
- color.green = 0xffff;
- gtk_clist_set_background( p_clist, p_intf->p_sys->i_playing,
- &color);
+ color.blue = 0;
+ color.green = 0;
+
+ gtk_clist_set_background( p_clist, p_playlist->i_index, &color );
+
+ if( p_intf->p_sys->i_playing != -1 )
+ {
+ color.red = 0xffff;
+ color.blue = 0xffff;
+ color.green = 0xffff;
+ gtk_clist_set_background( p_clist, p_intf->p_sys->i_playing,
+ &color);
+ }
+ p_intf->p_sys->i_playing = p_playlist->i_index;
}
- p_intf->p_sys->i_playing = p_playlist->i_index;
+
+ vlc_mutex_unlock( &p_playlist->change_lock );
}
}
* gtk_playlist.h : Playlist functions for the Gtk plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_playlist.h,v 1.2 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_playlist.h,v 1.3 2001/05/15 14:49:48 stef Exp $
*
* Authors: Pierre Baillet <oct@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
void GtkPlaylistSelect ( GtkMenuItem *, gpointer );
void GtkPlaylistOk ( GtkButton *, gpointer );
void GtkPlaylistCancel ( GtkButton *, gpointer );
+void GtkPlaylistAddUrl ( GtkMenuItem *, gpointer );
-int GtkHasValidExtension ( gchar * );
gint GtkCompareItems ( gconstpointer, gconstpointer );
+int GtkHasValidExtension ( gchar * );
GList * GtkReadFiles ( gchar * );
gboolean GtkPlaylistShow ( GtkWidget *, GdkEventButton *, gpointer );
gint, gint, GtkSelectionData *,
guint, guint, gpointer );
void GtkDeleteGListItem ( gpointer, gpointer );
+
+void GtkPlaylistActivate ( GtkMenuItem *, gpointer );
+void GtkNextActivate ( GtkMenuItem *, gpointer );
+void GtkPrevActivate ( GtkMenuItem *, gpointer );
+
* gtk_control.c : functions to handle stream control buttons.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_preferences.c,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_preferences.c,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
{
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
+
+/****************************************************************************
+ * Callbacks for menuitems
+ ****************************************************************************/
+void GtkPreferencesActivate( GtkMenuItem * menuitem, gpointer user_data )
+{
+ GtkPreferencesShow( GTK_WIDGET( menuitem ), NULL, user_data );
+}
* gtk_control.h: prototypes for control functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_preferences.h,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_preferences.h,v 1.2 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean GtkPreferencesShow ( GtkWidget *, GdkEventButton *, gpointer );
-void GtkPreferencesOk ( GtkButton *, gpointer );
-void GtkPreferencesApply ( GtkButton *, gpointer );
-void GtkPreferencesCancel( GtkButton *, gpointer );
+gboolean GtkPreferencesShow ( GtkWidget *, GdkEventButton *, gpointer );
+void GtkPreferencesOk ( GtkButton *, gpointer );
+void GtkPreferencesApply ( GtkButton *, gpointer );
+void GtkPreferencesCancel ( GtkButton *, gpointer );
+void GtkPreferencesActivate( GtkMenuItem *, gpointer );
* intf_gtk.c: Gtk+ interface
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gtk.c,v 1.18 2001/05/15 01:01:44 stef Exp $
+ * $Id: intf_gtk.c,v 1.19 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
/* Create some useful widgets that will certainly be used */
p_intf->p_sys->p_window = create_intf_window( );
p_intf->p_sys->p_popup = create_intf_popup( );
- p_intf->p_sys->p_playlist = create_intf_playlist( );
+ p_intf->p_sys->p_playlist = create_intf_playlist();
/* Set the title of the main window */
gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window),
/* Accept file drops on the playlist window */
gtk_drag_dest_set( GTK_WIDGET( lookup_widget( p_intf->p_sys->p_playlist,
- "playlist_clist") ),
+ "playlist_clist") ),
GTK_DEST_DEFAULT_ALL, target_table,
1, GDK_ACTION_COPY );
gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_popup),
"p_intf", p_intf );
- gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_playlist),
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
"p_intf", p_intf );
gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_adj),
if( p_intf->p_input != NULL && !p_intf->b_die )
{
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
+
/* New input or stream map change */
if( p_intf->p_input->stream.b_changed )
{
GtkModeManage( p_intf );
}
- GtkSetupMenu( p_intf );
-
/* Manage the slider */
if( p_intf->p_input->stream.b_seekable )
{
else if( p_intf->p_sys->b_slider_free )
{
off_t i_seek = ( newvalue * p_area->i_size ) / 100;
-
+
+ /* release the lock to be able to seek */
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
input_Seek( p_intf->p_input, i_seek );
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
/* Update the old value */
p_intf->p_sys->f_adj_oldvalue = newvalue;
}
#undef p_area
}
+ GtkSetupMenu( p_intf );
+
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
}
else if( !p_intf->b_die )
{
*****************************************************************************
* This function displays the current date related to the position in
* the stream. It is called whenever the slider changes its value.
+ * The lock has to be taken before you call the function.
*****************************************************************************/
void GtkDisplayDate( GtkAdjustment *p_adj )
{
#define p_area p_intf->p_input->stream.p_selected_area
char psz_time[ OFFSETTOTIME_MAX_SIZE ];
- vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
-
gtk_frame_set_label( GTK_FRAME( p_intf->p_sys->p_slider_frame ),
input_OffsetToTime( p_intf->p_input, psz_time,
( p_area->i_size * p_adj->value ) / 100 ) );
-
- vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
#undef p_area
}
}
/*****************************************************************************
- * GtkModeManage
+ * GtkModeManage: actualise the aspect of the interface whenever the input
+ * changes.
+ *****************************************************************************
+ * The lock has to be taken before you call the function.
*****************************************************************************/
static gint GtkModeManage( intf_thread_t * p_intf )
{
}
else
{
+ /* 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 */
<name>activate</name>
<handler>GtkPlayActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:30:37 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:43 GMT</last_modification_time>
</signal>
<label>_Play</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkPauseActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:30:47 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:37 GMT</last_modification_time>
</signal>
<label>Pause</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtKStopActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:31:03 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:29 GMT</last_modification_time>
</signal>
<label>Stop</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkBackActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:31:13 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:21 GMT</last_modification_time>
</signal>
<label>Back</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkSlowActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:31:22 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:15 GMT</last_modification_time>
</signal>
<label>Slow</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkFastActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:31:33 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:07 GMT</last_modification_time>
</signal>
<label>Fast</label>
<right_justify>False</right_justify>
</widget>
<widget>
- <class>GtkCheckMenuItem</class>
+ <class>GtkMenuItem</class>
<name>popup_interface_toggle</name>
<signal>
<name>activate</name>
<handler>GtkWindowToggleActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:32:18 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:53:00 GMT</last_modification_time>
</signal>
<label>Toggle _Interface</label>
- <active>True</active>
- <always_show_toggle>True</always_show_toggle>
+ <right_justify>False</right_justify>
</widget>
<widget>
- <class>GtkCheckMenuItem</class>
+ <class>GtkMenuItem</class>
<name>popup_fullscreen</name>
<signal>
<name>activate</name>
<handler>GtkFullscreenActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:32:30 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:52:38 GMT</last_modification_time>
</signal>
<label>_Fullscreen</label>
- <active>False</active>
- <always_show_toggle>True</always_show_toggle>
+ <right_justify>False</right_justify>
</widget>
<widget>
<name>activate</name>
<handler>GtkNextActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:33:12 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:52:31 GMT</last_modification_time>
</signal>
<label>Next</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkPrevActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:33:25 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:52:23 GMT</last_modification_time>
</signal>
<label>Prev</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkJumpActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:33:37 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:52:13 GMT</last_modification_time>
</signal>
<label>_Jump...</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkPlaylistActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:35:07 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:51:55 GMT</last_modification_time>
</signal>
<label>Playlist...</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkPreferencesActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:35:18 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:51:46 GMT</last_modification_time>
</signal>
<label>_Preferences...</label>
<right_justify>False</right_justify>
<name>activate</name>
<handler>GtkExitActivate</handler>
<data>"intf_popup"</data>
- <last_modification_time>Mon, 14 May 2001 21:35:31 GMT</last_modification_time>
+ <last_modification_time>Tue, 15 May 2001 13:52:03 GMT</last_modification_time>
</signal>
<label>E_xit</label>
<right_justify>False</right_justify>
<widget>
<class>GtkLabel</class>
- <name>jump_seconde_label</name>
+ <name>jump_second_label</name>
<label>s.</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<widget>
<class>GtkSpinButton</class>
- <name>jump_seconde_spinbutton</name>
+ <name>jump_second_spinbutton</name>
<can_focus>True</can_focus>
<climb_rate>1</climb_rate>
<digits>0</digits>
<widget>
<class>GtkDialog</class>
<name>intf_playlist</name>
+ <signal>
+ <name>destroy</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Tue, 15 May 2001 14:20:39 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>delete_event</name>
+ <handler>gtk_widget_hide</handler>
+ <last_modification_time>Tue, 15 May 2001 14:20:22 GMT</last_modification_time>
+ </signal>
<title>Playlist</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
* interface, such as command line.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: interface.c,v 1.78 2001/05/15 01:01:44 stef Exp $
+ * $Id: interface.c,v 1.79 2001/05/15 14:49:48 stef Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
/* If no stream is being played, try to find one */
if( p_intf->p_input == NULL && !p_intf->b_die )
{
+// vlc_mutex_lock( &p_main->p_playlist->change_lock );
+
if( !p_main->p_playlist->b_stopped )
{
/* Select the next playlist item */
else
{
p_main->p_playlist->b_stopped = 0;
+ p_main->p_playlist->i_mode = PLAYLIST_FORWARD +
+ main_GetIntVariable( PLAYLIST_LOOP_VAR,
+ PLAYLIST_LOOP_DEFAULT );
p_intf->p_input =
input_CreateThread( &p_main->p_playlist->current, NULL );
}
p_vout_bank->i_count--;
}
}
+
+// vlc_mutex_unlock( &p_main->p_playlist->change_lock );
}
}
* intf_playlist.c : Playlist management functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_playlist.c,v 1.5 2001/05/15 01:01:44 stef Exp $
+ * $Id: intf_playlist.c,v 1.6 2001/05/15 14:49:48 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
/*****************************************************************************
* intf_PlaylistJumpto: go to a specified position in playlist.
- *****************************************************************************
- * Note that this function does NOT take the lock
*****************************************************************************/
void intf_PlaylistJumpto( playlist_t * p_playlist , int i_pos)
{
= strdup( p_playlist->current.psz_name );
}
+ p_main->p_playlist->b_stopped = 0;
vlc_mutex_unlock( &p_playlist->change_lock );
}