diff options
Diffstat (limited to 'src/pulsecore/msgobject.h')
-rw-r--r-- | src/pulsecore/msgobject.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pulsecore/msgobject.h b/src/pulsecore/msgobject.h index 317ebd20..65761aea 100644 --- a/src/pulsecore/msgobject.h +++ b/src/pulsecore/msgobject.h @@ -40,12 +40,14 @@ struct pa_msgobject { int (*process_msg)(pa_msgobject *o, int code, void *userdata, pa_memchunk *chunk); }; -pa_msgobject *pa_msgobject_new_internal(size_t size, const char *type_name); +pa_msgobject *pa_msgobject_new_internal(size_t size, const char *type_name, int (*check_type)(pa_object *o, const char *type_name)); -#define pa_msgobject_new(type) ((type*) pa_msgobject_new_internal(sizeof(type), #type)) +int pa_msgobject_check_type(pa_object *o, const char *type); + +#define pa_msgobject_new(type, check_type) ((type*) pa_msgobject_new_internal(sizeof(type), #type, check_type)) #define pa_msgobject_free ((void (*) (pa_msgobject* o)) pa_object_free) -#define PA_MSGOBJECT(o) ((pa_msgobject*) (o)) +#define PA_MSGOBJECT(o) pa_msgobject_cast(o) PA_DECLARE_CLASS(pa_msgobject); |