[gnome-battery-bench] JSON support for GbbSystemInfo
- From: Christian Kellner <gicmo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-battery-bench] JSON support for GbbSystemInfo
- Date: Mon, 20 Feb 2017 17:28:28 +0000 (UTC)
commit 02e78c5def4ec75e904625bd7c342bdf07bfd2ba
Author: Christian Kellner <gicmo gnome org>
Date: Tue Jan 17 17:14:51 2017 +0100
JSON support for GbbSystemInfo
src/system-info.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/system-info.h | 6 ++++-
2 files changed, 60 insertions(+), 1 deletions(-)
---
diff --git a/src/system-info.c b/src/system-info.c
index 0c55f50..4e20d5c 100644
--- a/src/system-info.c
+++ b/src/system-info.c
@@ -295,6 +295,61 @@ gbb_system_info_acquire ()
return info;
}
+void
+gbb_system_info_to_json (const GbbSystemInfo *info, JsonBuilder *builder)
+{
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "hardware");
+ {
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "vendor");
+ json_builder_add_string_value(builder, info->sys_vendor);
+ json_builder_set_member_name(builder, "version");
+ json_builder_add_string_value(builder, info->product_version);
+ json_builder_set_member_name(builder, "name");
+ json_builder_add_string_value(builder, info->product_name);
+
+ json_builder_set_member_name(builder, "bios");
+ {
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "version");
+ json_builder_add_string_value(builder, info->bios_version);
+ json_builder_set_member_name(builder, "date");
+ json_builder_add_string_value(builder, info->bios_date);
+ json_builder_set_member_name(builder, "vendor");
+ json_builder_add_string_value(builder, info->bios_vendor);
+ json_builder_end_object(builder);
+ }
+ json_builder_end_object(builder);
+ }
+ json_builder_set_member_name(builder, "software");
+ {
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "os");
+ {
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "type");
+ json_builder_add_string_value(builder, info->os_type);
+ json_builder_set_member_name(builder, "kernel");
+ json_builder_add_string_value(builder, info->os_kernel);
+ json_builder_end_object(builder);
+ }
+ json_builder_set_member_name(builder, "gnome");
+ {
+ json_builder_begin_object(builder);
+ json_builder_set_member_name(builder, "version");
+ json_builder_add_string_value(builder, info->gnome_version);
+ json_builder_set_member_name(builder, "distributor");
+ json_builder_add_string_value(builder, info->gnome_distributor);
+ json_builder_set_member_name(builder, "date");
+ json_builder_add_string_value(builder, info->gnome_date);
+ json_builder_end_object(builder);
+ }
+ json_builder_end_object(builder);
+ }
+ json_builder_end_object(builder);
+}
+
/* GNOME system info */
/* Everything below has been mostly borrowed from
* gnome-control-center/panels/info/cc-info-panel.c
diff --git a/src/system-info.h b/src/system-info.h
index 27ad333..e7515d1 100644
--- a/src/system-info.h
+++ b/src/system-info.h
@@ -2,10 +2,14 @@
#define __SYSTEM_INFO_H__
#include <glib-object.h>
+#include <json-glib/json-glib.h>
#define GBB_TYPE_SYSTEM_INFO gbb_system_info_get_type()
G_DECLARE_FINAL_TYPE(GbbSystemInfo, gbb_system_info, GBB, SYSTEM_INFO, GObject)
-GbbSystemInfo *gbb_system_info_acquire (void);
+GbbSystemInfo *gbb_system_info_acquire (void);
+void gbb_system_info_to_json (const GbbSystemInfo *info,
+ JsonBuilder *builder);
+
#endif /* __SYSTEM_INFO_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]