return;
}
-static void __bm_noti_signal_strength(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
+static void _bm_notify_signal_strength(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
{
ENTER;
_INFO("device signal strength changed succeeded\n");
return;
}
+static void _bm_notify_modem_power(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
+{
+ ENTER;
+
+ if (data == NULL) {
+ _ERR("invalid data");
+ return;
+ }
+
+ _INFO("modem power change notification - data[%d]", *((int *)data));
+
+ int *status = (int *)data;
+ int state = -1;
+
+ /* handling only On/Off states */
+ switch(*status) {
+ case 0: /* ON */
+ state = 0;
+ break;
+ case 1: /* OFF */
+ state = 1;
+ break;
+ default:
+ break;
+ }
+
+ if (state != -1) {
+ event_pool *modem_power_event = (event_pool *)calloc(1, sizeof(event_pool));
+ if (!modem_power_event) {
+ _ERR("Failed to allocated memory ");
+ return;
+ }
+ modem_power_event->type = LISTEN_MODEM_POWER_STATE;
+ modem_power_event->val = state;
+ modem_power_event->app = NULL;
+
+ pthread_t producer;
+ if (pthread_create(&producer, NULL, event_producer, modem_power_event)) {
+ _ERR("Failed to pthread_create.");
+ return;
+ }
+ }
+
+ EXIT;
+ return;
+}
+
static void create_lock_event(char *lock_type)
{
return 0;
}
-static int bm_signal_strength_listeners()
+static int bm_telephony_listeners()
{
ENTER;
- /* Screen callbacks */
+ /* get handle */
handle = tel_init(NULL);
- if (handle) {
- int ret = tel_register_noti_event(handle, TAPI_NOTI_NETWORK_SIGNALSTRENGTH, __bm_noti_signal_strength, NULL);
- if (ret != BATTERY_MONITOR_ERROR_NONE) {
- _ERR("device_add_callback failed: %s", get_error_message(ret));
- return 1;
- }
+ if (handle == NULL) {
+ _ERR("invalid handle - signal strength");
+ return 1;
+ }
+
+ int ret = BATTERY_MONITOR_ERROR_NONE;
+
+ /* register signal strength notification */
+ ret = tel_register_noti_event(handle, TAPI_NOTI_NETWORK_SIGNALSTRENGTH, _bm_notify_signal_strength, NULL);
+ if (ret != BATTERY_MONITOR_ERROR_NONE) {
+ _ERR("register for signal-strength failed");
+ return 1;
+ }
+
+ /* register modem power notification */
+ ret = tel_register_noti_event(handle, TAPI_NOTI_MODEM_POWER, _bm_notify_modem_power, NULL);
+ if (ret != BATTERY_MONITOR_ERROR_NONE) {
+ _ERR("register for modem-power failed");
+ return 1;
}
EXIT;
else
_ERR("location listeners failed to subscribed\n");
- /* Signal strength callbacks */
- if (!bm_signal_strength_listeners())
- _INFO("Signal strength listeners succeeded to subscribed\n");
+ /* telephony listeners */
+ if (!bm_telephony_listeners())
+ _INFO("telephony listeners succeeded to subscribed\n");
else
- _ERR("Signal strength listeners failed to subscribed\n");
+ _ERR("telephony listeners failed to subscribed\n");
/* Powerlock callbacks */
if (!bm_powerlock_unlock_subscribe_listener())
if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_CHARGER_STATUS, __bm_charging_status_change) < 0)
_ERR("failed to de-register vconf callback");
+ /* de-register telephony callbacks */
if (handle) {
int ret = tel_deregister_noti_event(handle, TAPI_NOTI_NETWORK_SIGNALSTRENGTH);
if (ret != BATTERY_MONITOR_ERROR_NONE) {
_ERR("tel_deregister_noti_event failed: %s", get_error_message(ret));
return 1;
}
+ ret = tel_deregister_noti_event(handle, TAPI_NOTI_MODEM_POWER);
+ if (ret != BATTERY_MONITOR_ERROR_NONE) {
+ _ERR("tel_deregister_noti_event failed: %s", get_error_message(ret));
+ return 1;
+ }
tel_deinit(handle);
}