Now we can remove the VLM object type.
#define VLC_OBJECT_PACKETIZER (-13)
#define VLC_OBJECT_ENCODER (-14)
#define VLC_OBJECT_DIALOGS (-15)
-#define VLC_OBJECT_VLM (-16)
+
#define VLC_OBJECT_ANNOUNCE (-17)
#define VLC_OBJECT_DEMUX (-18)
#define VLC_OBJECT_ACCESS (-19)
{ VLC_OBJECT_PACKETIZER, "packetizer" },
{ VLC_OBJECT_ENCODER, "encoder" },
{ VLC_OBJECT_DIALOGS, "dialogs" },
- { VLC_OBJECT_VLM, "vlm" },
{ VLC_OBJECT_ANNOUNCE, "announce" },
{ VLC_OBJECT_DEMUX, "demux" },
{ VLC_OBJECT_ACCESS, "access" },
int vlclua_vlm_delete( lua_State *L )
{
- vlm_t *p_vlm = (vlm_t*)vlclua_checkobject( L, 1, VLC_OBJECT_VLM );
+ vlm_t *p_vlm = (vlm_t*)vlclua_checkobject( L, 1, VLC_OBJECT_GENERIC );
vlm_Delete( p_vlm );
return 0;
}
int vlclua_vlm_execute_command( lua_State *L )
{
- vlm_t *p_vlm = (vlm_t*)vlclua_checkobject( L, 1, VLC_OBJECT_VLM );
+ vlm_t *p_vlm = (vlm_t*)vlclua_checkobject( L, 1, VLC_OBJECT_GENERIC );
const char *psz_command = luaL_checkstring( L, 2 );
vlm_message_t *message;
int i_ret;
vlm_t *__vlm_New ( vlc_object_t *p_this )
{
vlc_value_t lockval;
- vlm_t *p_vlm = NULL;
+ vlm_t *p_vlm = NULL, **pp_vlm = &(libvlc_priv (p_this->p_libvlc)->p_vlm);
char *psz_vlmconf;
static const char vlm_object_name[] = "vlm daemon";
vlc_mutex_lock( lockval.p_address );
- p_vlm = vlc_object_find( p_this, VLC_OBJECT_VLM, FIND_ANYWHERE );
+ p_vlm = *pp_vlm;
if( p_vlm )
- {
+ { /* VLM already exists */
vlc_object_yield( p_vlm );
vlc_mutex_unlock( lockval.p_address );
return p_vlm;
msg_Dbg( p_this, "creating VLM" );
- p_vlm = vlc_custom_create( p_this, sizeof( *p_vlm ), VLC_OBJECT_VLM,
+ p_vlm = vlc_custom_create( p_this, sizeof( *p_vlm ), VLC_OBJECT_GENERIC,
vlm_object_name );
if( !p_vlm )
{
free(psz_vlmconf);
vlc_object_set_destructor( p_vlm, (vlc_destructor_t)vlm_Destructor );
+ *pp_vlm = p_vlm; /* for future reference */
vlc_mutex_unlock( lockval.p_address );
return p_vlm;