00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00034
00035 #define VLC_OBJECT_ROOT (-1)
00036 #define VLC_OBJECT_VLC (-2)
00037 #define VLC_OBJECT_MODULE (-3)
00038 #define VLC_OBJECT_INTF (-4)
00039 #define VLC_OBJECT_PLAYLIST (-5)
00040 #define VLC_OBJECT_ITEM (-6)
00041 #define VLC_OBJECT_INPUT (-7)
00042 #define VLC_OBJECT_DECODER (-8)
00043 #define VLC_OBJECT_VOUT (-9)
00044 #define VLC_OBJECT_AOUT (-10)
00045 #define VLC_OBJECT_SOUT (-11)
00046 #define VLC_OBJECT_HTTPD (-12)
00047 #define VLC_OBJECT_PACKETIZER (-13)
00048 #define VLC_OBJECT_ENCODER (-14)
00049 #define VLC_OBJECT_DIALOGS (-15)
00050 #define VLC_OBJECT_VLM (-16)
00051 #define VLC_OBJECT_ANNOUNCE (-17)
00052 #define VLC_OBJECT_DEMUX (-18)
00053 #define VLC_OBJECT_ACCESS (-19)
00054 #define VLC_OBJECT_STREAM (-20)
00055 #define VLC_OBJECT_OPENGL (-21)
00056 #define VLC_OBJECT_FILTER (-22)
00057 #define VLC_OBJECT_VOD (-23)
00058 #define VLC_OBJECT_SPU (-24)
00059 #define VLC_OBJECT_TLS (-25)
00060 #define VLC_OBJECT_SD (-26)
00061 #define VLC_OBJECT_XML (-27)
00062 #define VLC_OBJECT_OSDMENU (-28)
00063
00064 #define VLC_OBJECT_GENERIC (-666)
00065
00066
00067 #define FIND_PARENT 0x0001
00068 #define FIND_CHILD 0x0002
00069 #define FIND_ANYWHERE 0x0003
00070
00071 #define FIND_STRICT 0x0010
00072
00073
00074
00075
00077 struct vlc_object_t
00078 {
00079 VLC_COMMON_MEMBERS
00080 };
00081
00082
00083
00084
00085 VLC_EXPORT( void *, __vlc_object_create, ( vlc_object_t *, int ) );
00086 VLC_EXPORT( void, __vlc_object_destroy, ( vlc_object_t * ) );
00087 VLC_EXPORT( void, __vlc_object_attach, ( vlc_object_t *, vlc_object_t * ) );
00088 VLC_EXPORT( void, __vlc_object_detach, ( vlc_object_t * ) );
00089 VLC_EXPORT( void *, __vlc_object_get, ( vlc_object_t *, int ) );
00090 VLC_EXPORT( void *, __vlc_object_find, ( vlc_object_t *, int, int ) );
00091 VLC_EXPORT( void, __vlc_object_yield, ( vlc_object_t * ) );
00092 VLC_EXPORT( void, __vlc_object_release, ( vlc_object_t * ) );
00093 VLC_EXPORT( vlc_list_t *, __vlc_list_find, ( vlc_object_t *, int, int ) );
00094 VLC_EXPORT( void, vlc_list_release, ( vlc_list_t * ) );
00095
00096
00097
00098 #define vlc_object_create(a,b) \
00099 __vlc_object_create( VLC_OBJECT(a), b )
00100
00101 #define vlc_object_destroy(a) do { \
00102 __vlc_object_destroy( VLC_OBJECT(a) ); \
00103 (a) = NULL; } while(0)
00104
00105 #define vlc_object_detach(a) \
00106 __vlc_object_detach( VLC_OBJECT(a) )
00107
00108 #define vlc_object_attach(a,b) \
00109 __vlc_object_attach( VLC_OBJECT(a), VLC_OBJECT(b) )
00110
00111 #define vlc_object_get(a,b) \
00112 __vlc_object_get( VLC_OBJECT(a),b)
00113
00114 #define vlc_object_find(a,b,c) \
00115 __vlc_object_find( VLC_OBJECT(a),b,c)
00116
00117 #define vlc_object_yield(a) \
00118 __vlc_object_yield( VLC_OBJECT(a) )
00119
00120 #define vlc_object_release(a) \
00121 __vlc_object_release( VLC_OBJECT(a) )
00122
00123 #define vlc_list_find(a,b,c) \
00124 __vlc_list_find( VLC_OBJECT(a),b,c)
00125