openbsd: move most initialization code from _init to _coldplug (fixes #201)

regression from the refactoring in bd488fac
This commit is contained in:
Landry Breuil 2022-08-10 09:02:47 +02:00
parent d4259c009b
commit b643f272a7

View file

@ -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,