12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #ifndef __AUDIOCONTEXT_H__
- #define __AUDIOCONTEXT_H__
- #pragma once
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "audioengine.h"
- #include "audiodriver.h"
- typedef struct audiocontext_t audiocontext_t;
- typedef struct audiostream_t audiostream_t;
- typedef struct audiodriver_t audiodriver_t;
- apr_status_t audiocontext_create(apr_pool_t *pool, audioengine_t *e, audiocontext_t **p_ctx);
- void audiocontext_destroy(audiocontext_t *ctx);
- audioengine_t *audiocontext_get_engine(audiocontext_t *ctx);
- apr_status_t audiocontext_lock(audiocontext_t *ctx);
- apr_status_t audiocontext_unlock(audiocontext_t *ctx);
- apr_status_t audiocontext_add_driver(audiocontext_t *ctx, audiodriver_t *dev);
- apr_status_t audiocontext_remove_driver(audiocontext_t *ctx, audiodriver_t *dev);
- apr_status_t audiocontext_add_stream(audiocontext_t *ctx, audiostream_t *stream);
- apr_status_t audiocontext_remove_stream(audiocontext_t *ctx, audiostream_t *stream);
- // stream event handler,
- // return 0: pass to next handler, 1: processed
- typedef int (__stdcall *audiocontext_event_handler)(audiocontext_t *ctx,
- void *user_data,
- int bstream,
- audiostream_t *stream,
- int evt,
- int param1,
- int param2);
- #define EVENT_HANDLER_PRIOIRY_HIGHEST 31
- #define EVENT_HANDLER_PRIOIRY_HIGH 15
- #define EVENT_HANDLER_PRIOIRY_MIDDLE 7
- #define EVENT_HANDLER_PRIOIRY_LOW 3
- #define EVENT_HANDLER_PRIOIRY_LOWEST 0
- apr_status_t audiocontext_put_stream_event(audiocontext_t *ctx, audiostream_t *stream, int evt, int param1, int param2);
- apr_status_t audiocontext_put_driver_event(audiocontext_t *ctx, audiodriver_t *driver, int evt, int param1, int param2);
- apr_status_t audiocontext_add_event_handler(audiocontext_t *ctx, int priority, audiocontext_event_handler handler, void *user_data);
- apr_status_t audiocontext_remove_event_handler(audiocontext_t *ctx, audiocontext_event_handler handler);
- #ifdef __cplusplus
- } // extern "C" {
- #endif
- #endif //__AUDIOCONTEXT_H__
|