一点点
This commit is contained in:
17
Makefile
17
Makefile
@@ -37,15 +37,12 @@ SRC = \
|
||||
vendor_qti_ext.c \
|
||||
vendor_qti_slot.c \
|
||||
vendor_qti_ims_radio.c \
|
||||
|
||||
#
|
||||
# vendor_qti_ims.c \
|
||||
# vendor_qti_ims_call.c \
|
||||
# vendor_qti_ims_conf.c \
|
||||
# vendor_qti_ims_radio.c \
|
||||
# vendor_qti_ims_sms.c \
|
||||
# vendor_qti_ims_state.c \
|
||||
# vendor_qti_util.c
|
||||
vendor_qti_ims.c \
|
||||
vendor_qti_ims_call.c \
|
||||
vendor_qti_ims_conf.c \
|
||||
vendor_qti_ims_sms.c \
|
||||
vendor_qti_ims_state.c \
|
||||
vendor_qti_util.c
|
||||
|
||||
#
|
||||
# Directories
|
||||
@@ -67,7 +64,7 @@ WARNINGS = -Wall
|
||||
INCLUDES = -I$(INCLUDE_DIR)
|
||||
BASE_FLAGS = -fPIC -fvisibility=hidden
|
||||
FULL_CFLAGS = $(BASE_FLAGS) $(CFLAGS) $(DEFINES) $(WARNINGS) $(INCLUDES) \
|
||||
-MMD -MP $(shell pkg-config --cflags $(PKGS))
|
||||
-MMD -MP -fPIC $(shell pkg-config --cflags $(PKGS))
|
||||
FULL_LDFLAGS = $(BASE_FLAGS) $(LDFLAGS) -shared \
|
||||
$(shell pkg-config --libs $(LDPKGS))
|
||||
DEBUG_FLAGS = -g
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
#include <binder_ext_ims.h>
|
||||
|
||||
BinderExtIms* vendor_qti_ims_new(const char* slot);
|
||||
BinderExtIms* vendor_qti_ims_new(VendorQtiImsRadio* ims_radio, VendorQtiImsStateObject* ims_state);
|
||||
|
||||
#endif
|
||||
|
||||
8
include/vendor_qti_ims_call.h
Normal file
8
include/vendor_qti_ims_call.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef VENDOR_QTI_IMS_CALL_H
|
||||
#define VENDOR_QTI_IMS_CALL_H
|
||||
|
||||
#include "binder_ext_call.h"
|
||||
|
||||
BinderExtCall* vendor_qti_ims_call_new(VendorQtiImsRadio* ims_radio, VendorQtiImsStateObject* ims_state);
|
||||
|
||||
#endif
|
||||
@@ -56,18 +56,18 @@ typedef enum ims_radio_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,
|
||||
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,
|
||||
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,
|
||||
IMS_RADIO_REQ_HANGUP_1_2 = 42,/* hangup_1_2 */
|
||||
IMS_RADIO_CALL_1_2(IMS_RADIO_REQ_)
|
||||
IMS_RADIO_REQ_ACKNOWLEDGE_SMS = 44,
|
||||
IMS_RADIO_REQ_ACKNOWLEDGE_SMS_REPORT = 45,
|
||||
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,
|
||||
@@ -95,6 +95,60 @@ typedef enum 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 */
|
||||
@@ -125,4 +179,8 @@ typedef enum ims_radio_interface {
|
||||
|
||||
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
|
||||
|
||||
8
include/vendor_qti_ims_sms.h
Normal file
8
include/vendor_qti_ims_sms.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef VENDOR_QTI_IMS_SMS_H
|
||||
#define VENDOR_QTI_IMS_SMS_H
|
||||
|
||||
#include "binder_ext_sms.h"
|
||||
|
||||
BinderExtSms* vendor_qti_ims_sms_new(VendorQtiImsRadio* ims_radio, VendorQtiImsStateObject* ims_state);
|
||||
|
||||
#endif
|
||||
@@ -5,4 +5,7 @@
|
||||
|
||||
VendorQtiImsStateObject* vendor_qti_ims_state_new(VendorQtiImsRadio* ims_radio);
|
||||
|
||||
VendorQtiImsStateObject* vendor_qti_ims_state_ref(VendorQtiImsStateObject* self);
|
||||
|
||||
void vendor_qti_ims_state_unref(VendorQtiImsStateObject* self);
|
||||
#endif
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
#include <ofono/log.h>
|
||||
#include "binder_ext_types.h"
|
||||
#include "vendor_qti_types.h"
|
||||
|
||||
|
||||
#include <binder_ext_ims_impl.h>
|
||||
#include "vendor_qti_ims.h"
|
||||
|
||||
#include <ofono/log.h>
|
||||
|
||||
typedef BinderExtImsClass VendorQtiImsClass;
|
||||
typedef GObjectClass VendorQtiImsClass;
|
||||
struct qti_ims {
|
||||
BinderExtIms parent;
|
||||
GObject parent;
|
||||
char* slot;
|
||||
};
|
||||
|
||||
@@ -17,7 +15,7 @@ void
|
||||
qti_ims_iface_init(
|
||||
BinderExtImsInterface* iface);
|
||||
|
||||
GType qti_ims_get_type() G_GNUC_INTERNAL;
|
||||
GType qti_ims_get_type();
|
||||
G_DEFINE_TYPE_WITH_CODE(VendorQtiIms, qti_ims, G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE(BINDER_EXT_TYPE_IMS, qti_ims_iface_init))
|
||||
|
||||
@@ -117,8 +115,7 @@ qti_ims_iface_init(
|
||||
*==========================================================================*/
|
||||
|
||||
BinderExtIms*
|
||||
qti_ims_new(
|
||||
const char* slot)
|
||||
qti_ims_new(VendorQtiImsRadio* ims_radio, VendorQtiImsStateObject* ims_state)
|
||||
{
|
||||
VendorQtiIms* self = g_object_new(THIS_TYPE, NULL);
|
||||
|
||||
@@ -126,7 +123,7 @@ qti_ims_new(
|
||||
* This could be the place to register a listener that gets invoked
|
||||
* on registration state change and emits SIGNAL_STATE_CHANGED.
|
||||
*/
|
||||
self->slot = g_strdup(slot);
|
||||
|
||||
return BINDER_EXT_IMS(self);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
#include <ofono/log.h>
|
||||
|
||||
#include <binder_ext_call_impl.h>
|
||||
|
||||
#include "vendor_qti_types.h"
|
||||
|
||||
typedef BinderExtCallClass VendorQtiImsCallClass;
|
||||
#include "vendor_qti_ims_call.h"
|
||||
|
||||
typedef GObjectClass VendorQtiImsCallClass;
|
||||
struct qti_ims_call {
|
||||
BinderExtCall parent;
|
||||
GObject parent;
|
||||
void * v_1;
|
||||
void * v_2;
|
||||
void * v_3;
|
||||
@@ -12,14 +17,38 @@ struct qti_ims_call {
|
||||
void * v_6;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(VendorQtiImsCall, qti_ims_call, BINDER_EXT_TYPE_CALL)
|
||||
static void qti_ims_call_iface_init(BinderExtCallInterface* iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE(VendorQtiImsCall, qti_ims_call, G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE(BINDER_EXT_TYPE_CALL, qti_ims_call_iface_init))
|
||||
|
||||
#define QTI_IMS_CALL_TYPE_SLOT qti_ims_call_get_type()
|
||||
#define QTI_IMS_CALL_SLOT(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, QTI_IMS_CALL_TYPE_SLOT, VendorQtiImsCall)
|
||||
#define QTI_IMS_CALL_IS_SLOT(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, QTI_IMS_CALL_TYPE_SLOT)
|
||||
|
||||
static
|
||||
void
|
||||
qti_ims_call_init(
|
||||
VendorQtiImsCall* self)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
qti_ims_call_class_init(
|
||||
VendorQtiImsCallClass* klass)
|
||||
{
|
||||
|
||||
}
|
||||
static void qti_ims_call_iface_init(BinderExtCallInterface* iface){
|
||||
|
||||
}
|
||||
|
||||
BinderExtCall* vendor_qti_ims_call_new(VendorQtiImsRadio* ims_radio, VendorQtiImsStateObject* ims_state){
|
||||
return NULL;
|
||||
}
|
||||
/*
|
||||
vendor_qti_ims_call_conference_info_start_element
|
||||
vendor_qti_ims_call_reg_state_update
|
||||
vendor_qti_ims_call_hangup
|
||||
@@ -36,3 +65,4 @@ vendor_qti_ims_call_handle_conference_info
|
||||
vendor_qti_ims_call_handle_conf_user_deleted
|
||||
vendor_qti_ims_call_handle_conf_user_info_changed
|
||||
vendor_qti_ims_call_handle_state_change
|
||||
*/
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <gbinder.h>
|
||||
#include <glib.h>
|
||||
#include <gutil_idlepool.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "vendor_qti_ims_radio.h"
|
||||
|
||||
@@ -71,6 +72,28 @@ G_DEFINE_TYPE(VendorQtiImsRadio, qti_ims_radio, G_TYPE_OBJECT)
|
||||
#define IS_THIS(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, THIS_TYPE)
|
||||
#define PARENT_CLASS qti_ims_radio_parent_class
|
||||
|
||||
enum qti_ims_radio_signal {
|
||||
SIGNAL_REG_STATE_CHANGED,
|
||||
SIGNAL_INCOMING_SMS,
|
||||
SIGNAL_SMS_STATUS_REPORT,
|
||||
SIGNAL_CALL_RING,
|
||||
SIGNAL_CALL_STATE_CHANGED,
|
||||
SIGNAL_SUPP_SERVICE_NOTIFY,
|
||||
SIGNAL_CONFERENCE_INFO,
|
||||
SIGNAL_COUNT
|
||||
};
|
||||
|
||||
#define SIGNAL_REG_STATE_CHANGED_NAME "qti-ims-radio-reg-state-changed"
|
||||
#define SIGNAL_INCOMING_SMS_NAME "qti-ims-radio-incoming-sms"
|
||||
#define SIGNAL_SMS_STATUS_REPORT_NAME "qti-ims-radio-sms-status-report"
|
||||
#define SIGNAL_CALL_RING_NAME "qti-ims-radio-call-ring"
|
||||
#define SIGNAL_CALL_STATE_CHANGED_NAME "qti-ims-radio-call-state-changed"
|
||||
#define SIGNAL_SUPP_SERVICE_NOTIFY_NAME "qti-ims-radio-supp-service-notify"
|
||||
#define SIGNAL_CONFERENCE_INFO_NAME "qti-ims-radio-conference-info"
|
||||
|
||||
static guint qti_ims_radio_signals[SIGNAL_COUNT] = { 0 };
|
||||
|
||||
|
||||
/*==========================================================================*
|
||||
* Internals
|
||||
*==========================================================================*/
|
||||
@@ -109,7 +132,27 @@ qti_ims_radio_class_init(
|
||||
VendorQtiImsRadioClass* klass)
|
||||
{
|
||||
G_OBJECT_CLASS(klass)->finalize = qti_ims_radio_finalize;
|
||||
// g_signal_new
|
||||
qti_ims_radio_signals[SIGNAL_REG_STATE_CHANGED] =
|
||||
g_signal_new(SIGNAL_REG_STATE_CHANGED_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 2, 28LL);
|
||||
qti_ims_radio_signals[SIGNAL_INCOMING_SMS] =
|
||||
g_signal_new(SIGNAL_INCOMING_SMS_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 4, 64LL);
|
||||
qti_ims_radio_signals[SIGNAL_SMS_STATUS_REPORT] =
|
||||
g_signal_new(SIGNAL_SMS_STATUS_REPORT_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 4, 64LL);
|
||||
qti_ims_radio_signals[SIGNAL_CALL_RING] =
|
||||
g_signal_new(SIGNAL_CALL_RING_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0);
|
||||
qti_ims_radio_signals[SIGNAL_CALL_STATE_CHANGED] =
|
||||
g_signal_new(SIGNAL_CALL_STATE_CHANGED_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 2, 68LL);
|
||||
qti_ims_radio_signals[SIGNAL_SUPP_SERVICE_NOTIFY] =
|
||||
g_signal_new(SIGNAL_SUPP_SERVICE_NOTIFY_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 1, 68LL);
|
||||
qti_ims_radio_signals[SIGNAL_CONFERENCE_INFO] =
|
||||
g_signal_new(SIGNAL_CONFERENCE_INFO_NAME,
|
||||
G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 1, 68LL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,7 +231,7 @@ VendorQtiImsRadio* vendor_qti_ims_radio_create(
|
||||
return self;
|
||||
}
|
||||
|
||||
VendorQtiImsRadio* radio_instance_new_with_version(
|
||||
VendorQtiImsRadio* vendor_qti_ims_radio_new_with_version(
|
||||
const char* dev,
|
||||
const char* name,
|
||||
RADIO_INTERFACE max_version) /* Since 1.2.1 */
|
||||
@@ -220,3 +263,22 @@ VendorQtiImsRadio* vendor_qti_ims_radio_new(const char* dev, const char* name)
|
||||
{
|
||||
return vendor_qti_ims_radio_new_with_version(dev, name, DEFAULT_INTERFACE);
|
||||
}
|
||||
|
||||
VendorQtiImsRadio*
|
||||
vendor_qti_ims_radio_ref(
|
||||
VendorQtiImsRadio* self)
|
||||
{
|
||||
if (G_LIKELY(self)) {
|
||||
g_object_ref(self);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
void
|
||||
vendor_qti_ims_radio_unref(
|
||||
VendorQtiImsRadio* self)
|
||||
{
|
||||
if (G_LIKELY(self)) {
|
||||
g_object_unref(self);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "binder_ext_sms_impl.h"
|
||||
|
||||
#include "vendor_qti_types.h"
|
||||
|
||||
#include "vendor_qti_ims_sms.h"
|
||||
|
||||
typedef GObjectClass VendorQtiImsSmsClass;
|
||||
struct qti_ims_sms {
|
||||
@@ -10,6 +10,8 @@ struct qti_ims_sms {
|
||||
int cancelled;
|
||||
VendorQtiImsRadio* ims_radio;
|
||||
VendorQtiImsStateObject* ims_state;
|
||||
gulong incoming;
|
||||
gulong status_report;
|
||||
};
|
||||
|
||||
static void qti_ims_sms_iface_init(BinderExtSmsInterface* iface);
|
||||
@@ -19,6 +21,18 @@ G_IMPLEMENT_INTERFACE(BINDER_EXT_TYPE_SMS, qti_ims_sms_iface_init))
|
||||
#define QTI_TYPE_SMS qti_ims_sms_get_type()
|
||||
#define QTI_IMS_SMS(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, QTI_TYPE_SMS, VendorQtiImsSms)
|
||||
|
||||
enum qti_ims_sms_signal {
|
||||
SIGNAL_INCOMING,
|
||||
SIGNAL_STATUS_REPORT,
|
||||
SIGNAL_COUNT
|
||||
};
|
||||
|
||||
#define SIGNAL_INCOMING_NAME "qti-ims-sms-incoming"
|
||||
#define SIGNAL_STATUS_REPORT_NAME "qti-ims-sms-status-report"
|
||||
|
||||
static guint qti_ims_sms_signals[SIGNAL_COUNT] = { 0 };
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
qti_ims_sms_init(
|
||||
@@ -31,10 +45,10 @@ void
|
||||
qti_ims_sms_class_init(
|
||||
VendorQtiImsSmsClass* klass)
|
||||
{
|
||||
sms_incoming_signal = g_signal_new("qti-ims-sms-incoming",
|
||||
qti_ims_sms_signals[SIGNAL_INCOMING] = g_signal_new(SIGNAL_INCOMING_NAME,
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
1LL, 0LL, 0LL, 0LL, 0LL, 4LL, 2, 68LL);
|
||||
sms_status_report_signal = g_signal_new("qti-ims-sms-status-report",
|
||||
qti_ims_sms_signals[SIGNAL_STATUS_REPORT] = g_signal_new(SIGNAL_STATUS_REPORT_NAME,
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
1LL, 0LL, 0LL, 0LL, 0LL, 4LL, 3, 68LL);
|
||||
}
|
||||
@@ -46,15 +60,29 @@ qti_ims_sms_class_init(
|
||||
guint vendor_qti_ims_sms_send(BinderExtSms* ext, const char* smsc, const void* pdu,
|
||||
gsize pdu_len, guint msg_ref, BINDER_EXT_SMS_SEND_FLAGS flags,
|
||||
BinderExtSmsSendFunc complete, GDestroyNotify destroy,
|
||||
void* user_data);
|
||||
void vendor_qti_ims_sms_cancel(BinderExtSms* ext, guint id);
|
||||
void vendor_qti_ims_sms_ack_report(BinderExtSms* ext, guint msg_ref, gboolean ok);
|
||||
void vendor_qti_ims_sms_ack_incoming(BinderExtSms* ext, gboolean ok);
|
||||
void* user_data){
|
||||
return 0;
|
||||
}
|
||||
void vendor_qti_ims_sms_cancel(BinderExtSms* ext, guint id){
|
||||
|
||||
}
|
||||
void vendor_qti_ims_sms_ack_report(BinderExtSms* ext, guint msg_ref, gboolean ok){
|
||||
|
||||
}
|
||||
void vendor_qti_ims_sms_ack_incoming(BinderExtSms* ext, gboolean ok){
|
||||
|
||||
}
|
||||
gulong vendor_qti_ims_sms_add_report_handler(BinderExtSms* ext,
|
||||
BinderExtSmsReportFunc handler, void* user_data);
|
||||
BinderExtSmsReportFunc handler, void* user_data){
|
||||
return 0;
|
||||
}
|
||||
gulong vendor_qti_ims_sms_add_incoming_handler(BinderExtSms* ext,
|
||||
BinderExtSmsIncomingFunc handler, void* user_data);
|
||||
void vendor_qti_ims_sms_remove_handler(BinderExtSms* ext, gulong id);
|
||||
BinderExtSmsIncomingFunc handler, void* user_data){
|
||||
return 0;
|
||||
}
|
||||
void vendor_qti_ims_sms_remove_handler(BinderExtSms* ext, gulong id){
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void qti_ims_sms_iface_init(BinderExtSmsInterface* iface){
|
||||
@@ -69,13 +97,23 @@ static void qti_ims_sms_iface_init(BinderExtSmsInterface* iface){
|
||||
iface->remove_handler = vendor_qti_ims_sms_remove_handler;
|
||||
}
|
||||
|
||||
static qti_ims_sms_signal_emit_incoming(){
|
||||
|
||||
}
|
||||
gulong qti_ims_sms_connect_signal_incoming(VendorQtiImsRadio* ims_radio){
|
||||
|
||||
}
|
||||
|
||||
BinderExtSms* vendor_qti_ims_sms_new(VendorQtiImsRadio* ims_radio,VendorQtiImsStateObject* ims_state){
|
||||
VendorQtiImsSms* sms= g_object_new(QTI_TYPE_SMS, NULL);
|
||||
VendorQtiImsSms* self = g_object_new(QTI_TYPE_SMS, NULL);
|
||||
|
||||
sms->ims_state = ims_state; // 不是直接赋值
|
||||
sms->ims_radio = ims_radio; // 不是直接赋值
|
||||
// TODO绑定信号 qti-ims-radio-incoming-sms qti-ims-radio-sms-status-report
|
||||
self->ims_state = vendor_qti_ims_radio_ref(ims_state);
|
||||
self->ims_radio = vendor_qti_ims_state_ref(ims_radio);
|
||||
|
||||
//self->incoming = g_signal_connect(ims_radio,"");
|
||||
//self->status_report = ;
|
||||
//qti-ims-radio-incoming-sms
|
||||
//qti-ims-radio-sms-status-report
|
||||
|
||||
return BINDER_EXT_IMS(sms);
|
||||
return BINDER_EXT_IMS(self);
|
||||
}
|
||||
@@ -1,10 +1,39 @@
|
||||
#include <ofono/log.h>
|
||||
#include <glib-object.h>
|
||||
#include "vendor_qti_ims_state.h"
|
||||
|
||||
typedef GObjectClass VendorQtiImsStateObjectClass;
|
||||
struct qti_ims_state{
|
||||
GObject parent;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(VendorQtiImsStateObject, qti_ims_state, G_TYPE_OBJECT)
|
||||
|
||||
#define THIS_TYPE qti_ims_state_get_type()
|
||||
#define THIS(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, THIS_TYPE, VendorQtiImsStateObject)
|
||||
#define IS_THIS(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, THIS_TYPE)
|
||||
#define PARENT_CLASS qti_ims_state_parent_class
|
||||
|
||||
|
||||
VendorQtiImsStateObject* vendor_qti_ims_state_new(VendorQtiImsRadio* ims_radio){
|
||||
return NULL;
|
||||
}
|
||||
|
||||
VendorQtiImsStateObject*
|
||||
vendor_qti_ims_state_ref(
|
||||
VendorQtiImsStateObject* self)
|
||||
{
|
||||
if (G_LIKELY(self)) {
|
||||
g_object_ref(self);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
void
|
||||
vendor_qti_ims_state_unref(
|
||||
VendorQtiImsStateObject* self)
|
||||
{
|
||||
if (G_LIKELY(self)) {
|
||||
g_object_unref(self);
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,7 @@ qti_slot_shutdown(
|
||||
//
|
||||
VendorQtiImsRadio* ims_radio = vendor_qti_ims_radio_new(radio->dev, ims_radio_name);
|
||||
self->ims_radio = ims_radio;
|
||||
/*
|
||||
|
||||
if(ims_radio != NULL){
|
||||
VendorQtiImsStateObject* ims_state = vendor_qti_ims_state_new(ims_radio);
|
||||
self->ims_state = ims_state;
|
||||
@@ -91,7 +91,7 @@ qti_slot_shutdown(
|
||||
self->ims_call = vendor_qti_ims_call_new(self->ims_radio,self->ims_state);
|
||||
self->ims_sms = vendor_qti_ims_sms_new(self->ims_radio,self->ims_state);
|
||||
}
|
||||
*/
|
||||
|
||||
g_free(ims_radio_name);
|
||||
return slot;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
|
||||
#include "vendor_qti_ims_radio.h"
|
||||
#include "vendor_qti_util.h"
|
||||
|
||||
|
||||
@@ -10,7 +11,7 @@ vendor_qti_util_radio_req_name(
|
||||
{
|
||||
switch (req) {
|
||||
#define IMS_RADIO_REQ_(req,resp,Name,NAME) \
|
||||
case RADIO_REQ_##NAME: return #Name;
|
||||
case IMS_RADIO_REQ_##NAME: return #Name;
|
||||
IMS_RADIO_CALL_1_0(IMS_RADIO_REQ_)
|
||||
IMS_RADIO_CALL_1_2(IMS_RADIO_REQ_)
|
||||
#undef IMS_RADIO_REQ_
|
||||
@@ -32,7 +33,7 @@ vendor_qti_util_radio_resp_name(
|
||||
{
|
||||
switch (resp) {
|
||||
#define IMS_RADIO_RESP_(req,resp,Name,NAME) \
|
||||
case RADIO_RESP_##NAME: return #Name "Response";
|
||||
case IMS_RADIO_RESP_##NAME: return #Name "Response";
|
||||
IMS_RADIO_CALL_1_0(IMS_RADIO_RESP_)
|
||||
IMS_RADIO_CALL_1_2(IMS_RADIO_RESP_)
|
||||
#undef IMS_RADIO_RESP_
|
||||
|
||||
Reference in New Issue
Block a user