vlc | branch: master | Thomas Guillem <[email protected]> | Fri Feb 19 15:09:40 2016 +0100| [867e58a385b85d511d8547f588393c8e610e4aa5] | committer: Thomas Guillem
dialog: correctly change dialog_provider init/deinit functions In order to behave like libvlc_Internal* functions. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=867e58a385b85d511d8547f588393c8e610e4aa5 --- include/vlc_dialog.h | 6 +++--- src/interface/dialog.c | 18 +++++++++++------- src/libvlc.c | 5 ++--- src/libvlccore.sym | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/include/vlc_dialog.h b/include/vlc_dialog.h index 786da22..038e300 100644 --- a/include/vlc_dialog.h +++ b/include/vlc_dialog.h @@ -28,12 +28,12 @@ typedef struct vlc_dialog_id vlc_dialog_id; typedef struct extension_dialog_t extension_dialog_t; /* Called from src/libvlc.c */ -vlc_dialog_provider * -vlc_dialog_provider_new(void); +int +libvlc_InternalDialogInit(libvlc_int_t *p_libvlc); /* Called from src/libvlc.c */ void -vlc_dialog_provider_release(vlc_dialog_provider *p_provider); +libvlc_InternalDialogClean(libvlc_int_t *p_libvlc); /** * @defgroup vlc_dialog VLC dialog diff --git a/src/interface/dialog.c b/src/interface/dialog.c index 7cb9cd6..9968469 100644 --- a/src/interface/dialog.c +++ b/src/interface/dialog.c @@ -145,12 +145,13 @@ dialog_id_release(vlc_dialog_id *p_id) free(p_id); } -vlc_dialog_provider * -vlc_dialog_provider_new(void) +int +libvlc_InternalDialogInit(libvlc_int_t *p_libvlc) { + assert(p_libvlc != NULL); vlc_dialog_provider *p_provider = malloc(sizeof(*p_provider)); - if( p_provider == NULL ) - return NULL; + if (p_provider == NULL) + return VLC_EGENERIC; vlc_mutex_init(&p_provider->lock); vlc_array_init(&p_provider->dialog_array); @@ -160,8 +161,9 @@ vlc_dialog_provider_new(void) p_provider->pf_ext_update = NULL; p_provider->p_ext_data = NULL; + libvlc_priv(p_libvlc)->p_dialog_provider = p_provider; - return p_provider; + return VLC_SUCCESS; } static int @@ -239,9 +241,10 @@ dialog_clear_all_locked(vlc_dialog_provider *p_provider) } void -vlc_dialog_provider_release(vlc_dialog_provider *p_provider) +libvlc_InternalDialogClean(libvlc_int_t *p_libvlc) { - assert(p_provider != NULL); + assert(p_libvlc != NULL); + vlc_dialog_provider *p_provider = libvlc_priv(p_libvlc)->p_dialog_provider; vlc_mutex_lock(&p_provider->lock); dialog_clear_all_locked(p_provider); @@ -249,6 +252,7 @@ vlc_dialog_provider_release(vlc_dialog_provider *p_provider) vlc_mutex_destroy(&p_provider->lock); free(p_provider); + libvlc_priv(p_libvlc)->p_dialog_provider = NULL; } #undef vlc_dialog_provider_set_callbacks diff --git a/src/libvlc.c b/src/libvlc.c index ff0b618..301b987 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -235,8 +235,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, } #endif - priv->p_dialog_provider = vlc_dialog_provider_new(); - if( priv->p_dialog_provider == NULL ) + if( libvlc_InternalDialogInit( p_libvlc ) != VLC_SUCCESS ) { vlc_LogDeinit (p_libvlc); module_EndBank (true); @@ -511,7 +510,7 @@ void libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) libvlc_Quit( p_libvlc ); intf_DestroyAll( p_libvlc ); - vlc_dialog_provider_release( priv->p_dialog_provider ); + libvlc_InternalDialogClean( p_libvlc ); #ifdef ENABLE_VLM /* Destroy VLM if created in libvlc_InternalInit */ diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 9491a18..fa0aa71 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -222,6 +222,8 @@ input_vaControl input_Close intf_Create libvlc_InternalAddIntf +libvlc_InternalDialogInit +libvlc_InternalDialogClean libvlc_InternalPlay libvlc_InternalCleanup libvlc_InternalCreate @@ -525,8 +527,6 @@ vlc_dialog_id_post_action vlc_dialog_id_post_login vlc_dialog_id_set_context vlc_dialog_is_cancelled -vlc_dialog_provider_new -vlc_dialog_provider_release vlc_dialog_provider_set_callbacks vlc_dialog_provider_set_ext_callback vlc_dialog_release _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
