static int app_hsp = 0;
//static int charging_hsp = 0;
static int wakeup_hsp = 0;
+static int modem_hsp = 0;
+static int modem_flag = 0;
static int prev_wakeup = 0;
static int prev_lock = 0;
static int prev_battery_level = 0;
if (data_obj) {
if (state == WIFI_MANAGER_DEVICE_STATE_ACTIVATED) {
data_obj->event_code = ET_NONE;
+ data_obj->event_code |= ET_ACTIVE;
data_obj->event_code |= ET_FLAG_START;
- data_obj->event_code |= ET_CONNECTIVITY_CHANGED;
data_obj->event_tag = NULL;
data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
if (data_obj->event_tag) {
data_obj->state_2 |= ST2_WIFI_ON_FLAG;
} else {
data_obj->event_code = ET_NONE;
+ data_obj->event_code |= ET_ACTIVE;
data_obj->event_code |= ET_FLAG_FINISH;
- data_obj->event_code |= ET_CONNECTIVITY_CHANGED;
data_obj->event_tag = NULL;
data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
if (data_obj->event_tag) {
return 0;
}
+static void fill_modem_power_state_change(int state)
+{
+ ENTER;
+
+ _INFO("fill_modem_power_state_change - state[%d]", state);
+
+ if (data_obj && state == 0) { /* ON */
+ data_obj->event_code = ET_NONE;
+ data_obj->event_code |= ET_ACTIVE;
+ data_obj->event_code |= ET_FLAG_START;
+ data_obj->event_tag = NULL;
+
+ data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
+ if (data_obj->event_tag) {
+ listener_hsp++;
+ modem_hsp = listener_hsp;
+ data_obj->event_tag->sp_idx = modem_hsp;
+ _DBG("ON event tag - success");
+ } else {
+ _ERR("ON event tag - failure");
+ return;
+ }
+
+ data_obj->state_1 |= ST1_MOBILE_RADIO_ACTIVE_FLAG;
+
+ } else if (data_obj && state == 1) { /* OFF */
+ data_obj->event_code = ET_NONE;
+ data_obj->event_code |= ET_ACTIVE;
+ data_obj->event_code |= ET_FLAG_FINISH;
+ data_obj->event_tag = NULL;
+
+ data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
+ if (data_obj->event_tag) {
+ data_obj->event_tag->sp_idx = modem_hsp;
+ _DBG("OFF event tag - success");
+ } else {
+ _ERR("OFF event tag - failure");
+ return;
+ }
+
+ data_obj->state_1 &= ~(ST1_MOBILE_RADIO_ACTIVE_FLAG);
+
+ } else {
+ _ERR("invalid data-object or state");
+ }
+
+ EXIT;
+ return;
+}
+
static void bm_create_event_data(int type, int val, char *app)
{
ENTER;
break;
else
return;
+ case LISTEN_MODEM_POWER_STATE:
+ fill_modem_power_state_change(val);
+ break;
default:
return;
}
_INFO("modem power change notification - data[%d]", *((int *)data));
int *status = (int *)data;
+
+ if (*status && !modem_flag) {
+ _DBG("redundant request");
+ return;
+ }
+
int state = -1;
/* handling only On/Off states */
switch(*status) {
case 0: /* ON */
state = 0;
+ modem_flag = 1;
break;
case 1: /* OFF */
state = 1;
+ modem_flag = 0;
break;
default:
break;