VLC  3.0.15
Modules | Files | Data Structures | Macros | Functions
VLC objects
Collaboration diagram for VLC objects:

Modules

 Variables
 

Files

file  vlc_objects.h
 

Data Structures

struct  vlc_object_t
 The main vlc_object_t structure. More...
 

Macros

#define OBJECT_FLAGS_QUIET   0x0002
 
#define OBJECT_FLAGS_NOINTERACT   0x0004
 
#define OBJECT_FLAGS_INSECURE   0x1000 /* VLC 3.0 only, will be removed */
 
#define vlc_object_get_name(o)   vlc_object_get_name(VLC_OBJECT(o))
 
#define vlc_object_create(a, b)   vlc_object_create( VLC_OBJECT(a), b )
 
#define vlc_object_find_name(a, b)   vlc_object_find_name( VLC_OBJECT(a),b)
 
#define vlc_object_hold(a)   vlc_object_hold( VLC_OBJECT(a) )
 
#define vlc_object_release(a)   vlc_object_release( VLC_OBJECT(a) )
 
#define vlc_list_children(a)   vlc_list_children( VLC_OBJECT(a) )
 

Functions

void * vlc_object_create (vlc_object_t *, size_t)
 Allocates and initializes a vlc object. More...
 
vlc_object_tvlc_object_find_name (vlc_object_t *, const char *)
 Finds a named object and increment its reference count. More...
 
void * vlc_object_hold (vlc_object_t *)
 Increment an object reference counter. More...
 
void vlc_object_release (vlc_object_t *)
 Drops a reference to an object (decrements the reference count). More...
 
vlc_list_tvlc_list_children (vlc_object_t *)
 Gets the list of children of an object, and increment their reference count. More...
 
void vlc_list_release (vlc_list_t *)
 
char * vlc_object_get_name (const vlc_object_t *)
 
void * vlc_obj_malloc (vlc_object_t *, size_t)
 
void * vlc_obj_calloc (vlc_object_t *, size_t, size_t)
 
void vlc_obj_free (vlc_object_t *, void *)
 

Detailed Description

Macro Definition Documentation

◆ OBJECT_FLAGS_INSECURE

#define OBJECT_FLAGS_INSECURE   0x1000 /* VLC 3.0 only, will be removed */

◆ OBJECT_FLAGS_NOINTERACT

#define OBJECT_FLAGS_NOINTERACT   0x0004

◆ OBJECT_FLAGS_QUIET

#define OBJECT_FLAGS_QUIET   0x0002

◆ vlc_list_children

#define vlc_list_children (   a)    vlc_list_children( VLC_OBJECT(a) )

◆ vlc_object_create

#define vlc_object_create (   a,
 
)    vlc_object_create( VLC_OBJECT(a), b )

◆ vlc_object_find_name

#define vlc_object_find_name (   a,
 
)    vlc_object_find_name( VLC_OBJECT(a),b)

◆ vlc_object_get_name

#define vlc_object_get_name (   o)    vlc_object_get_name(VLC_OBJECT(o))

◆ vlc_object_hold

#define vlc_object_hold (   a)    vlc_object_hold( VLC_OBJECT(a) )

◆ vlc_object_release

#define vlc_object_release (   a)    vlc_object_release( VLC_OBJECT(a) )

Function Documentation

◆ vlc_list_children()

vlc_list_t* vlc_list_children ( vlc_object_t obj)

Gets the list of children of an object, and increment their reference count.

Returns
a list (possibly empty) or NULL in case of error.

References count, vlc_list_t::i_count, vlc_object_internals::next, vlc_value_t::p_address, vlc_list_t::p_values, unlikely, vlc_alloc(), vlc_externals, vlc_internals, vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_object_hold().

◆ vlc_list_release()

void vlc_list_release ( vlc_list_t )

◆ vlc_obj_calloc()

void* vlc_obj_calloc ( vlc_object_t ,
size_t  ,
size_t   
)

◆ vlc_obj_free()

void vlc_obj_free ( vlc_object_t ,
void *   
)

References ptrcmp(), and vlc_objres_remove().

◆ vlc_obj_malloc()

void* vlc_obj_malloc ( vlc_object_t ,
size_t   
)

◆ vlc_object_create()

void* vlc_object_create ( vlc_object_t p_this,
size_t  i_size 
)

Allocates and initializes a vlc object.

Parameters
i_sizeobject byte size
Returns
the new object, or NULL on error.

References vlc_custom_create().

◆ vlc_object_find_name()

vlc_object_t* vlc_object_find_name ( vlc_object_t p_this,
const char *  psz_name 
)

Finds a named object and increment its reference count.

Beware that objects found in this manner can be "owned" by another thread, be of any type, and be attached to any module (if any). With such an object reference, you can set or get object variables, emit log messages, and read write-once object parameters (obj.object_type, etc). You CANNOT cast the object to a more specific object type, and you definitely cannot invoke object type-specific callbacks with this.

Parameters
p_thisobject to search from
psz_namename of the object to search for
Returns
a matching object (must be released by the caller), or NULL on error.

References FindName(), msg_Err, name_lock, psz_name, vlc_mutex_lock(), and vlc_mutex_unlock().

◆ vlc_object_get_name()

char* vlc_object_get_name ( const vlc_object_t )

◆ vlc_object_hold()

void* vlc_object_hold ( vlc_object_t )

Increment an object reference counter.

References vlc_object_internals::refs, and vlc_internals.

Referenced by vlc_custom_create(), and vlc_list_children().

◆ vlc_object_release()

void vlc_object_release ( vlc_object_t obj)