Example #1
0
File: proximity.c Project: g7/mce
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;
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;
}
Example #5
0
/** 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);
}
Example #6
0
File: inactivity.c Project: g7/mce
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;
}
Example #7
0
/**
 * 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;
}
Example #8
0
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;
}
Example #9
0
/**
 * 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;
}
Example #10
0
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;
}