const gchar *g_module_check_init(GModule *module) { (void)module; /* Get initial state of datapipes */ call_state = datapipe_get_gint(call_state_pipe); alarm_ui_state = datapipe_get_gint(alarm_ui_state_pipe); display_state = display_state_get(); submode = datapipe_get_gint(submode_pipe); /* Append triggers/filters to datapipes */ append_input_trigger_to_datapipe(&call_state_pipe, call_state_trigger); append_input_trigger_to_datapipe(&alarm_ui_state_pipe, alarm_ui_state_trigger); append_output_trigger_to_datapipe(&display_state_pipe, display_state_trigger); append_output_trigger_to_datapipe(&submode_pipe, submode_trigger); /* PS enabled setting */ mce_gconf_notifier_add(MCE_GCONF_PROXIMITY_PATH, MCE_GCONF_PROXIMITY_PS_ENABLED_PATH, use_ps_conf_cb, &use_ps_conf_id); mce_gconf_get_bool(MCE_GCONF_PROXIMITY_PS_ENABLED_PATH, &use_ps_conf_value); /* enable/disable sensor based on initial conditions */ update_proximity_monitor(); return NULL; }
const gchar *g_module_check_init(GModule *module) { (void)module; /* Config from ini-files */ dbltap_ctrl_path = mce_conf_get_string(MCE_CONF_DOUBLETAP_GROUP, MCE_CONF_DOUBLETAP_CONTROL_PATH, NULL); dbltap_enable_val = mce_conf_get_string(MCE_CONF_DOUBLETAP_GROUP, MCE_CONF_DOUBLETAP_ENABLE_VALUE, "1"); dbltap_disable_val = mce_conf_get_string(MCE_CONF_DOUBLETAP_GROUP, MCE_CONF_DOUBLETAP_DISABLE_VALUE, "0"); if( !dbltap_ctrl_path || !dbltap_enable_val || !dbltap_disable_val ) { mce_log(LL_NOTICE, "no double tap wakeup controls defined"); goto EXIT; } dbltap_probe_sleep_mode_controls(); /* Runtime configuration settings */ mce_gconf_notifier_add(MCE_GCONF_DOUBLETAP_PATH, MCE_GCONF_DOUBLETAP_MODE, dbltap_mode_gconf_cb, &dbltap_mode_gconf_id); gint mode = DBLTAP_ENABLE_DEFAULT; mce_gconf_get_int(MCE_GCONF_DOUBLETAP_MODE, &mode); dbltap_mode = mode; /* Append triggers/filters to datapipes */ append_output_trigger_to_datapipe(&proximity_sensor_pipe, dbltap_proximity_trigger); append_output_trigger_to_datapipe(&proximity_blank_pipe, dbltap_proximity_blank_trigger); append_output_trigger_to_datapipe(&lid_cover_policy_pipe, dbltap_lid_cover_policy_trigger); /* Get initial state of datapipes */ dbltap_ps_state = datapipe_get_gint(proximity_sensor_pipe); dbltap_ps_blank = datapipe_get_gint(proximity_blank_pipe); dbltap_lid_cover_policy = datapipe_get_gint(lid_cover_policy_pipe); /* enable/disable double tap wakeups based on initial conditions */ dbltap_rethink(); EXIT: return NULL; }
const gchar *g_module_check_init(GModule *module) { (void)module; /* Append triggers/filters to datapipes */ append_output_trigger_to_datapipe(&battery_level_pipe, battery_level_trigger); append_output_trigger_to_datapipe(&charger_state_pipe, charger_state_trigger); append_output_trigger_to_datapipe(&thermal_state_pipe, thermal_state_trigger); /* Power saving mode setting */ /* Since we've set a default, error handling is unnecessary */ mce_gconf_notifier_add(MCE_GCONF_EM_PATH, MCE_GCONF_PSM_PATH, psm_gconf_cb, &psm_gconf_cb_id); mce_gconf_get_bool(MCE_GCONF_PSM_PATH, &power_saving_mode); /* Forced power saving mode setting */ /* Since we've set a default, error handling is unnecessary */ mce_gconf_notifier_add(MCE_GCONF_EM_PATH, MCE_GCONF_FORCED_PSM_PATH, psm_gconf_cb, &force_psm_gconf_cb_id); mce_gconf_get_bool(MCE_GCONF_FORCED_PSM_PATH, &force_psm); /* Power saving mode threshold */ /* Since we've set a default, error handling is unnecessary */ mce_gconf_notifier_add(MCE_GCONF_EM_PATH, MCE_GCONF_PSM_THRESHOLD_PATH, psm_gconf_cb, &psm_threshold_gconf_cb_id); mce_gconf_get_int(MCE_GCONF_PSM_THRESHOLD_PATH, &psm_threshold); /* Add dbus handlers */ mce_psm_init_dbus(); return NULL; }
const gchar *g_module_check_init(GModule *module) { (void)module; /* Get initial state of datapipes */ call_state = datapipe_get_gint(call_state_pipe); alarm_ui_state = datapipe_get_gint(alarm_ui_state_pipe); display_state = display_state_get(); submode = datapipe_get_gint(submode_pipe); /* Append triggers/filters to datapipes */ append_input_trigger_to_datapipe(&call_state_pipe, call_state_trigger); append_input_trigger_to_datapipe(&alarm_ui_state_pipe, alarm_ui_state_trigger); append_output_trigger_to_datapipe(&display_state_pipe, display_state_trigger); append_output_trigger_to_datapipe(&submode_pipe, submode_trigger); /* PS enabled setting */ mce_setting_track_bool(MCE_SETTING_PROXIMITY_PS_ENABLED, &use_ps_conf_value, MCE_DEFAULT_PROXIMITY_PS_ENABLED, use_ps_conf_cb, &use_ps_conf_id); /* PS acts as LID sensor */ mce_setting_track_bool(MCE_SETTING_PROXIMITY_PS_ACTS_AS_LID, &ps_acts_as_lid, MCE_DEFAULT_PROXIMITY_PS_ACTS_AS_LID, use_ps_conf_cb, &ps_acts_as_lid_conf_id); /* If the proximity sensor input is used for toggling * lid state, we must take care not to leave proximity * tracking to covered state. */ if( ps_acts_as_lid ) report_proximity(COVER_OPEN); /* enable/disable sensor based on initial conditions */ update_proximity_monitor(); return NULL; }
/** Install datapipe triggers/filters */ static void fba_datapipe_init(void) { /* Get intial display state */ display_state = display_state_get(); /* Append triggers/filters to datapipes */ append_filter_to_datapipe(&display_brightness_pipe, display_brightness_filter); append_filter_to_datapipe(&led_brightness_pipe, led_brightness_filter); append_filter_to_datapipe(&lpm_brightness_pipe, lpm_brightness_filter); append_filter_to_datapipe(&key_backlight_pipe, key_backlight_filter); append_output_trigger_to_datapipe(&display_state_next_pipe, display_state_next_trigger); append_output_trigger_to_datapipe(&display_state_pipe, display_state_trigger); }
const gchar *g_module_check_init(GModule *module) { (void)module; /* Append triggers/filters to datapipes */ append_filter_to_datapipe(&device_inactive_pipe, device_inactive_filter); append_output_trigger_to_datapipe(&proximity_sensor_pipe, proximity_sensor_trigger); append_output_trigger_to_datapipe(&inactivity_timeout_pipe, inactivity_timeout_trigger); /* Add dbus handlers */ mce_inactivity_init_dbus(); setup_inactivity_timeout(); return NULL; }
/** * Init function for the mce-dsme component * * @param debug_mode TRUE - do not exit if dsme fails * @return TRUE on success, FALSE on failure */ gboolean mce_dsme_init(gboolean debug_mode) { gboolean status = FALSE; gchar *tmp = NULL; /* Append triggers/filters to datapipes */ append_output_trigger_to_datapipe(&charger_state_pipe, charger_state_trigger); mce_log(LL_DEBUG, "Connecting to DSME sock"); if (init_dsmesock() == FALSE) { if (debug_mode == TRUE) { dsme_disabled = TRUE; } else { goto EXIT; } } /* Register with DSME's process watchdog */ dsme_init_processwd(); /* init_done */ if (mce_dbus_handler_add("com.nokia.startup.signal", "init_done", NULL, DBUS_MESSAGE_TYPE_SIGNAL, init_done_dbus_cb) == NULL) goto EXIT; /* Get configuration options */ tmp = mce_conf_get_string(MCE_CONF_SOFTPOWEROFF_GROUP, MCE_CONF_SOFTPOWEROFF_CHARGER_POLICY_CONNECT, ""); softoff_charger_connect_policy = mce_translate_string_to_int_with_default(soft_poweroff_charger_connect_translation, tmp, DEFAULT_SOFTOFF_CHARGER_CONNECT); g_free(tmp); status = TRUE; EXIT: return status; }
const gchar *g_module_check_init(GModule *module) { (void)module; /* If we fail to restore the radio states, default to offline */ if( !restore_radio_states(&active_radio_states, &radio_states) && !restore_default_radio_states(&active_radio_states, &radio_states) ) { active_radio_states = radio_states = 0; } mce_log(LL_DEBUG, "active_radio_states: %lx, radio_states: %lx", active_radio_states, radio_states); /* Append triggers/filters to datapipes */ append_output_trigger_to_datapipe(&master_radio_pipe, master_radio_trigger); /* get_radio_states */ if (mce_dbus_handler_add(MCE_REQUEST_IF, MCE_RADIO_STATES_GET, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, get_radio_states_dbus_cb) == NULL) goto EXIT; /* req_radio_states_change */ if (mce_dbus_handler_add(MCE_REQUEST_IF, MCE_RADIO_STATES_CHANGE_REQ, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, req_radio_states_change_dbus_cb) == NULL) goto EXIT; if( !xconnman_init() ) mce_log(LL_WARN, "failed to set up connman mirroring"); EXIT: return NULL; }
/** * Init function for the modetransition component * * @return TRUE on success, FALSE on failure */ gboolean mce_mode_init(void) { gboolean status = FALSE; /* Append triggers/filters to datapipes */ append_output_trigger_to_datapipe(&system_state_pipe, system_state_trigger); /* If the bootup file exists, mce has crashed / restarted; * since it exists in /var/run it will be removed when we reboot. * * If the file doesn't exist, create it to ensure that * restarting mce doesn't get mce stuck in the transition submode */ if (g_access(MCE_BOOTUP_FILENAME, F_OK) == -1) { if (errno == ENOENT) { mce_log(LL_DEBUG, "Bootup mode enabled"); mce_add_submode_int32(MCE_TRANSITION_SUBMODE); errno = 0; (void)mce_write_string_to_file(MCE_BOOTUP_FILENAME, ENABLED_STRING); if (g_access(MALF_FILENAME, F_OK) == 0) { mce_add_submode_int32(MCE_MALF_SUBMODE); mce_log(LL_DEBUG, "Malf mode enabled"); if (g_access(MCE_MALF_FILENAME, F_OK) == -1) { if (errno != ENOENT) { mce_log(LL_CRIT, "access() failed: %s. Exiting.", g_strerror(errno)); goto EXIT; } (void)mce_write_string_to_file(MCE_MALF_FILENAME, ENABLED_STRING); } } } else { mce_log(LL_CRIT, "access() failed: %s. Exiting.", g_strerror(errno)); goto EXIT; } } else { if (g_access(MALF_FILENAME, F_OK) == 0) { if (g_access(MCE_MALF_FILENAME, F_OK) == 0) { mce_add_submode_int32(MCE_MALF_SUBMODE); mce_log(LL_DEBUG, "Malf mode enabled"); } } else if ((errno == ENOENT) && (g_access(MCE_MALF_FILENAME, F_OK) == 0)) { g_remove(MCE_MALF_FILENAME); } } status = TRUE; EXIT: return status; }
const gchar *g_module_check_init(GModule *module) { (void)module; /* Read lux ramps from configuration */ als_filter_load_config(&lut_display); als_filter_load_config(&lut_led); als_filter_load_config(&lut_key); /* Get intial display state */ display_state = datapipe_get_gint(display_state_pipe); /* Append triggers/filters to datapipes */ append_filter_to_datapipe(&display_brightness_pipe, display_brightness_filter); append_filter_to_datapipe(&led_brightness_pipe, led_brightness_filter); append_filter_to_datapipe(&key_backlight_pipe, key_backlight_filter); append_output_trigger_to_datapipe(&display_state_pipe, display_state_trigger); /* Add dbus method call handlers */ mce_dbus_handler_add(MCE_REQUEST_IF, MCE_REQ_ALS_ENABLE, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, als_enable_req_dbus_cb); mce_dbus_handler_add(MCE_REQUEST_IF, MCE_REQ_ALS_DISABLE, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, als_disable_req_dbus_cb); mce_dbus_handler_add(MCE_REQUEST_IF, MCE_COLOR_PROFILE_GET, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, color_profile_get_req_dbus_cb); mce_dbus_handler_add(MCE_REQUEST_IF, MCE_COLOR_PROFILE_IDS_GET, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, color_profile_ids_get_req_dbus_cb); mce_dbus_handler_add(MCE_REQUEST_IF, MCE_COLOR_PROFILE_CHANGE_REQ, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, color_profile_change_req_dbus_cb); /* ALS enabled setting */ mce_gconf_notifier_add(MCE_GCONF_DISPLAY_PATH, MCE_GCONF_DISPLAY_ALS_ENABLED_PATH, use_als_gconf_cb, &use_als_gconf_id); mce_gconf_get_bool(MCE_GCONF_DISPLAY_ALS_ENABLED_PATH, &use_als_flag); /* Color profile setting */ mce_gconf_notifier_add(MCE_GCONF_DISPLAY_PATH, MCE_GCONF_DISPLAY_COLOR_PROFILE_PATH, color_profile_gconf_cb, &color_profile_gconf_id); if( init_color_profiles() ) init_current_color_profile(); rethink_als_status(); return NULL; }