1 /*
2 * libvirt-gconfig-device-input.c: libvirt domain input configuration
3 *
4 * Copyright (C) 2011 Red Hat, Inc.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library. If not, see
18 * <http://www.gnu.org/licenses/>.
19 *
20 * Author: Christophe Fergeau <cfergeau@gmail.com>
21 */
22
23 #include <config.h>
24
25 #include "libvirt-gconfig/libvirt-gconfig.h"
26 #include "libvirt-gconfig/libvirt-gconfig-private.h"
27
28 #define GVIR_CONFIG_DOMAIN_INPUT_GET_PRIVATE(obj) \
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INPUT, GVirConfigDomainInputPrivate))
30
31 struct _GVirConfigDomainInputPrivate
32 {
33 gboolean unused;
34 };
35
36 G_DEFINE_TYPE_WITH_PRIVATE(GVirConfigDomainInput, gvir_config_domain_input, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
37
38
gvir_config_domain_input_class_init(GVirConfigDomainInputClass * klass G_GNUC_UNUSED)39 static void gvir_config_domain_input_class_init(GVirConfigDomainInputClass *klass G_GNUC_UNUSED)
40 {
41 }
42
43
gvir_config_domain_input_init(GVirConfigDomainInput * device_input)44 static void gvir_config_domain_input_init(GVirConfigDomainInput *device_input)
45 {
46 device_input->priv = GVIR_CONFIG_DOMAIN_INPUT_GET_PRIVATE(device_input);
47 }
48
49
gvir_config_domain_input_new(void)50 GVirConfigDomainInput *gvir_config_domain_input_new(void)
51 {
52 GVirConfigObject *object;
53
54 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_INPUT,
55 "input", NULL);
56 return GVIR_CONFIG_DOMAIN_INPUT(object);
57 }
58
gvir_config_domain_input_new_from_xml(const gchar * xml,GError ** error)59 GVirConfigDomainInput *gvir_config_domain_input_new_from_xml(const gchar *xml,
60 GError **error)
61 {
62 GVirConfigObject *object;
63
64 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_INPUT,
65 "input", NULL, xml, error);
66 return GVIR_CONFIG_DOMAIN_INPUT(object);
67 }
68
69
gvir_config_domain_input_get_device_type(GVirConfigDomainInput * input)70 GVirConfigDomainInputDeviceType gvir_config_domain_input_get_device_type(GVirConfigDomainInput *input)
71 {
72 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input),
73 GVIR_CONFIG_DOMAIN_INPUT_DEVICE_MOUSE);
74 return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(input),
75 NULL, "type",
76 GVIR_CONFIG_TYPE_DOMAIN_INPUT_DEVICE_TYPE,
77 GVIR_CONFIG_DOMAIN_INPUT_DEVICE_MOUSE);
78 }
79
80
gvir_config_domain_input_set_device_type(GVirConfigDomainInput * input,GVirConfigDomainInputDeviceType type)81 void gvir_config_domain_input_set_device_type(GVirConfigDomainInput *input,
82 GVirConfigDomainInputDeviceType type)
83 {
84 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input));
85
86 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(input), "type",
87 GVIR_CONFIG_TYPE_DOMAIN_INPUT_DEVICE_TYPE,
88 type, NULL);
89 }
90
91
gvir_config_domain_input_get_bus(GVirConfigDomainInput * input)92 GVirConfigDomainInputBus gvir_config_domain_input_get_bus(GVirConfigDomainInput *input)
93 {
94 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input),
95 GVIR_CONFIG_DOMAIN_INPUT_BUS_PS2);
96 return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(input),
97 NULL, "bus",
98 GVIR_CONFIG_TYPE_DOMAIN_INPUT_BUS,
99 GVIR_CONFIG_DOMAIN_INPUT_BUS_PS2);
100 }
101
102
gvir_config_domain_input_set_bus(GVirConfigDomainInput * input,GVirConfigDomainInputBus bus)103 void gvir_config_domain_input_set_bus(GVirConfigDomainInput *input,
104 GVirConfigDomainInputBus bus)
105 {
106 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input));
107
108 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(input), "bus",
109 GVIR_CONFIG_TYPE_DOMAIN_INPUT_BUS,
110 bus, NULL);
111 }
112