
Hey, On Tue, Mar 12, 2013 at 10:56:31PM +0200, Zeeshan Ali (Khattak) wrote:
From: "Zeeshan Ali (Khattak)" <zeeshanak@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@gmail.com> + * Authors: Christophe Fergeau <cfergeau@gmail.com> + * Zeeshan Ali (Khattak) <zeeshanak@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