mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-05-08 05:28:04 +02:00
openbsd: move most initialization code from _init to _coldplug (fixes #201)
regression from the refactoring in bd488fac
This commit is contained in:
parent
d4259c009b
commit
b643f272a7
1 changed files with 55 additions and 58 deletions
|
|
@ -33,6 +33,7 @@ static void up_backend_init (UpBackend *backend);
|
|||
static void up_backend_finalize (GObject *object);
|
||||
|
||||
static gboolean up_backend_apm_get_power_info(struct apm_power_info*);
|
||||
static gpointer up_backend_apm_event_thread(gpointer object);
|
||||
UpDeviceState up_backend_apm_get_battery_state_value(u_char battery_state);
|
||||
static void up_backend_update_acpibat_state(UpDevice*, struct sensordev);
|
||||
static void up_backend_update_lid_status(UpDaemon*);
|
||||
|
|
@ -127,10 +128,63 @@ up_apm_device_get_online (UpDevice *device, gboolean * online)
|
|||
gboolean
|
||||
up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
|
||||
{
|
||||
backend->priv->daemon = g_object_ref (daemon);
|
||||
GError *err = NULL;
|
||||
UpDeviceClass *device_class;
|
||||
gint64 current_time;
|
||||
|
||||
backend->priv = up_backend_get_instance_private (backend);
|
||||
backend->priv->daemon = g_object_ref (daemon);
|
||||
backend->priv->is_laptop = up_native_is_laptop();
|
||||
g_debug("is_laptop:%d",backend->priv->is_laptop);
|
||||
if (backend->priv->is_laptop)
|
||||
{
|
||||
UpApmNative *acnative = NULL;
|
||||
UpApmNative *battnative = NULL;
|
||||
|
||||
acnative = up_apm_native_new("/ac");
|
||||
battnative = up_apm_native_new("/batt");
|
||||
|
||||
backend->priv->ac = UP_DEVICE(up_device_new (backend->priv->daemon, G_OBJECT(acnative)));
|
||||
backend->priv->battery = UP_DEVICE(up_device_new (backend->priv->daemon, G_OBJECT(battnative)));
|
||||
|
||||
g_object_unref (acnative);
|
||||
g_object_unref (battnative);
|
||||
|
||||
device_class = UP_DEVICE_GET_CLASS (backend->priv->battery);
|
||||
device_class->get_on_battery = up_apm_device_get_on_battery;
|
||||
device_class->get_online = up_apm_device_get_online;
|
||||
device_class->refresh = up_apm_device_refresh;
|
||||
device_class = UP_DEVICE_GET_CLASS (backend->priv->ac);
|
||||
device_class->get_on_battery = up_apm_device_get_on_battery;
|
||||
device_class->get_online = up_apm_device_get_online;
|
||||
device_class->refresh = up_apm_device_refresh;
|
||||
/* creates thread */
|
||||
if((backend->priv->apm_thread = (GThread*) g_thread_try_new("apm-poller",(GThreadFunc)up_backend_apm_event_thread, (void*) backend, &err)) == NULL)
|
||||
{
|
||||
g_warning("Thread create failed: %s", err->message);
|
||||
g_error_free (err);
|
||||
}
|
||||
|
||||
/* setup dummy */
|
||||
current_time = g_get_real_time () / G_USEC_PER_SEC;
|
||||
g_object_set (backend->priv->battery,
|
||||
"type", UP_DEVICE_KIND_BATTERY,
|
||||
"power-supply", TRUE,
|
||||
"is-present", TRUE,
|
||||
"is-rechargeable", TRUE,
|
||||
"has-history", TRUE,
|
||||
"state", UP_DEVICE_STATE_UNKNOWN,
|
||||
"percentage", 0.0f,
|
||||
"time-to-empty", (gint64) 0,
|
||||
"update-time", (guint64) current_time,
|
||||
(void*) NULL);
|
||||
g_object_set (backend->priv->ac,
|
||||
"type", UP_DEVICE_KIND_LINE_POWER,
|
||||
"online", TRUE,
|
||||
"power-supply", TRUE,
|
||||
"update-time", (guint64) current_time,
|
||||
(void*) NULL);
|
||||
|
||||
up_backend_update_lid_status(daemon);
|
||||
if (!g_initable_init (G_INITABLE (backend->priv->ac), NULL, NULL))
|
||||
g_warning ("failed to coldplug ac");
|
||||
|
|
@ -142,7 +196,6 @@ up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
|
|||
else
|
||||
g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, backend->priv->battery);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -597,63 +650,7 @@ up_backend_class_init (UpBackendClass *klass)
|
|||
static void
|
||||
up_backend_init (UpBackend *backend)
|
||||
{
|
||||
GError *err = NULL;
|
||||
UpDeviceClass *device_class;
|
||||
gint64 current_time;
|
||||
|
||||
backend->priv = up_backend_get_instance_private (backend);
|
||||
backend->priv->is_laptop = up_native_is_laptop();
|
||||
g_debug("is_laptop:%d",backend->priv->is_laptop);
|
||||
if (backend->priv->is_laptop)
|
||||
{
|
||||
UpApmNative *acnative = NULL;
|
||||
UpApmNative *battnative = NULL;
|
||||
|
||||
acnative = up_apm_native_new("/ac");
|
||||
battnative = up_apm_native_new("/batt");
|
||||
|
||||
backend->priv->ac = UP_DEVICE(up_device_new (backend->priv->daemon, G_OBJECT(acnative)));
|
||||
backend->priv->battery = UP_DEVICE(up_device_new (backend->priv->daemon, G_OBJECT(battnative)));
|
||||
|
||||
g_object_unref (acnative);
|
||||
g_object_unref (battnative);
|
||||
|
||||
device_class = UP_DEVICE_GET_CLASS (backend->priv->battery);
|
||||
device_class->get_on_battery = up_apm_device_get_on_battery;
|
||||
device_class->get_online = up_apm_device_get_online;
|
||||
device_class->refresh = up_apm_device_refresh;
|
||||
device_class = UP_DEVICE_GET_CLASS (backend->priv->ac);
|
||||
device_class->get_on_battery = up_apm_device_get_on_battery;
|
||||
device_class->get_online = up_apm_device_get_online;
|
||||
device_class->refresh = up_apm_device_refresh;
|
||||
/* creates thread */
|
||||
if((backend->priv->apm_thread = (GThread*) g_thread_try_new("apm-poller",(GThreadFunc)up_backend_apm_event_thread, (void*) backend, &err)) == NULL)
|
||||
{
|
||||
g_warning("Thread create failed: %s", err->message);
|
||||
g_error_free (err);
|
||||
}
|
||||
|
||||
/* setup dummy */
|
||||
current_time = g_get_real_time () / G_USEC_PER_SEC;
|
||||
g_object_set (backend->priv->battery,
|
||||
"type", UP_DEVICE_KIND_BATTERY,
|
||||
"power-supply", TRUE,
|
||||
"is-present", TRUE,
|
||||
"is-rechargeable", TRUE,
|
||||
"has-history", TRUE,
|
||||
"state", UP_DEVICE_STATE_UNKNOWN,
|
||||
"percentage", 0.0f,
|
||||
"time-to-empty", (gint64) 0,
|
||||
"update-time", (guint64) current_time,
|
||||
(void*) NULL);
|
||||
g_object_set (backend->priv->ac,
|
||||
"type", UP_DEVICE_KIND_LINE_POWER,
|
||||
"online", TRUE,
|
||||
"power-supply", TRUE,
|
||||
"update-time", (guint64) current_time,
|
||||
(void*) NULL);
|
||||
}
|
||||
|
||||
backend->priv->config = up_config_new ();
|
||||
backend->priv->seat_manager_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
|
||||
0,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue