diff options
Diffstat (limited to 'ril/libsecril-client/secril-client.h')
-rwxr-xr-x | ril/libsecril-client/secril-client.h | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/ril/libsecril-client/secril-client.h b/ril/libsecril-client/secril-client.h new file mode 100755 index 0000000..fb1729c --- /dev/null +++ b/ril/libsecril-client/secril-client.h @@ -0,0 +1,293 @@ +/** + * @file secril-client.h + * + * @author Myeongcheol Kim (mcmount.kim@samsung.com) + * + * @brief RIL client library for multi-client support + */ + +#ifndef __SECRIL_CLIENT_H__ +#define __SECRIL_CLIENT_H__ + +#include <sys/types.h> +//#include "SecProductFeature_RIL.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct RilClient { + void *prv; +}; + +typedef struct RilClient * HRilClient; + + +//--------------------------------------------------------------------------- +// Defines +//--------------------------------------------------------------------------- +#define RIL_CLIENT_ERR_SUCCESS 0 +#define RIL_CLIENT_ERR_AGAIN 1 +#define RIL_CLIENT_ERR_INIT 2 // Client is not initialized +#define RIL_CLIENT_ERR_INVAL 3 // Invalid value +#define RIL_CLIENT_ERR_CONNECT 4 // Connection error +#define RIL_CLIENT_ERR_IO 5 // IO error +#define RIL_CLIENT_ERR_RESOURCE 6 // Resource not available +#define RIL_CLIENT_ERR_UNKNOWN 7 + + +//--------------------------------------------------------------------------- +// Type definitions +//--------------------------------------------------------------------------- + +typedef int (*RilOnComplete)(HRilClient handle, const void *data, size_t datalen); + +typedef int (*RilOnUnsolicited)(HRilClient handle, const void *data, size_t datalen); + +typedef int (*RilOnError)(void *data, int error); + + +//--------------------------------------------------------------------------- +// Client APIs +//--------------------------------------------------------------------------- + +/** + * Open RILD multi-client. + * Return is client handle, NULL on error. + */ +HRilClient OpenClient_RILD(void); + +/** + * Stop RILD multi-client. If client socket was connected, + * it will be disconnected. + */ +int CloseClient_RILD(HRilClient client); + +/** + * Connect to RIL deamon. One client task starts. + * Return is 0 or error code. + */ +int Connect_RILD(HRilClient client); + +/** + * Connect to QRIL deamon. One client task starts. + * Return is 0 or error code. + */ +int Connect_QRILD(HRilClient client); + +#if defined(SEC_PRODUCT_FEATURE_RIL_CALL_DUALMODE_CDMAGSM) +/** + * Connect to RIL deamon. One client task starts. + * Return is 0 or error code. + */ +int Connect_RILD_Second(HRilClient client); +#endif +/** + * check whether RILD is connected + * Returns 0 or 1 + */ +int isConnected_RILD(HRilClient client); + +/** + * Disconnect connection to RIL deamon(socket close). + * Return is 0 or error code. + */ +int Disconnect_RILD(HRilClient client); + +/** + * Register unsolicited response handler. If handler is NULL, + * the handler for the request ID is unregistered. + * The response handler is invoked in the client task context. + * Return is 0 or error code. + */ +int RegisterUnsolicitedHandler(HRilClient client, uint32_t id, RilOnUnsolicited handler); + +/** + * Register solicited response handler. If handler is NULL, + * the handler for the ID is unregistered. + * The response handler is invoked in the client task context. + * Return is 0 or error code. + */ +int RegisterRequestCompleteHandler(HRilClient client, uint32_t id, RilOnComplete handler); + +/** + * Register error callback. If handler is NULL, + * the callback is unregistered. + * The response handler is invoked in the client task context. + * Return is 0 or error code. + */ +int RegisterErrorCallback(HRilClient client, RilOnError cb, void *data); + +/** + * Invoke OEM request. Request ID is RIL_REQUEST_OEM_HOOK_RAW. + * Return is 0 or error code. For RIL_CLIENT_ERR_AGAIN caller should retry. + */ +int InvokeOemRequestHookRaw(HRilClient client, char *data, size_t len); + +/** + * Sound device types. + */ +typedef enum _SoundType { + SOUND_TYPE_VOICE, + SOUND_TYPE_SPEAKER, + SOUND_TYPE_HEADSET, + SOUND_TYPE_BTVOICE +} SoundType; + +/** + * External sound device path. + */ +typedef enum _AudioPath { + SOUND_AUDIO_PATH_HANDSET, + SOUND_AUDIO_PATH_HEADSET, + SOUND_AUDIO_PATH_SPEAKER, + SOUND_AUDIO_PATH_BLUETOOTH, + SOUND_AUDIO_PATH_STEREO_BT, + SOUND_AUDIO_PATH_HEADPHONE, + SOUND_AUDIO_PATH_BLUETOOTH_NO_NR, + SOUND_AUDIO_PATH_MIC1, + SOUND_AUDIO_PATH_MIC2, + SOUND_AUDIO_PATH_BLUETOOTH_WB, + SOUND_AUDIO_PATH_BLUETOOTH_WB_NO_NR +} AudioPath; + +/** + * ExtraVolume + */ +typedef enum _ExtraVolume { + ORIGINAL_PATH, + EXTRA_VOLUME_PATH +} ExtraVolume; + +/** + * Clock adjustment parameters. + */ +typedef enum _SoundClockCondition { + SOUND_CLOCK_STOP, + SOUND_CLOCK_START +} SoundClockCondition; + +/** + * Call record adjustment parameters. + */ +typedef enum _CallRecCondition { + CALL_REC_STOP, + CALL_REC_START +} CallRecCondition; + +/** + * Mute adjustment parameters. + */ +typedef enum _MuteCondition { + TX_UNMUTE, /* 0x00: TX UnMute */ + TX_MUTE, /* 0x01: TX Mute */ + RX_UNMUTE, /* 0x02: RX UnMute */ + RX_MUTE, /* 0x03: RX Mute */ + RXTX_UNMUTE, /* 0x04: RXTX UnMute */ + RXTX_MUTE, /* 0x05: RXTX Mute */ +} MuteCondition; + +/** + * Two mic Solution control + * Two MIC Solution Device + */ +typedef enum __TwoMicSolDevice { + AUDIENCE, + FORTEMEDIA +} TwoMicSolDevice; + +/** + * Two MIC Solution Report + */ +typedef enum __TwoMicSolReport { + TWO_MIC_SOLUTION_OFF, + TWO_MIC_SOLUTION_ON +} TwoMicSolReport; + +/** + * DHA Mode + */ +typedef enum __DhaSolMode { + DHA_MODE_OFF, + DHA_MODE_ON +} DhaSolMode; + +/** + * DHA Select + */ +typedef enum __DhaSolSelect { + DHA_SEL_LEFT, + DHA_SEL_RIGHT +} DhaSolSelect; + +/** + * LoopbackTest parameters. + */ +typedef enum __LoopbackMode { + LOOPBACK_END, + LOOPBACK_ON_PCM, + LOOPBACK_ON_PACKET +} LoopbackMode; + +typedef enum __LoopbackPath { + RECEIVER, + EARPHONE, + LOUDSPEAKER +} LoopbackPath; + + +/** + * Set in-call volume. + */ +int SetCallVolume(HRilClient client, SoundType type, int vol_level); + +/** + * Set external sound device path for noise reduction. + */ +int SetCallAudioPath(HRilClient client, AudioPath path, ExtraVolume mode); + +/** + * Set modem clock to master or slave. + */ +int SetCallClockSync(HRilClient client, SoundClockCondition condition); + +/** + * Set modem vtcall clock to master or slave. + */ +int SetVideoCallClockSync(HRilClient client, SoundClockCondition condition); + +/** + * Set voice call record + */ +int SetCallRecord(HRilClient client, CallRecCondition condition); + +/** + * Set mute or unmute + */ +int SetMute(HRilClient client, MuteCondition condition); + +/** + * Get mute state + */ +int GetMute(HRilClient client, RilOnComplete handler); + +int SetTwoMicControl(HRilClient client, TwoMicSolDevice device, TwoMicSolReport report); + +/** + * DHA Solution Set + */ +int SetDhaSolution(HRilClient client, DhaSolMode mode, DhaSolSelect select, char *parameter); + +/** + * Set Loopback Test Mode and Path + */ +int SetLoopbackTest(HRilClient client, LoopbackMode mode, AudioPath path); + +#ifdef __cplusplus +}; +#endif + +#endif // __SECRIL_CLIENT_H__ + +// end of file + |