#ifndef MEDIACONTROLLER_AUDIO_H #define MEDIACONTROLLER_AUDIO_H #pragma once #include "../mod_counterconnector/CallType.h" #include "EventCode.h" #include "Event.h" enum e_dev_type { DEV_PICKUP, DEV_HANDFREE, }; typedef struct audio_session_conf_t { char in_dev[2][260]; char out_dev[2][260]; int agc_in[2]; int agc_out[2]; int ns_in[2]; int ns_out[2]; int aec[2]; }audio_session_conf_t; #if 0 enum e_media_dir { DIR_NONE = 0, DIR_TX = 1, DIR_RX = 2, DIR_BOTH = 3, }; #endif typedef struct audio_session_phonemedia_conf_t { int dir; unsigned long local_rtp_ip; int local_rtp_port; unsigned long remote_rtp_ip; int remote_rtp_port; int local_ptime; int remote_ptime; int local_pt; int remote_pt; int local_dtmf_pt; int remote_dtmf_pt; e_dev_type dev_type; CallingTypeEnum eCalltype; DeviceTypeEnum eDeviceType; //... }audio_session_phonemedia_conf_t; typedef struct audio_session_remote_recording_conf_t { unsigned long local_rtp_ip; int local_rtp_port; unsigned long remote_rtp_ip; int remote_rtp_port; int ptime; }audio_session_remote_recording_conf_t; typedef struct audio_session_t audio_session_t; int audio_session_create(const audio_session_conf_t *conf, audio_session_t **p_session); int audio_session_start_phonemedia(audio_session_t *session, const audio_session_phonemedia_conf_t *conf); int audio_session_change_dev(audio_session_t *session, e_dev_type t); int audio_session_stop(audio_session_t *session); void audio_session_destroy(audio_session_t *session); int audio_lib_init(); void audio_lib_deinit(); int audio_get_dev_count(int *in_cnt, int *out_cnt); CSimpleStringA audio_get_dev_name(bool in_direction, int idx); CSimpleStringA audio_get_dev_infos(bool in_direction); int capture_get_audio_device_id(bool in_direction, const char *dev_name); #endif // MEDIACONTROLLER_AUDIO_H