* gtk_menu.c : functions to handle menu items.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_menu.c,v 1.3 2001/05/19 00:39:30 stef Exp $
+ * $Id: gtk_menu.c,v 1.9 2001/06/02 01:09:03 sam 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.
*****************************************************************************/
-#define MODULE_NAME gtk
-#include "modules_inner.h"
-
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "main.h"
+#include "modules_export.h"
+
+#ifdef WIN32
+#ifndef snprintf
+#define snprintf _snprintf
+#endif
+#endif
+
/*
* Local Prototypes
*/
* user_data to transmit intf_* and we need to refresh the other menu.
****************************************************************************/
-#define GtkLangToggle( intf, menu, type, callback, b_update ) \
+#define GtkLangToggle( intf, window, menu, type, callback, b_update ) \
intf_thread_t * p_intf; \
GtkWidget * p_menu; \
es_descriptor_t * p_es; \
if( !p_intf->p_sys->b_update ) \
{ \
p_menu = GTK_WIDGET( gtk_object_get_data( \
- GTK_OBJECT( p_intf->p_sys->p_popup ), (menu) ) ); \
+ GTK_OBJECT( p_intf->p_sys->window ), (menu) ) ); \
p_es = (es_descriptor_t*)user_data; \
\
input_ToggleES( p_intf->p_input, p_es, menuitem->active ); \
void GtkMenubarAudioToggle( GtkCheckMenuItem * menuitem, gpointer user_data )
{
- GtkLangToggle( "intf_window", "popup_audio", AUDIO_ES,
+ GtkLangToggle( "intf_window", p_popup, "popup_audio", AUDIO_ES,
GtkPopupAudioToggle, b_audio_update );
}
void GtkPopupAudioToggle( GtkCheckMenuItem * menuitem, gpointer user_data )
{
- GtkLangToggle( "intf_popup", "menubar_audio", AUDIO_ES,
+ GtkLangToggle( "intf_popup", p_window, "menubar_audio", AUDIO_ES,
GtkMenubarAudioToggle, b_audio_update );
}
void GtkMenubarSubtitleToggle( GtkCheckMenuItem * menuitem, gpointer user_data )
{
- GtkLangToggle( "intf_window", "popup_subpictures", SPU_ES,
+ GtkLangToggle( "intf_window", p_popup, "popup_subpictures", SPU_ES,
GtkPopupSubtitleToggle, b_spu_update );
}
void GtkPopupSubtitleToggle( GtkCheckMenuItem * menuitem, gpointer user_data )
{
- GtkLangToggle( "intf_popup", "menubar_subpictures", SPU_ES,
+ GtkLangToggle( "intf_popup", p_window, "menubar_subpictures", SPU_ES,
GtkMenubarSubtitleToggle, b_spu_update );
}
input_ChangeArea( p_intf->p_input, (input_area_t*)p_area );
p_intf->p_sys->b_chapter_update = 1;
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
GtkSetupMenus( p_intf );
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
}
p_intf->p_input->stream.pp_areas[i_title] );
p_intf->p_sys->b_title_update = 1;
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
GtkSetupMenus( p_intf );
+ vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
p_intf->p_sys->b_title_update = 0;
input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
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;
- vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
+// vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
if( p_intf->p_sys->b_title_update )
{
p_intf->p_sys->b_spu_update = 0;
}
+ vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
+
return TRUE;
}