Hey,
On Tue, Mar 12, 2013 at 10:56:31PM +0200, Zeeshan Ali (Khattak) wrote:
From: "Zeeshan Ali (Khattak)" <zeeshanak(a)gnome.org>
This patch adds API to set/get image compression configuration on
domain/graphics[@type='spice'] nodes.
Also included are simple tests for this API.
---
V2:
* No separate class for 'image' node.
* Use trigraph extensions of glib-mkenums to assign desired nicks to enums rather than
replacing '-' with '-' and viceversa at runtime.
.../libvirt-gconfig-domain-graphics-spice.c | 39 +++++++++++++++++++++-
.../libvirt-gconfig-domain-graphics-spice.h | 19 ++++++++++-
libvirt-gconfig/libvirt-gconfig.sym | 8 +++++
libvirt-gconfig/tests/test-domain-create.c | 7 ++++
4 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
b/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
index d090a3a..dc21b98 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
@@ -17,10 +17,12 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Author: Christophe Fergeau <cfergeau(a)gmail.com>
+ * Authors: Christophe Fergeau <cfergeau(a)gmail.com>
+ * Zeeshan Ali (Khattak) <zeeshanak(a)gnome.org>
*/
#include <config.h>
+#include <string.h>
I don't think this is needed.
#include "libvirt-gconfig/libvirt-gconfig.h"
#include "libvirt-gconfig/libvirt-gconfig-private.h"
@@ -122,3 +124,38 @@ void
gvir_config_domain_graphics_spice_set_tls_port(GVirConfigDomainGraphicsSpic
"tlsPort", G_TYPE_INT, port,
NULL);
}
+
+/**
+ * gvir_config_domain_graphics_spice_get_image_compression:
+ * @graphics: a #GVirConfigDomainGraphicsSpice
+ *
+ * Returns: (type GVirConfigDomainGraphicsSpiceImageCompression): image
+ * compression configuration of @graphics
+ */
+int
+gvir_config_domain_graphics_spice_get_image_compression(GVirConfigDomainGraphicsSpice
*graphics)
+{
+ g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics),
+ GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_IMAGE_COMPRESSION_OFF);
+
+ return gvir_config_object_get_attribute_genum
+ (GVIR_CONFIG_OBJECT(graphics),
+ "image",
+ "compression",
+ GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE_IMAGE_COMPRESSION,
+ GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_IMAGE_COMPRESSION_GLZ);
+}
+
+void gvir_config_domain_graphics_spice_set_image_compression
+ (GVirConfigDomainGraphicsSpice *graphics,
+ GVirConfigDomainGraphicsSpiceImageCompression compression)
+{
+ g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics));
+
+ gvir_config_object_add_child_with_attribute_enum
+ (GVIR_CONFIG_OBJECT(graphics),
+ "image",
+ "compression",
+ GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE_IMAGE_COMPRESSION,
+ compression);
+}
gvir_config_object_replace_child_with_attribute_enum would be better here
as you don't want to add multiple <image> nodes if this method is called
several times. Obviously this _replace_child_with_attribute_enum helper
does not exist yet :(
Christophe