call: Add ring ind handler

This commit is contained in:
Marius Gripsgard
2024-10-13 15:37:26 +02:00
parent 2b2f016700
commit 3d692e3989
3 changed files with 36 additions and 1 deletions

View File

@@ -197,6 +197,15 @@ qti_ims_call_handle_call_info(
qti_ims_call_signals[SIGNAL_CALL_STATE_CHANGED], 0);
}
static
void
qti_ims_call_handle_ring(
QtiRadioExt* radio,
void* user_data)
{
g_signal_emit(THIS(user_data),
qti_ims_call_signals[SIGNAL_CALL_RING], 0);
}
static
const BinderExtCallInfo* const*
@@ -425,6 +434,8 @@ qti_ims_call_new(
qti_radio_ext_add_call_state_handler(radio_ext,
qti_ims_call_handle_call_info, self);
qti_radio_ext_add_ring_handler(radio_ext,
qti_ims_call_handle_ring, self);
return BINDER_EXT_CALL(self);
}

View File

@@ -91,11 +91,13 @@ typedef struct qti_radio_ext_result_request {
enum qti_radio_ext_signal {
SIGNAL_IMS_REG_STATUS_CHANGED,
SIGNAL_EXT_CALL_STATE_CHANGED,
SIGNAL_EXT_ON_RING,
SIGNAL_COUNT
};
#define SIGNAL_IMS_REG_STATUS_CHANGED_NAME "qti-radio-ext-ims-reg-status-changed"
#define SIGNAL_EXT_CALL_STATE_CHANGED_NAME "qti-radio-ext-call-state-changed"
#define SIGNAL_EXT_ON_RING_NAME "qti-radio-ext-on-ring"
static guint qti_radio_ext_signals[SIGNAL_COUNT] = { 0 };
@@ -461,10 +463,12 @@ qti_radio_ext_indication(
case QTI_RADIO_IND_CALL_STATE_INDICATION:
qti_radio_ext_handle_call_state_indication(self, &args);
return NULL;
case QTI_RADIO_IND_RING_INDICATION:
g_signal_emit(self, qti_radio_ext_signals[SIGNAL_EXT_ON_RING], 0);
return NULL;
}
}
return NULL;
}
@@ -488,6 +492,16 @@ qti_radio_ext_add_call_state_handler(
SIGNAL_EXT_CALL_STATE_CHANGED_NAME, G_CALLBACK(handler), user_data) : 0;
}
gulong
qti_radio_ext_add_ring_handler(
QtiRadioExt* self,
QtiRadioExtRingFunc handler,
void* user_data)
{
return (G_LIKELY(self) && G_LIKELY(handler)) ? g_signal_connect(self,
SIGNAL_EXT_ON_RING_NAME, G_CALLBACK(handler), user_data) : 0;
}
static
GBinderLocalReply*
qti_radio_ext_response(
@@ -1142,6 +1156,10 @@ qti_radio_ext_class_init(
g_signal_new(SIGNAL_EXT_CALL_STATE_CHANGED_NAME, G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE,
1, G_TYPE_PTR_ARRAY);
qti_radio_ext_signals[SIGNAL_EXT_ON_RING] =
g_signal_new(SIGNAL_EXT_ON_RING_NAME, G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE,
0);
}
/*

View File

@@ -103,6 +103,12 @@ qti_radio_ext_add_call_state_handler(
QtiRadioExtCallStateFunc handler,
void* user_data);
gulong
qti_radio_ext_add_ring_handler(
QtiRadioExt* self,
QtiRadioExtRingFunc handler,
void* user_data);
#endif /* QTI_RADIO_EXT_H */
/*