From: Pierre d'Herbemont Date: Sat, 11 Apr 2009 17:29:35 +0000 (-0700) Subject: libvlc: Export _get/set_nsobject. X-Git-Tag: 1.0.0-pre2~101 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=474d2d36e23a761c1044a2328cf41b6bdcee381b;p=vlc libvlc: Export _get/set_nsobject. --- diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h index a3a40e7980..67acf9994f 100644 --- a/include/vlc/libvlc.h +++ b/include/vlc/libvlc.h @@ -555,6 +555,22 @@ VLC_PUBLIC_API void libvlc_media_player_pause ( libvlc_media_player_t *, libvlc_ */ VLC_PUBLIC_API void libvlc_media_player_stop ( libvlc_media_player_t *, libvlc_exception_t * ); +/** + * Set the agl handler where the media player should render its video output. + * + * \param p_mi the Media Player + * \param drawable the agl handler + * \param p_e an initialized exception pointer + */ +VLC_PUBLIC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t *p_mi, void * drawable, libvlc_exception_t *p_e ); + +/** + * Get the agl handler previously set with libvlc_media_player_set_agl(). + * + * \return the agl handler or 0 if none where set + */ +VLC_PUBLIC_API uint32_t libvlc_media_player_get_nsobject ( libvlc_media_player_t *p_mi ); + /** * Set the agl handler where the media player should render its video output. * diff --git a/src/control/libvlc_internal.h b/src/control/libvlc_internal.h index f274478102..67e8c28446 100644 --- a/src/control/libvlc_internal.h +++ b/src/control/libvlc_internal.h @@ -157,6 +157,7 @@ struct libvlc_media_player_t struct { void *hwnd; + void *nsobject; uint32_t xid; uint32_t agl; } drawable; diff --git a/src/control/media_player.c b/src/control/media_player.c index 6dbb8c6a6a..8639813474 100644 --- a/src/control/media_player.c +++ b/src/control/media_player.c @@ -633,6 +633,13 @@ void libvlc_media_player_play( libvlc_media_player_t *p_mi, var_Set( p_input_thread, "drawable-hwnd", val ); } + var_Create( p_input_thread, "drawable-nsobject", VLC_VAR_ADDRESS ); + if( p_mi->drawable.nsobject != NULL ) + { + vlc_value_t val = { .p_address = p_mi->drawable.nsobject }; + var_Set( p_input_thread, "drawable-nsobject", val ); + } + 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 ); @@ -718,6 +725,25 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi, } } +/************************************************************************** + * set_nsobject + **************************************************************************/ +void libvlc_media_player_set_nsobject( libvlc_media_player_t *p_mi, + void * drawable, + libvlc_exception_t *p_e ) +{ + (void) p_e; + p_mi->drawable.nsobject = drawable; +} + +/************************************************************************** + * get_agl + **************************************************************************/ +uint32_t libvlc_media_player_get_nsobject( libvlc_media_player_t *p_mi ) +{ + return p_mi->drawable.nsobject; +} + /************************************************************************** * set_agl **************************************************************************/ diff --git a/src/libvlc.sym b/src/libvlc.sym index 2f26333ae5..2dbffcf794 100644 --- a/src/libvlc.sym +++ b/src/libvlc.sym @@ -130,6 +130,7 @@ libvlc_media_player_get_fps libvlc_media_player_get_hwnd libvlc_media_player_get_length libvlc_media_player_get_media +libvlc_media_player_get_nsobject libvlc_media_player_get_position libvlc_media_player_get_rate libvlc_media_player_get_state @@ -154,6 +155,7 @@ libvlc_media_player_set_chapter libvlc_media_player_set_drawable libvlc_media_player_set_hwnd libvlc_media_player_set_media +libvlc_media_player_set_nsobject libvlc_media_player_set_position libvlc_media_player_set_rate libvlc_media_player_set_time