Commit 5277e0fe authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

interaction: no need for vlc_object_find()

parent a1238857
......@@ -39,6 +39,7 @@
#include <vlc_interface.h>
#include "interface.h"
#include "libvlc.h"
#include <assert.h>
......@@ -354,37 +355,36 @@ void __intf_UserHide( vlc_object_t *p_this, int i_id )
*
* \return a vlc_object_t that should be freed when done.
*/
vlc_object_t * interaction_Init( libvlc_int_t *p_libvlc )
interaction_t * interaction_Init( libvlc_int_t *p_libvlc )
{
interaction_t *p_interaction;
/* Make sure we haven't yet created an interaction object */
assert( vlc_object_find( p_libvlc, VLC_OBJECT_INTERACTION, FIND_ANYWHERE ) == NULL );
p_interaction = vlc_object_create( p_libvlc, VLC_OBJECT_INTERACTION );
assert( libvlc_priv(p_libvlc)->p_interaction == NULL );
if( p_interaction )
p_interaction = vlc_custom_create( p_libvlc, sizeof( *p_interaction ),
VLC_OBJECT_GENERIC, "interaction" );
if( !p_interaction )
return NULL;
vlc_object_attach( p_interaction, p_libvlc );
p_interaction->i_dialogs = 0;
p_interaction->pp_dialogs = NULL;
p_interaction->p_intf = NULL;
p_interaction->i_last_id = 0;
if( vlc_thread_create( p_interaction, "Interaction control",
InteractionLoop, VLC_THREAD_PRIORITY_LOW,
false ) )
{
vlc_object_attach( p_interaction, p_libvlc );
p_interaction->i_dialogs = 0;
p_interaction->pp_dialogs = NULL;
p_interaction->p_intf = NULL;
p_interaction->i_last_id = 0;
if( vlc_thread_create( p_interaction, "Interaction control",
InteractionLoop, VLC_THREAD_PRIORITY_LOW,
false ) )
{
msg_Err( p_interaction, "Interaction control thread creation failed"
", interaction will not be displayed" );
vlc_object_detach( p_interaction );
vlc_object_release( p_interaction );
p_interaction = NULL;
}
msg_Err( p_interaction, "Interaction control thread creation failed, "
"interaction will not be displayed" );
vlc_object_detach( p_interaction );
vlc_object_release( p_interaction );
return NULL;
}
return VLC_OBJECT( p_interaction );
return p_interaction;
}
/**********************************************************************
......@@ -394,7 +394,10 @@ vlc_object_t * interaction_Init( libvlc_int_t *p_libvlc )
/* Get the interaction object. Create it if needed */
static interaction_t * InteractionGet( vlc_object_t *p_this )
{
return vlc_object_find( p_this, VLC_OBJECT_INTERACTION, FIND_ANYWHERE );
interaction_t *obj = libvlc_priv(p_this->p_libvlc)->p_interaction;
if( obj )
vlc_object_yield( obj );
return obj;
}
......
......@@ -35,6 +35,6 @@
**********************************************************************/
/* release via vlc_object_release() */
vlc_object_t * interaction_Init( libvlc_int_t *p_libvlc );
interaction_t * interaction_Init( libvlc_int_t *p_libvlc );
#endif
......@@ -247,7 +247,7 @@ typedef struct libvlc_priv_t
module_t *p_memcpy_module; ///< Fast memcpy plugin used
playlist_t *p_playlist; //< the playlist singleton
vlm_t *p_vlm; ///< the VLM singleton (or NULL)
vlc_object_t *p_interaction; ///< interface interaction object
interaction_t *p_interaction; ///< interface interaction object
httpd_t *p_httpd; ///< HTTP daemon (src/network/httpd.c)
/* Private playlist data (FIXME - playlist_t is too public...) */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment