/** Install signal and method call message handlers * * @return TRUE on success, or FALSE on failure */ static gboolean cpu_keepalive_attach_to_dbus(void) { gboolean success = TRUE; /* Register signal handling filter */ dbus_connection_add_filter(systembus, cpu_keepalive_dbus_filter_cb, 0, 0); /* Register dbus method call handlers */ for( size_t i = 0; methods[i].member; ++i ) { mce_log(LL_INFO, "registering handler for: %s", methods[i].member); methods[i].cookie = mce_dbus_handler_add(MCE_REQUEST_IF, methods[i].member, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, methods[i].handler); if( !methods[i].cookie ) { mce_log(LL_WARN, "failed to add dbus handler for: %s", methods[i].member); success = FALSE; } } return success; }
/** * Init function for the powerkey component * * @return TRUE on success, FALSE on failure */ gboolean mce_powerkey_init(void) { gboolean status = FALSE; gchar *tmp = NULL; /* Append triggers/filters to datapipes */ append_input_trigger_to_datapipe(&keypress_pipe, powerkey_trigger); /* req_trigger_powerkey_event */ if (mce_dbus_handler_add(MCE_REQUEST_IF, MCE_TRIGGER_POWERKEY_EVENT_REQ, NULL, DBUS_MESSAGE_TYPE_METHOD_CALL, trigger_powerkey_event_req_dbus_cb) == NULL) goto EXIT; /* Get configuration options */ longdelay = mce_conf_get_int(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_LONG_DELAY, DEFAULT_POWER_LONG_DELAY); mediumdelay = mce_conf_get_int(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_MEDIUM_DELAY, DEFAULT_POWER_MEDIUM_DELAY); tmp = mce_conf_get_string(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_SHORT_ACTION, ""); /* Since we've set a default, error handling is unnecessary */ (void)parse_action(tmp, &shortpresssignal, &shortpressaction); g_free(tmp); tmp = mce_conf_get_string(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_LONG_ACTION, ""); /* Since we've set a default, error handling is unnecessary */ (void)parse_action(tmp, &longpresssignal, &longpressaction); g_free(tmp); doublepressdelay = mce_conf_get_int(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_DOUBLE_DELAY, DEFAULT_POWER_DOUBLE_DELAY); tmp = mce_conf_get_string(MCE_CONF_POWERKEY_GROUP, MCE_CONF_POWERKEY_DOUBLE_ACTION, ""); /* Since we've set a default, error handling is unnecessary */ (void)parse_action(tmp, &doublepresssignal, &doublepressaction); 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 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; /* 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; }