summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLandry Breuil <landry@openbsd.org>2022-08-10 09:02:47 +0200
committerLandry Breuil <landry@openbsd.org>2022-08-10 09:02:47 +0200
commitb643f272a70edb5ee4107c861a77973efdc94213 (patch)
treed3e2e6b91a44d42c75e80d1541553c44af4a022a
parentd4259c009b3ca1169dfd19231a040c233fc3b58d (diff)
downloadupower-b643f272a70edb5ee4107c861a77973efdc94213.tar.gz
openbsd: move most initialization code from _init to _coldplug (fixes #201)
regression from the refactoring in bd488fac
-rw-r--r--src/openbsd/up-backend.c113
1 files changed, 55 insertions, 58 deletions
diff --git a/src/openbsd/up-backend.c b/src/openbsd/up-backend.c
index d84ad3f..f648682 100644
--- a/src/openbsd/up-backend.c
+++ b/src/openbsd/up-backend.c
@@ -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,