api,firmware: expose firmware version
This commit is contained in:
committed by
Dan Williams
parent
67b3b830c8
commit
f35d64a899
@@ -282,6 +282,24 @@ mm_iface_modem_firmware_initialize_finish (MMIfaceModemFirmware *self,
|
||||
return g_task_propagate_boolean (G_TASK (res), error);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
add_generic_version (MMBaseModem *self,
|
||||
MMFirmwareUpdateSettings *update_settings,
|
||||
GError **error)
|
||||
{
|
||||
const gchar *revision;
|
||||
|
||||
revision = mm_iface_modem_get_revision (MM_IFACE_MODEM (self));
|
||||
if (!revision) {
|
||||
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
|
||||
"Unknown revision");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mm_firmware_update_settings_set_version (update_settings, revision);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
add_generic_device_ids (MMBaseModem *self,
|
||||
MMFirmwareUpdateSettings *update_settings,
|
||||
@@ -343,20 +361,33 @@ load_update_settings_ready (MMIfaceModemFirmware *self,
|
||||
if (!update_settings) {
|
||||
mm_dbg ("Couldn't load update settings: '%s'", error->message);
|
||||
g_error_free (error);
|
||||
} else {
|
||||
/* If the plugin didn't specify custom device ids, add the default ones ourselves */
|
||||
if (!mm_firmware_update_settings_get_device_ids (update_settings) &&
|
||||
!add_generic_device_ids (MM_BASE_MODEM (self), update_settings, &error)) {
|
||||
mm_warn ("Couldn't build device ids: '%s'", error->message);
|
||||
g_error_free (error);
|
||||
} else {
|
||||
variant = mm_firmware_update_settings_get_variant (update_settings);
|
||||
g_object_unref (update_settings);
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
|
||||
mm_gdbus_modem_firmware_set_update_settings (ctx->skeleton, variant);
|
||||
/* If the plugin didn't specify custom device ids, add the default ones ourselves */
|
||||
if (!mm_firmware_update_settings_get_device_ids (update_settings) &&
|
||||
!add_generic_device_ids (MM_BASE_MODEM (self), update_settings, &error)) {
|
||||
mm_warn ("Couldn't build device ids: '%s'", error->message);
|
||||
g_error_free (error);
|
||||
g_clear_object (&update_settings);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* If the plugin didn't specify custom version, add the default one ourselves */
|
||||
if (!mm_firmware_update_settings_get_version (update_settings) &&
|
||||
!add_generic_version (MM_BASE_MODEM (self), update_settings, &error)) {
|
||||
mm_warn ("Couldn't set version: '%s'", error->message);
|
||||
g_error_free (error);
|
||||
g_clear_object (&update_settings);
|
||||
goto out;
|
||||
}
|
||||
|
||||
out:
|
||||
if (update_settings) {
|
||||
variant = mm_firmware_update_settings_get_variant (update_settings);
|
||||
g_object_unref (update_settings);
|
||||
}
|
||||
mm_gdbus_modem_firmware_set_update_settings (ctx->skeleton, variant);
|
||||
if (variant)
|
||||
g_variant_unref (variant);
|
||||
|
||||
|
||||
@@ -5329,6 +5329,24 @@ mm_iface_modem_get_model (MMIfaceModem *self)
|
||||
return model;
|
||||
}
|
||||
|
||||
const gchar *
|
||||
mm_iface_modem_get_revision (MMIfaceModem *self)
|
||||
{
|
||||
const gchar *revision = NULL;
|
||||
MmGdbusModem *skeleton;
|
||||
|
||||
g_object_get (self,
|
||||
MM_IFACE_MODEM_DBUS_SKELETON, &skeleton,
|
||||
NULL);
|
||||
|
||||
if (skeleton) {
|
||||
revision = mm_gdbus_modem_get_revision (skeleton);
|
||||
g_object_unref (skeleton);
|
||||
}
|
||||
|
||||
return revision;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
|
||||
@@ -380,8 +380,9 @@ gboolean mm_iface_modem_is_3g_only (MMIfaceModem *self);
|
||||
gboolean mm_iface_modem_is_4g (MMIfaceModem *self);
|
||||
gboolean mm_iface_modem_is_4g_only (MMIfaceModem *self);
|
||||
|
||||
/* Helper to query model */
|
||||
const gchar *mm_iface_modem_get_model (MMIfaceModem *self);
|
||||
/* Helpers to query properties */
|
||||
const gchar *mm_iface_modem_get_model (MMIfaceModem *self);
|
||||
const gchar *mm_iface_modem_get_revision (MMIfaceModem *self);
|
||||
|
||||
/* Initialize Modem interface (async) */
|
||||
void mm_iface_modem_initialize (MMIfaceModem *self,
|
||||
|
||||
Reference in New Issue
Block a user