*/
VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_media_player_t *, libvlc_exception_t * );
+/**
+ * Enable or disable key press events handling, according to the LibVLC hotkeys
+ * configuration. By default and for historical reasons, keyboard events are
+ * handled by the LibVLC video widget.
+ *
+ * \note On X11, there can be only one subscriber for key press and mouse
+ * click events per window. If your application has subscribed to those events
+ * for the X window ID of the video widget, then LibVLC will not be able to
+ * handle key presses and mouse clicks in any case.
+ *
+ * \warning This function is only implemented for X11 at the moment.
+ *
+ * \param mp the media player
+ * \param on true to handle key press events, false to ignore them.
+ */
+VLC_PUBLIC_API
+void libvlc_video_set_key_input( libvlc_media_player_t *mp, unsigned on );
+
+/**
+ * Enable or disable mouse click events handling. By default, those events are
+ * handled. This is needed for DVD menus to work, as well as a few video
+ * filters such as "puzzle".
+ *
+ * \note See also \func libvlc_video_set_key_input().
+ *
+ * \warning This function is only implemented for X11 at the moment.
+ *
+ * \param mp the media player
+ * \param on true to handle mouse click events, false to ignore them.
+ */
+VLC_PUBLIC_API
+void libvlc_video_set_mouse_input( libvlc_media_player_t *mp, unsigned on );
+
/**
* Get current video height.
*
mp->drawable.xid = 0;
mp->drawable.hwnd = NULL;
mp->drawable.nsobject = NULL;
+ mp->keyboard_events = mp->mouse_events = 1;
mp->p_libvlc_instance = instance;
mp->p_input_thread = NULL;
mp->p_input_resource = NULL;
if( p_mi->drawable.nsobject != NULL )
var_SetAddress( p_input_thread, "drawable-nsobject", p_mi->drawable.nsobject );
+ var_Create( p_input_thread, "keyboard-events", VLC_VAR_BOOL );
+ var_SetBool( p_input_thread, "keyboard-events", p_mi->keyboard_events );
+ var_Create( p_input_thread, "mouse-events", VLC_VAR_BOOL );
+ var_SetBool( p_input_thread, "mouse-events", p_mi->mouse_events );
+
var_AddCallback( p_input_thread, "can-seek", input_seekable_changed, p_mi );
var_AddCallback( p_input_thread, "can-pause", input_pausable_changed, p_mi );
var_AddCallback( p_input_thread, "intf-event", input_event_changed, p_mi );
uint32_t xid;
uint32_t agl;
} drawable;
+ unsigned keyboard_events:1;
+ unsigned mouse_events:1;
};
/* Media player - audio, video */
vlc_object_release( p_vout );
}
+void libvlc_video_set_key_input( libvlc_media_player_t *p_mi, unsigned on )
+{
+ p_mi->keyboard_events = !!on;
+}
+
+void libvlc_video_set_mouse_input( libvlc_media_player_t *p_mi, unsigned on )
+{
+ p_mi->mouse_events = !!on;
+}
+
void
libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, const char *psz_filepath,
unsigned int i_width, unsigned int i_height, libvlc_exception_t *p_e )
libvlc_video_set_deinterlace
libvlc_video_set_marquee_option_as_int
libvlc_video_set_marquee_option_as_string
+libvlc_video_set_key_input
+libvlc_video_set_mouse_input
libvlc_video_set_scale
libvlc_video_set_spu
libvlc_video_set_subtitle_file