Files
ofono-vendor-qti-radio-plugin/include/vendor_qti_ims_radio.h
2024-01-23 01:11:08 +08:00

187 lines
7.4 KiB
C

#ifndef VENDOR_QTI_IMS_RADIO_H
#define VENDOR_QTI_IMS_RADIO_H
#include <binder_ext_slot.h>
#include <radio_types.h>
#include "vendor_qti_types.h"
/* c(req,resp,callName,CALL_NAME) */
#define IMS_RADIO_CALL_1_0(c) \
c(2,1,dial,DIAL) \
c(3,31,addParticipant,ADD_PARTICIPANT) \
c(4,11,getRegistrationState,GET_REGISTRATION_STATE) \
c(5,2,answer,ANSWER) \
c(6,3,hangup,HANGUP) \
c(7,4,requestRegistrationChange,REQUEST_REGISTRATION_CHANGE) \
c(8,5,queryServiceStatus,QUERY_SERVICE_STATUS) \
c(9,6,setServiceStatus,SET_SERVICE_STATUS) \
c(10,7,hold,HOLD) \
c(11,8,resume,RESUME) \
c(12,9,setConfig,SET_CONFIG) \
c(13,10,getConfig,GET_CONFIG) \
c(14,13,conference,CONFERENCE) \
c(15,14,getClip,GET_CLIP) \
c(16,15,getClir,GET_CLIR) \
c(17,16,setClir,SET_CLIR) \
c(18,17,getColr,GET_COLR) \
c(20,18,exitEmergencyCallbackMode,EXIT_EMERGENCY_CALLBACK_MODE) \
c(21,19,sendDtmf,SEND_DTMF) \
c(22,20,startDtmf,START_DTMF) \
c(23,21,stopDtmf,STOP_DTMF) \
c(24,22,setUiTtyMode,SET_UI_TTY_MODE) \
c(25,23,modifyCallInitiate,MODIFY_CALL_INITIATE) \
c(26,24,modifyCallConfirm,MODIFY_CALL_CONFIRM) \
c(27,25,queryCallForwardStatus,QUERY_CALL_FORWARD_STATUS) \
c(29,26,getCallWaiting,GET_CALL_WAITING) \
c(31,28,setSuppServiceNotification,SET_SUPP_SERVICE_NOTIFICATION) \
c(32,27,explicitCallTransfer,EXPLICIT_CALL_TRANSFER) \
c(33,12,suppServiceStatus,SUPP_SERVICE_STATUS) \
c(34,29,getRtpStatistics,GET_RTP_STATISTICS) \
c(35,30,getRtpErrorStatistics,GET_RTP_ERROR_STATISTICS) \
c(36,32,deflectCall,DEFLECT_CALL) \
c(37,33,sendGeolocationInfo,SEND_GEOLOCATION_INFO) \
c(38,34,getImsSubConfig,GET_IMS_SUB_CONFIG) \
c(39,35,sendRttMessage,SEND_RTT_MESSAGE) \
c(40,36,cancelModifyCall,CANCEL_MODIFY_CALL)
#define IMS_RADIO_CALL_1_2(c) /* Since 1.2.0 */ \
c(43,37,sendImsSms,SEND_IMS_SMS)
typedef enum ims_radio_req {
IMS_RADIO_REQ_ANY = 0,
IMS_RADIO_REQ_NONE = 0,
#define IMS_RADIO_REQ_(req,resp,Name,NAME) IMS_RADIO_REQ_##NAME = req,
/* vendor.qti.hardware.radio.ims@1.0::IImsRadio */
IMS_RADIO_REQ_SET_CALLBACK = 1, /* setCallback */
IMS_RADIO_CALL_1_0(IMS_RADIO_REQ_)
IMS_RADIO_REQ_SET_COLR = 19,/* setColr */
IMS_RADIO_1_0_REQ_LAST = IMS_RADIO_REQ_CANCEL_MODIFY_CALL,
/* vendor.qti.hardware.radio.ims@1.1::IImsRadio */
IMS_RADIO_REQ_HANGUP_1_1 = 41,/* hangup_1_1 */
IMS_RADIO_1_1_REQ_LAST = IMS_RADIO_REQ_HANGUP_1_1,
/* vendor.qti.hardware.radio.ims@1.2::IImsRadio */
IMS_RADIO_REQ_HANGUP_1_2 = 42,/* hangup_1_2 */
IMS_RADIO_CALL_1_2(IMS_RADIO_REQ_)
IMS_RADIO_REQ_ACKNOWLEDGE_SMS = 44,/* acknowledgeSms */
IMS_RADIO_REQ_ACKNOWLEDGE_SMS_REPORT = 45,/* acknowledgeSmsReport */
IMS_RADIO_REQ_UNKOWN_1 = 46,
IMS_RADIO_REQ_UNKOWN_2 = 47,
IMS_RADIO_1_2_REQ_LAST = IMS_RADIO_REQ_UNKOWN_2,
#undef IMS_RADIO_REQ_
} IMS_RADIO_REQ;
G_STATIC_ASSERT(sizeof(IMS_RADIO_REQ) == 4);
typedef enum ims_radio_resp {
IMS_RADIO_RESP_ANY = 0,
IMS_RADIO_RESP_NONE = 0,
#define IMS_RADIO_RESP_(req,resp,Name,NAME) IMS_RADIO_RESP_##NAME = resp,
/* vendor.qti.hardware.radio.ims@1.1::IImsRadioResponse */
IMS_RADIO_CALL_1_0(IMS_RADIO_RESP_)
IMS_RADIO_1_0_RESP_LAST = IMS_RADIO_RESP_CANCEL_MODIFY_CALL,
/* vendor.qti.hardware.radio.ims@1.1::IImsRadioResponse */
IMS_RADIO_1_1_RESP_LAST = IMS_RADIO_1_0_RESP_LAST,
/* vendor.qti.hardware.radio.ims@1.1::IImsRadioResponse */
IMS_RADIO_CALL_1_2(IMS_RADIO_RESP_)
IMS_RADIO_1_2_RESP_LAST = IMS_RADIO_RESP_SEND_IMS_SMS,
#undef IMS_RADIO_RESP_
} IMS_RADIO_RESP;
G_STATIC_ASSERT(sizeof(IMS_RADIO_RESP) == 4);
/* e(code,eventName,EVENT_NAME) */
#define IMS_RADIO_EVENT_1_0(e) \
e(1,callStateChanged,CALL_STATE_CHANGED) \
e(2,ring,RING) \
e(3,ringbackTone,RINGBACK_TONE) \
e(4,registrationChanged,REGISTRATION_CHANGED) \
e(5,handover,HANDOVER) \
e(6,serviceStatusChanged,SERVICE_STATUS_CHANGED) \
e(7,radioStateChanged,RADIO_STATE_CHANGED) \
e(8,enterEmergencyCallBackMode,ENTER_EMERGENCY_CALL_BACK_MODE) \
e(9,exitEmergencyCallBackMode,EXIT_EMERGENCY_CALL_BACK_MODE) \
e(10,ttyNotification,TTY_NOTIFICATION) \
e(11,refreshConferenceInfo,REFRESH_CONFERENCE_INFO) \
e(12,refreshViceInfo,REFRESH_VICE_INFO) \
e(13,modifyCall,MODIFY_CALL) \
e(14,suppServiceNotification,SUPP_SERVICE_NOTIFICATION) \
e(15,messageWaiting,MESSAGE_WAITING) \
e(16,geolocationInfoRequested,GEOLOCATION_INFO_REQUESTED) \
e(17,imsSubConfigChanged,IMS_SUB_CONFIG_CHANGED) \
e(18,participantStatusInfo,PARTICIPANT_STATUS_INFO) \
e(19,registrationBlockStatus,REGISTRATION_BLOCK_STATUS) \
e(20,rttMessageReceived,RTT_MESSAGE_RECEIVED) \
e(21,voWiFiCallQuality,VO_WIFI_CALL_QUALITY) \
e(22,supplementaryServiceIndication,SUPPLEMENTARY_SERVICE_INDICATION)
#define IMS_RADIO_EVENT_1_1(e) \
e(23,callStateChanged_1_1,CALL_STATE_CHANGED_1_1)
#define IMS_RADIO_EVENT_1_2(e) \
e(24,callStateChanged_1_2,CALL_STATE_CHANGED_1_2) \
e(25,imsSmsStatusReport,IMS_SMS_STATUS_REPORT) \
e(26,incomingImsSms,INCOMING_IMS_SMS) \
e(27,vopsChanged,VOPS_CHANGED)
typedef enum ims_radio_ind {
IMS_RADIO_IND_ANY = 0,
IMS_RADIO_IND_NONE = 0,
#define IMS_RADIO_IND_(code,Name,NAME) IMS_RADIO_IND_##NAME = code,
/* vendor.qti.hardware.radio.ims@1.0::IImsRadioIndication */
IMS_RADIO_EVENT_1_0(IMS_RADIO_IND_)
IMS_RADIO_1_0_IND_LAST = IMS_RADIO_IND_SUPPLEMENTARY_SERVICE_INDICATION,
/* vendor.qti.hardware.radio.ims@1.1::IImsRadioIndication */
IMS_RADIO_EVENT_1_1(IMS_RADIO_IND_)
IMS_RADIO_1_1_IND_LAST = IMS_RADIO_IND_CALL_STATE_CHANGED_1_1, /* Since 1.2.4 */
/* vendor.qti.hardware.radio.ims@1.2::IImsRadioIndication */
IMS_RADIO_EVENT_1_2(IMS_RADIO_IND_)
IMS_RADIO_1_2_IND_LAST = IMS_RADIO_IND_VOPS_CHANGED, /* Since 1.2.4 */
#undef IMS_RADIO_IND_
} IMS_RADIO_IND;
G_STATIC_ASSERT(sizeof(IMS_RADIO_IND) == 4);
typedef enum ims_radio_interface {
IMS_RADIO_INTERFACE_NONE = -1, /* Since 1.4.3 */
IMS_RADIO_INTERFACE_1_0,
IMS_RADIO_INTERFACE_1_1,
IMS_RADIO_INTERFACE_1_2,
IMS_RADIO_INTERFACE_COUNT
} IMS_RADIO_INTERFACE; /* Since 1.2.0 */
#define IMS_RADIO_IFACE_PREFIX "vendor.qti.hardware.radio.ims@"
#define IMS_RADIO_IFACE "IImsRadio"
#define IMS_RADIO_RESPONSE_IFACE "IImsRadioResponse"
#define IMS_RADIO_INDICATION_IFACE "IImsRadioIndication"
#define IMS_RADIO_IFACE_1_0(x) IMS_RADIO_IFACE_PREFIX "1.0::" x
#define IMS_RADIO_IFACE_1_1(x) IMS_RADIO_IFACE_PREFIX "1.1::" x
#define IMS_RADIO_IFACE_1_2(x) IMS_RADIO_IFACE_PREFIX "1.2::" x
#define IMS_RADIO_1_0 IMS_RADIO_IFACE_1_0(IMS_RADIO_IFACE)
#define IMS_RADIO_1_1 IMS_RADIO_IFACE_1_1(IMS_RADIO_IFACE)
#define IMS_RADIO_1_2 IMS_RADIO_IFACE_1_2(IMS_RADIO_IFACE)
#define IMS_RADIO_RESPONSE_1_0 IMS_RADIO_IFACE_1_0(IMS_RADIO_RESPONSE_IFACE)
#define IMS_RADIO_RESPONSE_1_1 IMS_RADIO_IFACE_1_1(IMS_RADIO_RESPONSE_IFACE)
#define IMS_RADIO_RESPONSE_1_2 IMS_RADIO_IFACE_1_2(IMS_RADIO_RESPONSE_IFACE)
#define IMS_RADIO_INDICATION_1_0 IMS_RADIO_IFACE_1_0(IMS_RADIO_INDICATION_IFACE)
#define IMS_RADIO_INDICATION_1_1 IMS_RADIO_IFACE_1_1(IMS_RADIO_INDICATION_IFACE)
#define IMS_RADIO_INDICATION_1_2 IMS_RADIO_IFACE_1_2(IMS_RADIO_INDICATION_IFACE)
VendorQtiImsRadio* vendor_qti_ims_radio_new(const char* dev, const char* name);
VendorQtiImsRadio* vendor_qti_ims_radio_ref(VendorQtiImsRadio* self);
void vendor_qti_ims_radio_unref(VendorQtiImsRadio* self);
#endif