#ifndef _XAS_OBJECT_H #define _XAS_OBJECT_H #include typedef struct _xas_object xas_object; typedef int (*xas_object_start_callback)(xas_object *object); typedef int (*xas_object_stop_callback)(xas_object *object); typedef int (*xas_object_set_gain_callback)(xas_object *object, float gain); typedef int (*xas_object_set_freq_callback)(xas_object *object, size_t freq); typedef int (*xas_object_set_entry_callback)(xas_object *object, size_t entry); typedef int (*xas_object_set_flags_callback)(xas_object *object, int flags); typedef xas_audio_stream *(*xas_object_stream_new_callback)(xas_object *object); typedef void (*xas_object_destroy_callback)(xas_object *object); struct _xas_object { xas_object_start_callback start; xas_object_stop_callback stop; xas_object_set_gain_callback set_gain; xas_object_set_entry_callback set_entry; xas_object_set_freq_callback set_freq; xas_object_set_flags_callback set_flags; xas_object_stream_new_callback stream_new; xas_object_destroy_callback destroy; }; void xas_object_init(xas_object *object); int xas_object_start(xas_object *object); int xas_object_stop(xas_object *object); int xas_object_set_gain(xas_object *object, float gain); int xas_object_set_entry(xas_object *object, size_t entry); int xas_object_set_freq(xas_object *object, size_t freq); int xas_object_set_flags(xas_object *object, int flags); xas_audio_stream *xas_object_stream_new(xas_object *object); void xas_object_destroy(xas_object *object); #endif /* _XAS_OBJECT_H */