*/
int telephony_deinit(telephony_handle_list_s *list);
+/**
+ * @brief Enumeration for the telephony state.
+ * @since_tizen 2.4
+ */
+typedef enum {
+ TELEPHONY_STATE_NOT_READY, /**< Telephony state is not ready */
+ TELEPHONY_STATE_READY, /**< Telephony state is ready */
+} telephony_state_e;
+
+/**
+ * @brief Called for the telephony state changes.
+ * @since_tizen 2.4
+ */
+typedef void (*telephony_state_changed_cb)(telephony_state_e state, void *user_data);
+
+/**
+ * @brief Acquires the telephony state value
+ *
+ * @since_tizen 2.4
+ *
+ * @param[out] state The state value of telephony.
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed
+ *
+ * @see telephony_set_state_changed_cb()
+ * @see telephony_unset_state_changed_cb()
+ */
+int telephony_get_state(telephony_state_e *state);
+
+/**
+ * @brief Sets a callback function to be invoked when the telephony state changes.
+ *
+ * @since_tizen 2.4
+ *
+ * @param[in] callback The callback to be invoked when the telephony state changes
+ * @param[in] user_data The user data passed to the callback function
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed
+ *
+ * @post telephony_state_changed_cb() will be invoked.
+ *
+ * @see telephony_unset_state_changed_cb()
+ */
+int telephony_set_state_changed_cb(telephony_state_changed_cb callback, void *user_data);
+
+/**
+ * @brief Unsets a telephony state callback function.
+ *
+ * @since_tizen 2.4
+ *
+ * @param[in] callback The callback to unset when the telephony state changes
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ *
+ * @retval #TELEPHONY_ERROR_NONE Successful
+ * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported
+ * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed
+ *
+ * @see telephony_set_state_changed_cb()
+ */
+int telephony_unset_state_changed_cb(telephony_state_changed_cb callback);
+
/**
* @}
*/
*/
int telephony_sim_get_subscriber_number(telephony_h handle, char **subscriber_number);
-/*
+/**
* @brief Gets the Subscriber ID.
* @details This function gets subscriber ID encoded.
*
Name: capi-telephony
Summary: Telephony Core API
-Version: 0.1.47
+Version: 0.1.48
Release: 1
Group: System/Libraries
License: Apache-2.0
return TELEPHONY_ERROR_NONE;
}
+
+int telephony_get_state(telephony_state_e *state)
+{
+ int res = 0;
+ int value = 0;
+
+ CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+ CHECK_INPUT_PARAMETER(state);
+
+ res = tel_get_ready_state(&value);
+ if (res != TAPI_API_SUCCESS)
+ return TELEPHONY_ERROR_OPERATION_FAILED;
+
+ *state = value;
+
+ return TELEPHONY_ERROR_NONE;
+}
+
+int telephony_set_state_changed_cb(telephony_state_changed_cb callback, void *user_data)
+{
+ int res = 0;
+
+ CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+ CHECK_INPUT_PARAMETER(callback);
+
+ res = tel_register_ready_state_cb((tapi_state_cb)callback, user_data);
+ if (res != TAPI_API_SUCCESS)
+ return TELEPHONY_ERROR_OPERATION_FAILED;
+
+ return TELEPHONY_ERROR_NONE;
+}
+
+int telephony_unset_state_changed_cb(telephony_state_changed_cb callback)
+{
+ int res = 0;
+
+ CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE);
+ CHECK_INPUT_PARAMETER(callback);
+
+ res = tel_deregister_ready_state_cb((tapi_state_cb)callback);
+ if (res != TAPI_API_SUCCESS)
+ return TELEPHONY_ERROR_OPERATION_FAILED;
+
+ return TELEPHONY_ERROR_NONE;
+}
direction == TELEPHONY_CALL_DIRECTION_MO ? "MO" : "MT",
conf_status ? "TRUE" : "FALSE");
free(number);
+ number = NULL;
}
telephony_call_release_call_list(count, &call_list);
}
}
+static void on_telephony_state_changed_cb(telephony_state_e state, void *user_data)
+{
+ LOGI("telephony state value : [%d]", state);
+}
+
int main()
{
int ret_value, i;
char *imei = NULL;
telephony_modem_power_status_e power_status = 0;
+ /* Ready */
+ telephony_state_e ready_state = 0;
+
/* Initialize handle */
ret_value = telephony_init(&handle_list);
if (ret_value != TELEPHONY_ERROR_NONE) {
LOGI("handle_id[%d] number[%s] type[%d] status[%d] direction[%d] conf_status[%d]",
handle_id, number, type, status, direction, conf_status);
free(number);
+ number = NULL;
}
telephony_call_release_call_list(count, &call_list);
}
LOGE("Set noti failed!!!");
}
+ ret_value = telephony_get_state(&ready_state);
+ if (ret_value != TELEPHONY_ERROR_NONE)
+ LOGI("telephony_get_state() failed!!!");
+ else
+ LOGI("telephony_get_state() succeed ! : %s", ready_state ? "TRUE" : "FALSE");
+
+ ret_value = telephony_set_state_changed_cb(on_telephony_state_changed_cb, NULL);
+ if (ret_value != TELEPHONY_ERROR_NONE)
+ LOGI("telephony_set_state_changed_cb() failed!!!");
+ else
+ LOGI("telephony_set_state_changed_cb() succeed!!");
+
LOGI("If telephony status is changed, then callback function will be called");
event_loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(event_loop);
if (ret_value != TELEPHONY_ERROR_NONE)
LOGE("Deinitialize failed!!!");
+ ret_value = telephony_unset_state_changed_cb(on_telephony_state_changed_cb);
+ if (ret_value != TELEPHONY_ERROR_NONE)
+ LOGE("telephony_unset_state_changed_cb() failed!!!");
+ else
+ LOGD("telephony_unset_state_changed_cb() succeed!!");
+
return 0;
}