00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MRCP_ENGINE_IMPL_H
00020 #define MRCP_ENGINE_IMPL_H
00021
00022
00023
00024
00025
00026
00027 #include "mrcp_engine_types.h"
00028 #include "mpf_stream.h"
00029
00030 APT_BEGIN_EXTERN_C
00031
00032
00033 mrcp_engine_t* mrcp_engine_create(
00034 mrcp_resource_id resource_id,
00035 void *obj,
00036 const mrcp_engine_method_vtable_t *vtable,
00037 apr_pool_t *pool);
00038
00039
00040 static APR_INLINE apt_bool_t mrcp_engine_open_respond(mrcp_engine_t *engine, apt_bool_t status)
00041 {
00042 return engine->event_vtable->on_open(engine,status);
00043 }
00044
00045
00046 static APR_INLINE apt_bool_t mrcp_engine_close_respond(mrcp_engine_t *engine)
00047 {
00048 return engine->event_vtable->on_close(engine);
00049 }
00050
00051
00052
00053 const mrcp_engine_config_t* mrcp_engine_config_get(const mrcp_engine_t *engine);
00054
00055
00056 const char* mrcp_engine_param_get(const mrcp_engine_t *engine, const char *name);
00057
00058
00059
00060 mrcp_engine_channel_t* mrcp_engine_channel_create(
00061 mrcp_engine_t *engine,
00062 const mrcp_engine_channel_method_vtable_t *method_vtable,
00063 void *method_obj,
00064 mpf_termination_t *termination,
00065 apr_pool_t *pool);
00066
00067
00068 mpf_termination_t* mrcp_engine_audio_termination_create(
00069 void *obj,
00070 const mpf_audio_stream_vtable_t *stream_vtable,
00071 mpf_stream_capabilities_t *capabilities,
00072 apr_pool_t *pool);
00073
00074
00075
00076
00077 mrcp_engine_channel_t* mrcp_engine_source_channel_create(
00078 mrcp_engine_t *engine,
00079 const mrcp_engine_channel_method_vtable_t *channel_vtable,
00080 const mpf_audio_stream_vtable_t *stream_vtable,
00081 void *method_obj,
00082 mpf_codec_descriptor_t *codec_descriptor,
00083 apr_pool_t *pool);
00084
00085
00086
00087
00088 mrcp_engine_channel_t* mrcp_engine_sink_channel_create(
00089 mrcp_engine_t *engine,
00090 const mrcp_engine_channel_method_vtable_t *channel_vtable,
00091 const mpf_audio_stream_vtable_t *stream_vtable,
00092 void *method_obj,
00093 mpf_codec_descriptor_t *codec_descriptor,
00094 apr_pool_t *pool);
00095
00096
00097 static APR_INLINE apt_bool_t mrcp_engine_channel_open_respond(mrcp_engine_channel_t *channel, apt_bool_t status)
00098 {
00099 return channel->event_vtable->on_open(channel,status);
00100 }
00101
00102
00103 static APR_INLINE apt_bool_t mrcp_engine_channel_close_respond(mrcp_engine_channel_t *channel)
00104 {
00105 return channel->event_vtable->on_close(channel);
00106 }
00107
00108
00109 static APR_INLINE apt_bool_t mrcp_engine_channel_message_send(mrcp_engine_channel_t *channel, mrcp_message_t *message)
00110 {
00111 return channel->event_vtable->on_message(channel,message);
00112 }
00113
00114
00115 static APR_INLINE const char* mrcp_engine_channel_id_get(mrcp_engine_channel_t *channel)
00116 {
00117 return channel->id.buf;
00118 }
00119
00120
00121 static APR_INLINE mrcp_version_e mrcp_engine_channel_version_get(const mrcp_engine_channel_t *channel)
00122 {
00123 return channel->mrcp_version;
00124 }
00125
00126
00127 const mpf_codec_descriptor_t* mrcp_engine_source_stream_codec_get(const mrcp_engine_channel_t *channel);
00128
00129
00130 const mpf_codec_descriptor_t* mrcp_engine_sink_stream_codec_get(const mrcp_engine_channel_t *channel);
00131
00132
00133 APT_END_EXTERN_C
00134
00135 #endif