<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="colord"/>
  <c:include name="colord.h"/>
  <namespace name="Colord"
             version="1.0"
             shared-library="libcolord.so.0.1"
             c:identifier-prefixes="Cd"
             c:symbol-prefixes="cd_">
    <constant name="CLIENT_PROPERTY_DAEMON_VERSION"
              value="DaemonVersion"
              c:type="CD_CLIENT_PROPERTY_DAEMON_VERSION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Client"
           c:symbol-prefix="client"
           c:type="CdClient"
           parent="GObject.Object"
           glib:type-name="CdClient"
           glib:get-type="cd_client_get_type"
           glib:type-struct="ClientClass">
      <constructor name="new" c:identifier="cd_client_new" version="0.1.0">
        <doc xml:whitespace="preserve">Creates a new #CdClient object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdClient object.</doc>
          <type name="Client" c:type="CdClient*"/>
        </return-value>
      </constructor>
      <function name="error_quark"
                c:identifier="cd_client_error_quark"
                version="0.1.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="device_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="profile_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="profile_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="profile_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sensor_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <type name="Sensor" c:type="CdSensor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sensor_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <type name="Sensor" c:type="CdSensor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sensor_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <type name="Sensor" c:type="CdSensor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="connect" c:identifier="cd_client_connect" version="0.1.6">
        <doc xml:whitespace="preserve">Connects to the colord daemon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_finish"
              c:identifier="cd_client_connect_finish"
              version="0.1.6"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_sync"
              c:identifier="cd_client_connect_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Connects to the colord daemon.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_device"
              c:identifier="cd_client_create_device"
              version="0.1.8">
        <doc xml:whitespace="preserve">Creates a color device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">identifier for the device</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">the scope of the device</doc>
            <type name="ObjectScope" c:type="CdObjectScope"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:whitespace="preserve">properties to set on the device, or %NULL</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_device_finish"
              c:identifier="cd_client_create_device_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdDevice or %NULL</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_device_sync"
              c:identifier="cd_client_create_device_sync"
              version="0.1.2"
              throws="1">
        <doc xml:whitespace="preserve">Creates a color device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdDevice object, or %NULL for error</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">identifier for the device</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">the scope of the device</doc>
            <type name="ObjectScope" c:type="CdObjectScope"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:whitespace="preserve">properties to set on the device, or %NULL</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_profile"
              c:identifier="cd_client_create_profile"
              version="0.1.8">
        <doc xml:whitespace="preserve">Creates a color profile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">identifier for the profile</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">the scope of the profile</doc>
            <type name="ObjectScope" c:type="CdObjectScope"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:whitespace="preserve">properties to set on the profile, or %NULL</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_profile_finish"
              c:identifier="cd_client_create_profile_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_profile_sync"
              c:identifier="cd_client_create_profile_sync"
              version="0.1.2"
              throws="1">
        <doc xml:whitespace="preserve">Creates a color profile.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile object, or %NULL for error</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">identifier for the device</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">the scope of the profile</doc>
            <type name="ObjectScope" c:type="CdObjectScope"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:whitespace="preserve">properties to set on the profile, or %NULL</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_device"
              c:identifier="cd_client_delete_device"
              version="0.1.8">
        <doc xml:whitespace="preserve">Deletes a device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdDevice</doc>
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_device_finish"
              c:identifier="cd_client_delete_device_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_device_sync"
              c:identifier="cd_client_delete_device_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Deletes a color device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE is the device was deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdDevice.</doc>
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_profile"
              c:identifier="cd_client_delete_profile"
              version="0.1.8">
        <doc xml:whitespace="preserve">Deletes a profile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_profile_finish"
              c:identifier="cd_client_delete_profile_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_profile_sync"
              c:identifier="cd_client_delete_profile_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Deletes a color profile.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE is the profile was deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile.</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device"
              c:identifier="cd_client_find_device"
              version="0.1.8">
        <doc xml:whitespace="preserve">Finds a device by an ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a device id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device_by_property"
              c:identifier="cd_client_find_device_by_property"
              version="0.1.8">
        <doc xml:whitespace="preserve">Finds a color device that has a property value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">the device property key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the device property value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device_by_property_finish"
              c:identifier="cd_client_find_device_by_property_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdDevice or %NULL</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device_by_property_sync"
              c:identifier="cd_client_find_device_by_property_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Finds a color device that has a property value.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdDevice object, or %NULL for error</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device property key.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device property value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device_finish"
              c:identifier="cd_client_find_device_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdDevice or %NULL</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_device_sync"
              c:identifier="cd_client_find_device_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Finds a color device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdDevice object, or %NULL for error</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device ID.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile"
              c:identifier="cd_client_find_profile"
              version="0.1.8">
        <doc xml:whitespace="preserve">Finds a profile by an ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a profile id</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile_by_filename"
              c:identifier="cd_client_find_profile_by_filename"
              version="0.1.8">
        <doc xml:whitespace="preserve">Finds a profile by a filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #profile filename</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile_by_filename_finish"
              c:identifier="cd_client_find_profile_by_filename_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile_by_filename_sync"
              c:identifier="cd_client_find_profile_by_filename_sync"
              version="0.1.3"
              throws="1">
        <doc xml:whitespace="preserve">Finds a color profile from its filename.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile object, or %NULL for error</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">filename for the profile</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile_finish"
              c:identifier="cd_client_find_profile_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_profile_sync"
              c:identifier="cd_client_find_profile_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Finds a color profile from its id.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile object, or %NULL for error</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">id for the profile</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connected"
              c:identifier="cd_client_get_connected"
              version="0.1.9">
        <doc xml:whitespace="preserve">Gets if the client has been connected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if properties are valid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_daemon_version"
              c:identifier="cd_client_get_daemon_version"
              version="0.1.0">
        <doc xml:whitespace="preserve">Get colord daemon version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">string containing the daemon version, e.g. "0.1.0"</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_devices"
              c:identifier="cd_client_get_devices"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets an array of color devices.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_by_kind"
              c:identifier="cd_client_get_devices_by_kind"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets an array of color devices.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">the type of device.</doc>
            <type name="DeviceKind" c:type="CdDeviceKind"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_by_kind_finish"
              c:identifier="cd_client_get_devices_by_kind_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the devices</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_by_kind_sync"
              c:identifier="cd_client_get_devices_by_kind_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Get an array of the device objects of a specified kind.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.

free with g_ptr_array_unref()</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an array of #CdDevice objects,</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdDeviceKind, e.g. %CD_DEVICE_KIND_DISPLAY</doc>
            <type name="DeviceKind" c:type="CdDeviceKind"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_finish"
              c:identifier="cd_client_get_devices_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the devices</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_sync"
              c:identifier="cd_client_get_devices_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Get an array of the device objects.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.

free with g_ptr_array_unref()</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an array of #CdDevice objects,</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_has_server"
              c:identifier="cd_client_get_has_server"
              version="0.1.12">
        <doc xml:whitespace="preserve">Gets if the colord server is currently running.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the colord process is running</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_profiles"
              c:identifier="cd_client_get_profiles"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets an array of color profiles.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profiles_finish"
              c:identifier="cd_client_get_profiles_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the profiles</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Profile"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profiles_sync"
              c:identifier="cd_client_get_profiles_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Get an array of the profile objects.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.

free with g_ptr_array_unref()</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an array of #CdProfile objects,</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sensors"
              c:identifier="cd_client_get_sensors"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets an array of color sensors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sensors_finish"
              c:identifier="cd_client_get_sensors_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the sensors</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Sensor"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sensors_sync"
              c:identifier="cd_client_get_sensors_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Get an array of the sensor objects.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.

free with g_ptr_array_unref()</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an array of #CdSensor objects,</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_standard_space"
              c:identifier="cd_client_get_standard_space"
              version="0.1.8">
        <doc xml:whitespace="preserve">Finds a standard profile space.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="standard_space" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #profile id</doc>
            <type name="StandardSpace" c:type="CdStandardSpace"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_standard_space_finish"
              c:identifier="cd_client_get_standard_space_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_standard_space_sync"
              c:identifier="cd_client_get_standard_space_sync"
              version="0.1.2"
              throws="1">
        <doc xml:whitespace="preserve">Finds a standard colorspace.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile object, or %NULL for error</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="standard_space" transfer-ownership="none">
            <doc xml:whitespace="preserve">standard colorspace value</doc>
            <type name="StandardSpace" c:type="CdStandardSpace"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="import_profile"
              c:identifier="cd_client_import_profile"
              version="0.1.12">
        <doc xml:whitespace="preserve">Imports a color profile into the users home directory.

If the profile should be accessable for all users, then call
cd_profile_install_system_wide() on the result.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="import_profile_finish"
              c:identifier="cd_client_import_profile_finish"
              version="0.1.12"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="import_profile_sync"
              c:identifier="cd_client_import_profile_sync"
              version="0.1.12"
              throws="1">
        <doc xml:whitespace="preserve">Imports a color profile into the users home directory.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile object, or %NULL for error</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="connected" version="0.1.9" transfer-ownership="none">
        <doc xml:whitespace="preserve">The if the object path has been connected as is valid for use.</doc>
        <type name="utf8"/>
      </property>
      <property name="daemon-version"
                version="0.1.0"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The daemon version.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ClientPrivate" c:type="CdClientPrivate*"/>
      </field>
      <glib:signal name="changed" when="last" version="0.1.0">
        <doc xml:whitespace="preserve">The ::changed signal is emitted when properties may have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="device-added" when="last" version="0.1.0">
        <doc xml:whitespace="preserve">The ::device-added signal is emitted when a device is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdDevice that was added.</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-changed" when="last" version="0.1.2">
        <doc xml:whitespace="preserve">The ::device-changed signal is emitted when a device is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdDevice that was changed.</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-removed" when="last" version="0.1.0">
        <doc xml:whitespace="preserve">The ::device-added signal is emitted when a device is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="device" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdDevice that was removed.</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="profile-added" when="last" version="0.1.2">
        <doc xml:whitespace="preserve">The ::profile-added signal is emitted when a profile is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdProfile that was added.</doc>
            <type name="Profile"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="profile-changed" when="last" version="0.1.2">
        <doc xml:whitespace="preserve">The ::profile-changed signal is emitted when a profile is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdProfile that was removed.</doc>
            <type name="Profile"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="profile-removed" when="last" version="0.1.2">
        <doc xml:whitespace="preserve">The ::profile-added signal is emitted when a profile is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdProfile that was removed.</doc>
            <type name="Profile"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sensor-added" when="last" version="0.1.6">
        <doc xml:whitespace="preserve">The ::sensor-added signal is emitted when a sensor is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdSensor that was added.</doc>
            <type name="Sensor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sensor-changed" when="last" version="0.1.6">
        <doc xml:whitespace="preserve">The ::sensor-changed signal is emitted when a sensor is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdSensor that was removed.</doc>
            <type name="Sensor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sensor-removed" when="last" version="0.1.6">
        <doc xml:whitespace="preserve">The ::sensor-added signal is emitted when a sensor is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="sensor" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #CdSensor that was removed.</doc>
            <type name="Sensor"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ClientClass"
            c:type="CdClientClass"
            glib:is-gtype-struct-for="Client">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="device_added">
        <callback name="device_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="CdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_removed">
        <callback name="device_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="CdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_changed">
        <callback name="device_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="CdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="profile_added">
        <callback name="profile_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="profile" transfer-ownership="none">
              <type name="Profile" c:type="CdProfile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="profile_removed">
        <callback name="profile_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="profile" transfer-ownership="none">
              <type name="Profile" c:type="CdProfile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="profile_changed">
        <callback name="profile_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="profile" transfer-ownership="none">
              <type name="Profile" c:type="CdProfile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sensor_added">
        <callback name="sensor_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="sensor" transfer-ownership="none">
              <type name="Sensor" c:type="CdSensor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sensor_removed">
        <callback name="sensor_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="sensor" transfer-ownership="none">
              <type name="Sensor" c:type="CdSensor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sensor_changed">
        <callback name="sensor_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
            <parameter name="sensor" transfer-ownership="none">
              <type name="Sensor" c:type="CdSensor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="CdClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_cd_client_reserved1" introspectable="0">
        <callback name="_cd_client_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved2" introspectable="0">
        <callback name="_cd_client_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved3" introspectable="0">
        <callback name="_cd_client_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved4" introspectable="0">
        <callback name="_cd_client_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved5" introspectable="0">
        <callback name="_cd_client_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved6" introspectable="0">
        <callback name="_cd_client_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved7" introspectable="0">
        <callback name="_cd_client_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_client_reserved8" introspectable="0">
        <callback name="_cd_client_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ClientError" c:type="CdClientError">
      <doc xml:whitespace="preserve">Errors that can be thrown</doc>
      <member name="failed" value="0" c:identifier="CD_CLIENT_ERROR_FAILED"/>
      <member name="already_exists"
              value="1"
              c:identifier="CD_CLIENT_ERROR_ALREADY_EXISTS"/>
      <member name="file_invalid"
              value="2"
              c:identifier="CD_CLIENT_ERROR_FILE_INVALID"/>
      <member name="last" value="3" c:identifier="CD_CLIENT_ERROR_LAST"/>
    </enumeration>
    <record name="ClientPrivate" c:type="CdClientPrivate" disguised="1">
      <doc xml:whitespace="preserve">Private #CdClient data</doc>
    </record>
    <record name="ColorLab" c:type="CdColorLab">
      <field name="L" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="a" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="b" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
    </record>
    <record name="ColorRGB"
            c:type="CdColorRGB"
            glib:type-name="CdColorRGB"
            glib:get-type="cd_color_rgb_get_type"
            c:symbol-prefix="color_rgb">
      <field name="R" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="G" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="B" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="dup" c:identifier="cd_color_rgb_dup">
        <return-value transfer-ownership="full">
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </return-value>
      </method>
    </record>
    <record name="ColorRGB8" c:type="CdColorRGB8">
      <field name="R" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="G" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="B" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
    </record>
    <record name="ColorXYZ"
            c:type="CdColorXYZ"
            glib:type-name="CdColorXYZ"
            glib:get-type="cd_color_xyz_get_type"
            c:symbol-prefix="color_xyz">
      <field name="X" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="Y" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="Z" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="dup" c:identifier="cd_color_xyz_dup">
        <return-value transfer-ownership="full">
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </return-value>
      </method>
    </record>
    <record name="ColorYxy"
            c:type="CdColorYxy"
            glib:type-name="CdColorYxy"
            glib:get-type="cd_color_yxy_get_type"
            c:symbol-prefix="color_yxy">
      <field name="Y" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="x" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <method name="dup" c:identifier="cd_color_yxy_dup">
        <return-value transfer-ownership="full">
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </return-value>
      </method>
    </record>
    <enumeration name="Colorspace" c:type="CdColorspace">
      <doc xml:whitespace="preserve">The known colorspace.</doc>
      <member name="unknown" value="0" c:identifier="CD_COLORSPACE_UNKNOWN"/>
      <member name="xyz" value="1" c:identifier="CD_COLORSPACE_XYZ"/>
      <member name="lab" value="2" c:identifier="CD_COLORSPACE_LAB"/>
      <member name="luv" value="3" c:identifier="CD_COLORSPACE_LUV"/>
      <member name="ycbcr" value="4" c:identifier="CD_COLORSPACE_YCBCR"/>
      <member name="yxy" value="5" c:identifier="CD_COLORSPACE_YXY"/>
      <member name="rgb" value="6" c:identifier="CD_COLORSPACE_RGB"/>
      <member name="gray" value="7" c:identifier="CD_COLORSPACE_GRAY"/>
      <member name="hsv" value="8" c:identifier="CD_COLORSPACE_HSV"/>
      <member name="cmyk" value="9" c:identifier="CD_COLORSPACE_CMYK"/>
      <member name="cmy" value="10" c:identifier="CD_COLORSPACE_CMY"/>
      <member name="last" value="11" c:identifier="CD_COLORSPACE_LAST"/>
    </enumeration>
    <constant name="DEVICE_METADATA_XRANDR_NAME"
              value="XRANDR_name"
              c:type="CD_DEVICE_METADATA_XRANDR_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_COLORSPACE"
              value="Colorspace"
              c:type="CD_DEVICE_PROPERTY_COLORSPACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_CREATED"
              value="Created"
              c:type="CD_DEVICE_PROPERTY_CREATED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_FORMAT"
              value="Format"
              c:type="CD_DEVICE_PROPERTY_FORMAT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_ID"
              value="DeviceId"
              c:type="CD_DEVICE_PROPERTY_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_KIND"
              value="Kind"
              c:type="CD_DEVICE_PROPERTY_KIND">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_METADATA"
              value="Metadata"
              c:type="CD_DEVICE_PROPERTY_METADATA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_MODE"
              value="Mode"
              c:type="CD_DEVICE_PROPERTY_MODE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_MODEL"
              value="Model"
              c:type="CD_DEVICE_PROPERTY_MODEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_MODIFIED"
              value="Modified"
              c:type="CD_DEVICE_PROPERTY_MODIFIED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_OWNER"
              value="Owner"
              c:type="CD_DEVICE_PROPERTY_OWNER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_PROFILES"
              value="Profiles"
              c:type="CD_DEVICE_PROPERTY_PROFILES">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_PROFILING_INHIBITORS"
              value="ProfilingInhibitors"
              c:type="CD_DEVICE_PROPERTY_PROFILING_INHIBITORS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_SCOPE"
              value="Scope"
              c:type="CD_DEVICE_PROPERTY_SCOPE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_SERIAL"
              value="Serial"
              c:type="CD_DEVICE_PROPERTY_SERIAL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROPERTY_VENDOR"
              value="Vendor"
              c:type="CD_DEVICE_PROPERTY_VENDOR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Device"
           c:symbol-prefix="device"
           c:type="CdDevice"
           parent="GObject.Object"
           glib:type-name="CdDevice"
           glib:get-type="cd_device_get_type"
           glib:type-struct="DeviceClass">
      <constructor name="new" c:identifier="cd_device_new" version="0.1.0">
        <doc xml:whitespace="preserve">Creates a new #CdDevice object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdDevice object.</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_object_path"
                   c:identifier="cd_device_new_with_object_path"
                   version="0.1.8">
        <doc xml:whitespace="preserve">Creates a new #CdDevice object with a known object path.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new device object.</doc>
          <type name="Device" c:type="CdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark"
                c:identifier="cd_device_error_quark"
                version="0.1.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="kind_from_string"
                c:identifier="cd_device_kind_from_string"
                version="0.1.0">
        <doc xml:whitespace="preserve">Converts a string to a #CdDeviceKind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">enumerated value</doc>
          <type name="DeviceKind" c:type="CdDeviceKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_profile_kind"
                c:identifier="cd_device_kind_to_profile_kind"
                version="0.1.6">
        <doc xml:whitespace="preserve">Gets the most suitable profile kind for a device kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdProfileKind</doc>
          <type name="ProfileKind" c:type="CdProfileKind"/>
        </return-value>
        <parameters>
          <parameter name="device_kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #CdDeviceKind</doc>
            <type name="DeviceKind" c:type="CdDeviceKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="cd_device_kind_to_string"
                version="0.1.0">
        <doc xml:whitespace="preserve">Converts a #CdDeviceKind to a string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">identifier string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind_enum" transfer-ownership="none">
            <type name="DeviceKind" c:type="CdDeviceKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="mode_from_string"
                c:identifier="cd_device_mode_from_string">
        <return-value transfer-ownership="none">
          <type name="DeviceMode" c:type="CdDeviceMode"/>
        </return-value>
        <parameters>
          <parameter name="device_mode" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="mode_to_string" c:identifier="cd_device_mode_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="device_mode" transfer-ownership="none">
            <type name="DeviceMode" c:type="CdDeviceMode"/>
          </parameter>
        </parameters>
      </function>
      <function name="relation_from_string"
                c:identifier="cd_device_relation_from_string">
        <return-value transfer-ownership="none">
          <type name="DeviceRelation" c:type="CdDeviceRelation"/>
        </return-value>
        <parameters>
          <parameter name="device_relation" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="relation_to_string"
                c:identifier="cd_device_relation_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="device_relation" transfer-ownership="none">
            <type name="DeviceRelation" c:type="CdDeviceRelation"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="add_profile"
              c:identifier="cd_device_add_profile"
              version="0.1.8">
        <doc xml:whitespace="preserve">Adds a profile to a device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="relation" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdDeviceRelation, e.g. #CD_DEVICE_RELATION_HARD</doc>
            <type name="DeviceRelation" c:type="CdDeviceRelation"/>
          </parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_profile_finish"
              c:identifier="cd_device_add_profile_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_profile_sync"
              c:identifier="cd_device_add_profile_sync"
              version="0.1.3"
              throws="1">
        <doc xml:whitespace="preserve">Adds a profile to a device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="relation" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdDeviceRelation, e.g. #CD_DEVICE_RELATION_HARD</doc>
            <type name="DeviceRelation" c:type="CdDeviceRelation"/>
          </parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect" c:identifier="cd_device_connect" version="0.1.8">
        <doc xml:whitespace="preserve">Connects to the object and fills up initial properties.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_finish"
              c:identifier="cd_device_connect_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_sync"
              c:identifier="cd_device_connect_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Connects to the object and fills up initial properties.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="cd_device_equal" version="0.1.8">
        <doc xml:whitespace="preserve">Tests two devices for equality.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the devices are the same device</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="device2" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #CdDevice instance.</doc>
            <type name="Device" c:type="CdDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_colorspace"
              c:identifier="cd_device_get_colorspace"
              version="0.1.1">
        <doc xml:whitespace="preserve">Gets the device colorspace.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A colorspace, e.g. %CD_COLORSPACE_RGB</doc>
          <type name="Colorspace" c:type="CdColorspace"/>
        </return-value>
      </method>
      <method name="get_connected"
              c:identifier="cd_device_get_connected"
              version="0.1.9">
        <doc xml:whitespace="preserve">Gets if the device has been connected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if properties are valid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_created"
              c:identifier="cd_device_get_created"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device creation date.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A value in microseconds, or 0 for invalid</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
      </method>
      <method name="get_default_profile"
              c:identifier="cd_device_get_default_profile"
              version="0.1.1">
        <doc xml:whitespace="preserve">Gets the default device profile.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #CdProfile's or NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
      </method>
      <method name="get_format"
              c:identifier="cd_device_get_format"
              version="0.1.9">
        <doc xml:whitespace="preserve">Gets the device format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="cd_device_get_id" version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_kind"
              c:identifier="cd_device_get_kind"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A device kind, e.g. %CD_DEVICE_KIND_DISPLAY</doc>
          <type name="DeviceKind" c:type="CdDeviceKind"/>
        </return-value>
      </method>
      <method name="get_metadata"
              c:identifier="cd_device_get_metadata"
              version="0.1.5">
        <doc xml:whitespace="preserve">Returns the device metadata.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GHashTable, free with g_hash_table_unref().</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="get_metadata_item"
              c:identifier="cd_device_get_metadata_item"
              version="0.1.5">
        <doc xml:whitespace="preserve">Returns the device metadata for a specific key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the metadata value, or %NULL if not set.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key for the metadata dictionary</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mode"
              c:identifier="cd_device_get_mode"
              version="0.1.2">
        <doc xml:whitespace="preserve">Gets the device mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A colorspace, e.g. %CD_DEVICE_MODE_VIRTUAL</doc>
          <type name="DeviceMode" c:type="CdDeviceMode"/>
        </return-value>
      </method>
      <method name="get_model"
              c:identifier="cd_device_get_model"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device model.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_modified"
              c:identifier="cd_device_get_modified"
              version="0.1.1">
        <doc xml:whitespace="preserve">Gets the device modified date.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A value in microseconds, or 0 for invalid</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
      </method>
      <method name="get_object_path"
              c:identifier="cd_device_get_object_path"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the object path for the device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the object path, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_owner"
              c:identifier="cd_device_get_owner"
              version="0.1.13">
        <doc xml:whitespace="preserve">Gets the device owner.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The UID of the user that created the device</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_profile_for_qualifiers"
              c:identifier="cd_device_get_profile_for_qualifiers"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets the prefered profile for some qualifiers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="qualifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">a set of qualifiers that can included wildcards</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profile_for_qualifiers_finish"
              c:identifier="cd_device_get_profile_for_qualifiers_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profile_for_qualifiers_sync"
              c:identifier="cd_device_get_profile_for_qualifiers_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the prefered profile for some qualifiers.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #CdProfile or %NULL</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="qualifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">a set of qualifiers that can included wildcards</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profile_relation"
              c:identifier="cd_device_get_profile_relation"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets the property relationship to the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profile_relation_finish"
              c:identifier="cd_device_get_profile_relation_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="DeviceRelation" c:type="CdDeviceRelation"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profile_relation_sync"
              c:identifier="cd_device_get_profile_relation_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the property relationship to the device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="DeviceRelation" c:type="CdDeviceRelation"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance.</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_profiles"
              c:identifier="cd_device_get_profiles"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device profiles.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An array of #CdProfile's</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Profile"/>
          </array>
        </return-value>
      </method>
      <method name="get_profiling_inhibitors"
              c:identifier="cd_device_get_profiling_inhibitors"
              version="0.1.17">
        <doc xml:whitespace="preserve">Gets any profiling inhibitors for the device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A strv, or %NULL for invalid</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_scope"
              c:identifier="cd_device_get_scope"
              version="0.1.10">
        <doc xml:whitespace="preserve">Gets the device scope.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An object scope, e.g. %CD_OBJECT_SCOPE_TEMP</doc>
          <type name="ObjectScope" c:type="CdObjectScope"/>
        </return-value>
      </method>
      <method name="get_serial"
              c:identifier="cd_device_get_serial"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the device serial number.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_vendor"
              c:identifier="cd_device_get_vendor"
              version="0.1.1">
        <doc xml:whitespace="preserve">Gets the device vendor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="make_profile_default"
              c:identifier="cd_device_make_profile_default"
              version="0.1.8">
        <doc xml:whitespace="preserve">Makes an already added profile default for a device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="make_profile_default_finish"
              c:identifier="cd_device_make_profile_default_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="make_profile_default_sync"
              c:identifier="cd_device_make_profile_default_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Makes an already added profile default for a device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_inhibit"
              c:identifier="cd_device_profiling_inhibit"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets up the device for profiling and causes no profiles to be
returned if cd_device_get_profile_for_qualifiers_sync() is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_inhibit_finish"
              c:identifier="cd_device_profiling_inhibit_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_inhibit_sync"
              c:identifier="cd_device_profiling_inhibit_sync"
              version="0.1.1"
              throws="1">
        <doc xml:whitespace="preserve">Sets up the device for profiling and causes no profiles to be
returned if cd_device_get_profile_for_qualifiers_sync() is used.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_uninhibit"
              c:identifier="cd_device_profiling_uninhibit"
              version="0.1.8">
        <doc xml:whitespace="preserve">Restores the device after profiling and causes normal profiles to be
returned if cd_device_get_profile_for_qualifiers_sync() is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_uninhibit_finish"
              c:identifier="cd_device_profiling_uninhibit_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="profiling_uninhibit_sync"
              c:identifier="cd_device_profiling_uninhibit_sync"
              version="0.1.1"
              throws="1">
        <doc xml:whitespace="preserve">Sets up the device for profiling and causes no profiles to be
returned if cd_device_get_profile_for_qualifiers_sync() is used.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_profile"
              c:identifier="cd_device_remove_profile"
              version="0.1.8">
        <doc xml:whitespace="preserve">Removes a profile from a device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_profile_finish"
              c:identifier="cd_device_remove_profile_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_profile_sync"
              c:identifier="cd_device_remove_profile_sync"
              version="0.1.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes a profile from a device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdProfile instance</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_colorspace_sync"
              c:identifier="cd_device_set_colorspace_sync"
              version="0.1.1"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device kind.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="colorspace" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device colorspace, e.g. #CD_DEVICE_COLORSPACE_RGB</doc>
            <type name="Colorspace" c:type="CdColorspace"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind_sync"
              c:identifier="cd_device_set_kind_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device kind.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device kind, e.g. #CD_DEVICE_KIND_DISPLAY</doc>
            <type name="DeviceKind" c:type="CdDeviceKind"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode_sync"
              c:identifier="cd_device_set_mode_sync"
              version="0.1.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device mode.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device kind, e.g. #CD_DEVICE_MODE_VIRTUAL</doc>
            <type name="DeviceMode" c:type="CdDeviceMode"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_model_sync"
              c:identifier="cd_device_set_model_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device model.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The model.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_object_path"
              c:identifier="cd_device_set_object_path"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets the object path of the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property"
              c:identifier="cd_device_set_property"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets a property on the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a property key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a property key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property_finish"
              c:identifier="cd_device_set_property_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property_sync"
              c:identifier="cd_device_set_property_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Sets an object property.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">The property key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The property value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_serial_sync"
              c:identifier="cd_device_set_serial_sync"
              version="0.1.1"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device serial number.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The string value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vendor_sync"
              c:identifier="cd_device_set_vendor_sync"
              version="0.1.1"
              throws="1">
        <doc xml:whitespace="preserve">Sets the device vendor.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The string value.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="cd_device_to_string"
              version="0.1.0">
        <doc xml:whitespace="preserve">Converts the device to a string description.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">text representation of #CdDevice</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <property name="colorspace" version="0.1.1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device colorspace, e.g. %CD_COLORSPACE_RGB.</doc>
        <type name="guint"/>
      </property>
      <property name="connected" version="0.1.9" transfer-ownership="none">
        <doc xml:whitespace="preserve">The if the object path has been connected as is valid for use.</doc>
        <type name="utf8"/>
      </property>
      <property name="created" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The time the device was created.</doc>
        <type name="guint64"/>
      </property>
      <property name="format" version="0.1.9" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device format.</doc>
        <type name="utf8"/>
      </property>
      <property name="id" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device ID.</doc>
        <type name="utf8"/>
      </property>
      <property name="kind" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device kind, e.g. %CD_DEVICE_KIND_KEYBOARD.</doc>
        <type name="guint"/>
      </property>
      <property name="mode" version="0.1.2" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device colorspace, e.g. %CD_DEVICE_MODE_VIRTUAL.</doc>
        <type name="guint"/>
      </property>
      <property name="model" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device model.</doc>
        <type name="utf8"/>
      </property>
      <property name="modified" version="0.1.1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The last time the device was modified.</doc>
        <type name="guint64"/>
      </property>
      <property name="object-path"
                version="0.1.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The object path of the remote object</doc>
        <type name="utf8"/>
      </property>
      <property name="owner" version="0.1.13" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device owner, e.g. 500.</doc>
        <type name="guint"/>
      </property>
      <property name="profiling-inhibitors" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="scope" version="0.1.10" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device scope, e.g. %CD_OBJECT_SCOPE_TEMP.</doc>
        <type name="guint"/>
      </property>
      <property name="serial" version="0.1.1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device serial number.</doc>
        <type name="utf8"/>
      </property>
      <property name="vendor" version="0.1.1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The device vendor.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DevicePrivate" c:type="CdDevicePrivate*"/>
      </field>
      <glib:signal name="changed" when="last" version="0.1.0">
        <doc xml:whitespace="preserve">The ::changed signal is emitted when the device data has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DeviceClass"
            c:type="CdDeviceClass"
            glib:is-gtype-struct-for="Device">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="CdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_cd_device_reserved1" introspectable="0">
        <callback name="_cd_device_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved2" introspectable="0">
        <callback name="_cd_device_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved3" introspectable="0">
        <callback name="_cd_device_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved4" introspectable="0">
        <callback name="_cd_device_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved5" introspectable="0">
        <callback name="_cd_device_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved6" introspectable="0">
        <callback name="_cd_device_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved7" introspectable="0">
        <callback name="_cd_device_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_device_reserved8" introspectable="0">
        <callback name="_cd_device_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="DeviceError" c:type="CdDeviceError">
      <doc xml:whitespace="preserve">Errors that can be thrown</doc>
      <member name="failed" value="0" c:identifier="CD_DEVICE_ERROR_FAILED"/>
      <member name="last" value="1" c:identifier="CD_DEVICE_ERROR_LAST"/>
    </enumeration>
    <enumeration name="DeviceKind" c:type="CdDeviceKind">
      <doc xml:whitespace="preserve">The device type.</doc>
      <member name="unknown" value="0" c:identifier="CD_DEVICE_KIND_UNKNOWN"/>
      <member name="display" value="1" c:identifier="CD_DEVICE_KIND_DISPLAY"/>
      <member name="scanner" value="2" c:identifier="CD_DEVICE_KIND_SCANNER"/>
      <member name="printer" value="3" c:identifier="CD_DEVICE_KIND_PRINTER"/>
      <member name="camera" value="4" c:identifier="CD_DEVICE_KIND_CAMERA"/>
      <member name="webcam" value="5" c:identifier="CD_DEVICE_KIND_WEBCAM"/>
      <member name="last" value="6" c:identifier="CD_DEVICE_KIND_LAST"/>
    </enumeration>
    <enumeration name="DeviceMode" c:type="CdDeviceMode">
      <doc xml:whitespace="preserve">The device mode.</doc>
      <member name="unknown" value="0" c:identifier="CD_DEVICE_MODE_UNKNOWN"/>
      <member name="physical"
              value="1"
              c:identifier="CD_DEVICE_MODE_PHYSICAL"/>
      <member name="virtual" value="2" c:identifier="CD_DEVICE_MODE_VIRTUAL"/>
      <member name="last" value="3" c:identifier="CD_DEVICE_MODE_LAST"/>
    </enumeration>
    <record name="DevicePrivate" c:type="CdDevicePrivate" disguised="1">
      <doc xml:whitespace="preserve">Private #CdDevice data</doc>
    </record>
    <enumeration name="DeviceRelation" c:type="CdDeviceRelation">
      <doc xml:whitespace="preserve">The device to profile relationship.</doc>
      <member name="unknown"
              value="0"
              c:identifier="CD_DEVICE_RELATION_UNKNOWN"/>
      <member name="soft" value="1" c:identifier="CD_DEVICE_RELATION_SOFT"/>
      <member name="hard" value="2" c:identifier="CD_DEVICE_RELATION_HARD"/>
      <member name="last" value="3" c:identifier="CD_DEVICE_RELATION_LAST"/>
    </enumeration>
    <class name="It8"
           c:symbol-prefix="it8"
           c:type="CdIt8"
           parent="GObject.Object"
           glib:type-name="CdIt8"
           glib:get-type="cd_it8_get_type"
           glib:type-struct="It8Class">
      <constructor name="new" c:identifier="cd_it8_new" version="0.1.20">
        <doc xml:whitespace="preserve">Creates a new #CdIt8 object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdIt8 object.</doc>
          <type name="It8" c:type="CdIt8*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_kind"
                   c:identifier="cd_it8_new_with_kind"
                   version="0.1.20">
        <doc xml:whitespace="preserve">Creates a new #CdIt8 object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdIt8 object.</doc>
          <type name="It8" c:type="CdIt8*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdIt8Kind, e.g %CD_IT8_KIND_TI3.</doc>
            <type name="It8Kind" c:type="CdIt8Kind"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark"
                c:identifier="cd_it8_error_quark"
                version="0.1.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="add_data" c:identifier="cd_it8_add_data" version="0.1.20">
        <doc xml:whitespace="preserve">Adds a reading to this object. If either of @rgb or @xyz is NULL then
a black reading (0.0, 0.0, 0.0) is added instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="rgb" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdColorRGB, or %NULL</doc>
            <type name="ColorRGB" c:type="CdColorRGB*"/>
          </parameter>
          <parameter name="xyz" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdColorXYZ, or %NULL</doc>
            <type name="ColorXYZ" c:type="CdColorXYZ*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_option"
              c:identifier="cd_it8_add_option"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets any extra options that have to be set in the CCMX file</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="option" transfer-ownership="none">
            <doc xml:whitespace="preserve">A IT8 option, e.g. "TYPE_LCD"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data_item"
              c:identifier="cd_it8_get_data_item"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets a specific bit of data from this object.
The returned data are absolute readings and are not normalised.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the index existed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:whitespace="preserve">the item index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="rgb" transfer-ownership="none">
            <doc xml:whitespace="preserve">the returned RGB value</doc>
            <type name="ColorRGB" c:type="CdColorRGB*"/>
          </parameter>
          <parameter name="xyz" transfer-ownership="none">
            <doc xml:whitespace="preserve">the returned XYZ value</doc>
            <type name="ColorXYZ" c:type="CdColorXYZ*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data_size"
              c:identifier="cd_it8_get_data_size"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the data size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The number of RGB-XYZ readings in this object.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_instrument"
              c:identifier="cd_it8_get_instrument"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the instrument the file was created by.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The instrument, or %NULL if unset</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_kind" c:identifier="cd_it8_get_kind" version="0.1.20">
        <doc xml:whitespace="preserve">Gets the kind of IT8 file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdIt8Kind, e.g %CD_IT8_KIND_TI3.</doc>
          <type name="It8Kind" c:type="CdIt8Kind"/>
        </return-value>
      </method>
      <method name="get_matrix"
              c:identifier="cd_it8_get_matrix"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the calibration matrix in the it8 file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdMat3x3.</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </return-value>
      </method>
      <method name="get_normalized"
              c:identifier="cd_it8_get_normalized"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets if the data should be written normlaised to y=100.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the data should be normalised.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_originator"
              c:identifier="cd_it8_get_originator"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the file orginator.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The originator, or %NULL if unset</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_reference"
              c:identifier="cd_it8_get_reference"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the reference the file was created against.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The reference, or %NULL if unset</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_spectral"
              c:identifier="cd_it8_get_spectral"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets if the data is spectral or XYZ.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the data is in spectral bands.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_title"
              c:identifier="cd_it8_get_title"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets the file title.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The title, or %NULL if unset</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="has_option"
              c:identifier="cd_it8_has_option"
              version="0.1.20">
        <doc xml:whitespace="preserve">Finds an option in the file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the option is set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="option" transfer-ownership="none">
            <doc xml:whitespace="preserve">a option, e.g. "TYPE_CRT"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="cd_it8_load_from_data"
              version="0.1.20"
              throws="1">
        <doc xml:whitespace="preserve">Loads a it8 file from data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a valid it8 file was read.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">text data</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">the size of text data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="cd_it8_load_from_file"
              version="0.1.20"
              throws="1">
        <doc xml:whitespace="preserve">Loads a it8 file from disk.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a valid it8 file was read.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file"
              c:identifier="cd_it8_save_to_file"
              version="0.1.20"
              throws="1">
        <doc xml:whitespace="preserve">Saves a it8 file to disk</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if it8 file was saved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_instrument"
              c:identifier="cd_it8_set_instrument"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets the measuring instrument that created the .it8 file</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="instrument" transfer-ownership="none">
            <doc xml:whitespace="preserve">the instruemnt name, e.g. "huey"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind" c:identifier="cd_it8_set_kind" version="0.1.20">
        <doc xml:whitespace="preserve">Set the kind of IT8 file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdIt8Kind, e.g %CD_IT8_KIND_TI3.</doc>
            <type name="It8Kind" c:type="CdIt8Kind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_matrix"
              c:identifier="cd_it8_set_matrix"
              version="0.1.20">
        <doc xml:whitespace="preserve">Set the calibration matrix in the it8 file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="matrix" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdMat3x3.</doc>
            <type name="Mat3x3" c:type="CdMat3x3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_normalized"
              c:identifier="cd_it8_set_normalized"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets if normalized data should be written to the .it8 file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="normalized" transfer-ownership="none">
            <doc xml:whitespace="preserve">If the data is normalized</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_originator"
              c:identifier="cd_it8_set_originator"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets the program name that created the .it8 file</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="originator" transfer-ownership="none">
            <doc xml:whitespace="preserve">the program name, e.g. "gcm-calibrate"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reference"
              c:identifier="cd_it8_set_reference"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets the reference that as used to create the .it8 reference</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="reference" transfer-ownership="none">
            <doc xml:whitespace="preserve">the instruemnt name, e.g. "colormunki"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_spectral"
              c:identifier="cd_it8_set_spectral"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets if spectral data should be written to the .it8 file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="spectral" transfer-ownership="none">
            <doc xml:whitespace="preserve">If the data is spectral</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="cd_it8_set_title"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets the display name for the file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">the title name, e.g. "Factory calibration"</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="utils_calculate_ccmx"
              c:identifier="cd_it8_utils_calculate_ccmx"
              throws="1">
        <doc xml:whitespace="preserve">This calculates the colorimter correction matrix using the Four-Color
Matrix Method by Yoshihiro Ohno and Jonathan E. Hardis, 1997.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a correction matrix was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="it8_measured" transfer-ownership="none">
            <doc xml:whitespace="preserve">The measured data</doc>
            <type name="It8" c:type="CdIt8*"/>
          </parameter>
          <parameter name="it8_ccmx" transfer-ownership="none">
            <doc xml:whitespace="preserve">The calculated correction matrix</doc>
            <type name="It8" c:type="CdIt8*"/>
          </parameter>
        </parameters>
      </method>
      <property name="instrument" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">The instrument that created the results, e.g. "huey"</doc>
        <type name="utf8"/>
      </property>
      <property name="kind"
                version="0.1.20"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The kind of IT8 file.</doc>
        <type name="guint"/>
      </property>
      <property name="normalized" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">If the results file is normalized.</doc>
        <type name="gboolean"/>
      </property>
      <property name="originator" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">The framework that created the results, e.g. "cd-self-test"</doc>
        <type name="utf8"/>
      </property>
      <property name="reference" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">The reference that created the results, e.g. "colormunki"</doc>
        <type name="utf8"/>
      </property>
      <property name="spectral" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">If the results file is spectral.</doc>
        <type name="gboolean"/>
      </property>
      <property name="title" version="0.1.20" transfer-ownership="none">
        <doc xml:whitespace="preserve">The file title, e.g. "Factor calibration".</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="It8Private" c:type="CdIt8Private*"/>
      </field>
    </class>
    <record name="It8Class" c:type="CdIt8Class" glib:is-gtype-struct-for="It8">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_cd_it8_reserved1" introspectable="0">
        <callback name="_cd_it8_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved2" introspectable="0">
        <callback name="_cd_it8_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved3" introspectable="0">
        <callback name="_cd_it8_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved4" introspectable="0">
        <callback name="_cd_it8_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved5" introspectable="0">
        <callback name="_cd_it8_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved6" introspectable="0">
        <callback name="_cd_it8_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved7" introspectable="0">
        <callback name="_cd_it8_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_it8_reserved8" introspectable="0">
        <callback name="_cd_it8_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="It8Error" c:type="CdIt8Error">
      <doc xml:whitespace="preserve">Errors that can be thrown</doc>
      <member name="failed" value="0" c:identifier="CD_IT8_ERROR_FAILED"/>
      <member name="last" value="1" c:identifier="CD_IT8_ERROR_LAST"/>
    </enumeration>
    <enumeration name="It8Kind" c:type="CdIt8Kind">
      <doc xml:whitespace="preserve">The kind of IT8 file.</doc>
      <member name="unknown" value="0" c:identifier="CD_IT8_KIND_UNKNOWN"/>
      <member name="ti1" value="1" c:identifier="CD_IT8_KIND_TI1"/>
      <member name="ti3" value="2" c:identifier="CD_IT8_KIND_TI3"/>
      <member name="ccmx" value="3" c:identifier="CD_IT8_KIND_CCMX"/>
      <member name="last" value="4" c:identifier="CD_IT8_KIND_LAST"/>
    </enumeration>
    <record name="It8Private" c:type="CdIt8Private" disguised="1">
      <doc xml:whitespace="preserve">Private #CdIt8 data</doc>
    </record>
    <constant name="MAJOR_VERSION" value="0" c:type="CD_MAJOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="21" c:type="CD_MICRO_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="1" c:type="CD_MINOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Mat3x3" c:type="CdMat3x3">
      <field name="m00" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m01" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m02" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m10" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m11" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m12" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m20" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m21" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="m22" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
    </record>
    <enumeration name="ObjectScope" c:type="CdObjectScope">
      <doc xml:whitespace="preserve">The options type.</doc>
      <member name="unknown" value="0" c:identifier="CD_OBJECT_SCOPE_UNKNOWN"/>
      <member name="normal" value="1" c:identifier="CD_OBJECT_SCOPE_NORMAL"/>
      <member name="temp" value="2" c:identifier="CD_OBJECT_SCOPE_TEMP"/>
      <member name="disk" value="3" c:identifier="CD_OBJECT_SCOPE_DISK"/>
      <member name="last" value="4" c:identifier="CD_OBJECT_SCOPE_LAST"/>
    </enumeration>
    <constant name="PROFILE_METADATA_ACCURACY_DE76_AVG"
              value="ACCURACY_dE76_avg"
              c:type="CD_PROFILE_METADATA_ACCURACY_DE76_AVG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_ACCURACY_DE76_MAX"
              value="ACCURACY_dE76_max"
              c:type="CD_PROFILE_METADATA_ACCURACY_DE76_MAX">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_ACCURACY_DE76_RMS"
              value="ACCURACY_dE76_rms"
              c:type="CD_PROFILE_METADATA_ACCURACY_DE76_RMS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CMF_BINARY"
              value="CMF_binary"
              c:type="CD_PROFILE_METADATA_CMF_BINARY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CMF_PRODUCT"
              value="CMF_product"
              c:type="CD_PROFILE_METADATA_CMF_PRODUCT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CMF_VERSION"
              value="CMF_version"
              c:type="CD_PROFILE_METADATA_CMF_VERSION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE"
              value="CONNECTION_type"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE_DISPLAYPORT"
              value="displayport"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE_DISPLAYPORT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE_DVI"
              value="dvi"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE_DVI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE_HDMI"
              value="hdmi"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE_HDMI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE_INTERNAL"
              value="internal"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE_INTERNAL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_CONNECTION_TYPE_VGA"
              value="vga"
              c:type="CD_PROFILE_METADATA_CONNECTION_TYPE_VGA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_DATA_SOURCE"
              value="DATA_source"
              c:type="CD_PROFILE_METADATA_DATA_SOURCE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_DATA_SOURCE_CALIB"
              value="calib"
              c:type="CD_PROFILE_METADATA_DATA_SOURCE_CALIB">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_DATA_SOURCE_EDID"
              value="edid"
              c:type="CD_PROFILE_METADATA_DATA_SOURCE_EDID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_DATA_SOURCE_STANDARD"
              value="standard"
              c:type="CD_PROFILE_METADATA_DATA_SOURCE_STANDARD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_DATA_SOURCE_TEST"
              value="test"
              c:type="CD_PROFILE_METADATA_DATA_SOURCE_TEST">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_EDID_MD5"
              value="EDID_md5"
              c:type="CD_PROFILE_METADATA_EDID_MD5">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_EDID_MNFT"
              value="EDID_mnft"
              c:type="CD_PROFILE_METADATA_EDID_MNFT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_EDID_MODEL"
              value="EDID_model"
              c:type="CD_PROFILE_METADATA_EDID_MODEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_EDID_SERIAL"
              value="EDID_serial"
              c:type="CD_PROFILE_METADATA_EDID_SERIAL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_EDID_VENDOR"
              value="EDID_manufacturer"
              c:type="CD_PROFILE_METADATA_EDID_VENDOR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_FILE_CHECKSUM"
              value="FILE_checksum"
              c:type="CD_PROFILE_METADATA_FILE_CHECKSUM">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_MAPPING_DEVICE_ID"
              value="MAPPING_device_id"
              c:type="CD_PROFILE_METADATA_MAPPING_DEVICE_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_MAPPING_FORMAT"
              value="MAPPING_format"
              c:type="CD_PROFILE_METADATA_MAPPING_FORMAT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_MAPPING_QUALIFIER"
              value="MAPPING_qualifier"
              c:type="CD_PROFILE_METADATA_MAPPING_QUALIFIER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_MEASUREMENT_DEVICE"
              value="MEASUREMENT_device"
              c:type="CD_PROFILE_METADATA_MEASUREMENT_DEVICE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_SCREEN_BRIGHTNESS"
              value="SCREEN_brightness"
              c:type="CD_PROFILE_METADATA_SCREEN_BRIGHTNESS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_SCREEN_SURFACE"
              value="SCREEN_surface"
              c:type="CD_PROFILE_METADATA_SCREEN_SURFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_SCREEN_SURFACE_GLOSSY"
              value="glossy"
              c:type="CD_PROFILE_METADATA_SCREEN_SURFACE_GLOSSY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_SCREEN_SURFACE_MATTE"
              value="matte"
              c:type="CD_PROFILE_METADATA_SCREEN_SURFACE_MATTE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_METADATA_STANDARD_SPACE"
              value="STANDARD_space"
              c:type="CD_PROFILE_METADATA_STANDARD_SPACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_COLORSPACE"
              value="Colorspace"
              c:type="CD_PROFILE_PROPERTY_COLORSPACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_CREATED"
              value="Created"
              c:type="CD_PROFILE_PROPERTY_CREATED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_FILENAME"
              value="Filename"
              c:type="CD_PROFILE_PROPERTY_FILENAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_FORMAT"
              value="Format"
              c:type="CD_PROFILE_PROPERTY_FORMAT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_HAS_VCGT"
              value="HasVcgt"
              c:type="CD_PROFILE_PROPERTY_HAS_VCGT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_ID"
              value="ProfileId"
              c:type="CD_PROFILE_PROPERTY_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_IS_SYSTEM_WIDE"
              value="IsSystemWide"
              c:type="CD_PROFILE_PROPERTY_IS_SYSTEM_WIDE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_KIND"
              value="Kind"
              c:type="CD_PROFILE_PROPERTY_KIND">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_METADATA"
              value="Metadata"
              c:type="CD_PROFILE_PROPERTY_METADATA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_OWNER"
              value="Owner"
              c:type="CD_PROFILE_PROPERTY_OWNER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_QUALIFIER"
              value="Qualifier"
              c:type="CD_PROFILE_PROPERTY_QUALIFIER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_SCOPE"
              value="Scope"
              c:type="CD_PROFILE_PROPERTY_SCOPE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROFILE_PROPERTY_TITLE"
              value="Title"
              c:type="CD_PROFILE_PROPERTY_TITLE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Profile"
           c:symbol-prefix="profile"
           c:type="CdProfile"
           parent="GObject.Object"
           glib:type-name="CdProfile"
           glib:get-type="cd_profile_get_type"
           glib:type-struct="ProfileClass">
      <constructor name="new" c:identifier="cd_profile_new" version="0.1.0">
        <doc xml:whitespace="preserve">Creates a new #CdProfile object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdProfile object.</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_object_path"
                   c:identifier="cd_profile_new_with_object_path"
                   version="0.1.8">
        <doc xml:whitespace="preserve">Creates a new #CdProfile object with a known object path.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new profile object.</doc>
          <type name="Profile" c:type="CdProfile*"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark"
                c:identifier="cd_profile_error_quark"
                version="0.1.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="kind_from_string"
                c:identifier="cd_profile_kind_from_string"
                version="2.91.1">
        <return-value transfer-ownership="none">
          <type name="ProfileKind" c:type="CdProfileKind"/>
        </return-value>
        <parameters>
          <parameter name="profile_kind" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="cd_profile_kind_to_string"
                version="2.91.1">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="profile_kind" transfer-ownership="none">
            <type name="ProfileKind" c:type="CdProfileKind"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="connect" c:identifier="cd_profile_connect" version="0.1.8">
        <doc xml:whitespace="preserve">Connects to the object and fills up initial properties.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_finish"
              c:identifier="cd_profile_connect_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_sync"
              c:identifier="cd_profile_connect_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Connects to the object and fills up initial properties.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="cd_profile_equal" version="0.1.8">
        <doc xml:whitespace="preserve">Tests two profiles for equality.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the profiles are the same device</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="profile2" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #CdProfile instance.</doc>
            <type name="Profile" c:type="CdProfile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_age" c:identifier="cd_profile_get_age" version="0.1.8">
        <doc xml:whitespace="preserve">Gets the profile age in seconds relative to the current time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A UNIX time, or 0 if the profile has no creation date</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
      </method>
      <method name="get_colorspace"
              c:identifier="cd_profile_get_colorspace"
              version="0.1.2">
        <doc xml:whitespace="preserve">Gets the profile colorspace.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdColorspace, e.g. %CD_COLORSPACE_RGB</doc>
          <type name="Colorspace" c:type="CdColorspace"/>
        </return-value>
      </method>
      <method name="get_connected"
              c:identifier="cd_profile_get_connected"
              version="0.1.9">
        <doc xml:whitespace="preserve">Gets if the profile has been connected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if properties are valid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_created"
              c:identifier="cd_profile_get_created"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets the profile created date and time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A UNIX time, or 0 if the profile has no creation date</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
      </method>
      <method name="get_filename"
              c:identifier="cd_profile_get_filename"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the profile filename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_format"
              c:identifier="cd_profile_get_format"
              version="0.1.4">
        <doc xml:whitespace="preserve">Gets the profile format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_has_vcgt"
              c:identifier="cd_profile_get_has_vcgt"
              version="0.1.2">
        <doc xml:whitespace="preserve">Returns if the profile has a VCGT table.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if VCGT is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="cd_profile_get_id" version="0.1.0">
        <doc xml:whitespace="preserve">Gets the profile ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_is_system_wide"
              c:identifier="cd_profile_get_is_system_wide"
              version="0.1.2">
        <doc xml:whitespace="preserve">Returns if the profile is installed system wide and available for all
users.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if system wide.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_kind"
              c:identifier="cd_profile_get_kind"
              version="0.1.1">
        <doc xml:whitespace="preserve">Gets the profile kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdProfileKind, e.g. %CD_PROFILE_KIND_DISPLAY_DEVICE</doc>
          <type name="ProfileKind" c:type="CdProfileKind"/>
        </return-value>
      </method>
      <method name="get_metadata"
              c:identifier="cd_profile_get_metadata"
              version="0.1.2">
        <doc xml:whitespace="preserve">Returns the profile metadata.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GHashTable.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="get_metadata_item"
              c:identifier="cd_profile_get_metadata_item"
              version="0.1.5">
        <doc xml:whitespace="preserve">Returns the profile metadata for a specific key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the metadata value, or %NULL if not set.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key for the metadata dictionary</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_path"
              c:identifier="cd_profile_get_object_path"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the object path for the profile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the object path, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_owner"
              c:identifier="cd_profile_get_owner"
              version="0.1.13">
        <doc xml:whitespace="preserve">Gets the profile owner.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The UID of the user that created the device</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_qualifier"
              c:identifier="cd_profile_get_qualifier"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the profile qualifier.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_scope"
              c:identifier="cd_profile_get_scope"
              version="0.1.10">
        <doc xml:whitespace="preserve">Gets the profile scope.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdObjectScope, e.g. %CD_OBJECT_SCOPE_UNKNOWN</doc>
          <type name="ObjectScope" c:type="CdObjectScope"/>
        </return-value>
      </method>
      <method name="get_title"
              c:identifier="cd_profile_get_title"
              version="0.1.0">
        <doc xml:whitespace="preserve">Gets the profile title.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="has_access"
              c:identifier="cd_profile_has_access"
              version="0.1.13">
        <doc xml:whitespace="preserve">Gets if the current user has access permissions to the profile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="install_system_wide"
              c:identifier="cd_profile_install_system_wide"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets the profile system wide.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="install_system_wide_finish"
              c:identifier="cd_profile_install_system_wide_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="install_system_wide_sync"
              c:identifier="cd_profile_install_system_wide_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Sets the profile system wide.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename_sync"
              c:identifier="cd_profile_set_filename_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Sets the profile model.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The filename.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_object_path"
              c:identifier="cd_profile_set_object_path"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets the object path of the profile.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property"
              c:identifier="cd_profile_set_property"
              version="0.1.8">
        <doc xml:whitespace="preserve">Deletes a color device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property_finish"
              c:identifier="cd_profile_set_property_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property_sync"
              c:identifier="cd_profile_set_property_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Sets properties on an object

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">The key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_qualifier_sync"
              c:identifier="cd_profile_set_qualifier_sync"
              version="0.1.0"
              throws="1">
        <doc xml:whitespace="preserve">Sets the profile model.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE for success, else #FALSE and @error is used</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The qualifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="cd_profile_to_string"
              version="0.1.0">
        <doc xml:whitespace="preserve">Converts the profile to a string description.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">text representation of #CdProfile</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <property name="colorspace" version="0.1.2" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile colorspace.</doc>
        <type name="utf8"/>
      </property>
      <property name="connected" version="0.1.9" transfer-ownership="none">
        <doc xml:whitespace="preserve">The if the object path has been connected as is valid for use.</doc>
        <type name="utf8"/>
      </property>
      <property name="created" version="0.1.8" transfer-ownership="none">
        <doc xml:whitespace="preserve">When the profile was created.</doc>
        <type name="gint64"/>
      </property>
      <property name="filename" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile filename.</doc>
        <type name="utf8"/>
      </property>
      <property name="format" version="0.1.4" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile format.</doc>
        <type name="utf8"/>
      </property>
      <property name="has-vcgt" version="0.1.2" transfer-ownership="none">
        <doc xml:whitespace="preserve">If the profile has a VCGT table.</doc>
        <type name="utf8"/>
      </property>
      <property name="id" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile ID.</doc>
        <type name="utf8"/>
      </property>
      <property name="is-system-wide"
                version="0.1.2"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If the profile is installed system wide for all users.</doc>
        <type name="utf8"/>
      </property>
      <property name="kind" version="0.1.1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile kind.</doc>
        <type name="utf8"/>
      </property>
      <property name="object-path"
                version="0.1.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The object path of the remote object</doc>
        <type name="utf8"/>
      </property>
      <property name="owner" version="0.1.13" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile owner, e.g. %500.</doc>
        <type name="guint"/>
      </property>
      <property name="qualifier" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile qualifier.</doc>
        <type name="utf8"/>
      </property>
      <property name="scope" version="0.1.10" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile scope, e.g. %CD_OBJECT_SCOPE_TEMP.</doc>
        <type name="guint"/>
      </property>
      <property name="title" version="0.1.0" transfer-ownership="none">
        <doc xml:whitespace="preserve">The profile title.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ProfilePrivate" c:type="CdProfilePrivate*"/>
      </field>
      <glib:signal name="changed" when="last" version="0.1.0">
        <doc xml:whitespace="preserve">The ::changed signal is emitted when the profile data has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ProfileClass"
            c:type="CdProfileClass"
            glib:is-gtype-struct-for="Profile">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="profile" transfer-ownership="none">
              <type name="Profile" c:type="CdProfile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_cd_profile_reserved1" introspectable="0">
        <callback name="_cd_profile_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved2" introspectable="0">
        <callback name="_cd_profile_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved3" introspectable="0">
        <callback name="_cd_profile_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved4" introspectable="0">
        <callback name="_cd_profile_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved5" introspectable="0">
        <callback name="_cd_profile_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved6" introspectable="0">
        <callback name="_cd_profile_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved7" introspectable="0">
        <callback name="_cd_profile_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_profile_reserved8" introspectable="0">
        <callback name="_cd_profile_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ProfileError" c:type="CdProfileError">
      <doc xml:whitespace="preserve">Errors that can be thrown</doc>
      <member name="failed" value="0" c:identifier="CD_PROFILE_ERROR_FAILED"/>
      <member name="last" value="1" c:identifier="CD_PROFILE_ERROR_LAST"/>
    </enumeration>
    <enumeration name="ProfileKind" c:type="CdProfileKind">
      <doc xml:whitespace="preserve">The profile type.</doc>
      <member name="unknown" value="0" c:identifier="CD_PROFILE_KIND_UNKNOWN"/>
      <member name="input_device"
              value="1"
              c:identifier="CD_PROFILE_KIND_INPUT_DEVICE"/>
      <member name="display_device"
              value="2"
              c:identifier="CD_PROFILE_KIND_DISPLAY_DEVICE"/>
      <member name="output_device"
              value="3"
              c:identifier="CD_PROFILE_KIND_OUTPUT_DEVICE"/>
      <member name="devicelink"
              value="4"
              c:identifier="CD_PROFILE_KIND_DEVICELINK"/>
      <member name="colorspace_conversion"
              value="5"
              c:identifier="CD_PROFILE_KIND_COLORSPACE_CONVERSION"/>
      <member name="abstract"
              value="6"
              c:identifier="CD_PROFILE_KIND_ABSTRACT"/>
      <member name="named_color"
              value="7"
              c:identifier="CD_PROFILE_KIND_NAMED_COLOR"/>
      <member name="last" value="8" c:identifier="CD_PROFILE_KIND_LAST"/>
    </enumeration>
    <record name="ProfilePrivate" c:type="CdProfilePrivate" disguised="1">
      <doc xml:whitespace="preserve">Private #CdProfile data</doc>
    </record>
    <enumeration name="RenderingIntent" c:type="CdRenderingIntent">
      <doc xml:whitespace="preserve">The rendering intent.</doc>
      <member name="unknown"
              value="0"
              c:identifier="CD_RENDERING_INTENT_UNKNOWN"/>
      <member name="perceptual"
              value="1"
              c:identifier="CD_RENDERING_INTENT_PERCEPTUAL"/>
      <member name="relative_colorimetric"
              value="2"
              c:identifier="CD_RENDERING_INTENT_RELATIVE_COLORIMETRIC"/>
      <member name="saturation"
              value="3"
              c:identifier="CD_RENDERING_INTENT_SATURATION"/>
      <member name="absolute_colorimetric"
              value="4"
              c:identifier="CD_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC"/>
      <member name="last" value="5" c:identifier="CD_RENDERING_INTENT_LAST"/>
    </enumeration>
    <class name="Sensor"
           c:symbol-prefix="sensor"
           c:type="CdSensor"
           parent="GObject.Object"
           glib:type-name="CdSensor"
           glib:get-type="cd_sensor_get_type"
           glib:type-struct="SensorClass">
      <constructor name="new" c:identifier="cd_sensor_new" version="0.1.6">
        <doc xml:whitespace="preserve">Creates a new #CdSensor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new CdSensor object.</doc>
          <type name="Sensor" c:type="CdSensor*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_object_path"
                   c:identifier="cd_sensor_new_with_object_path"
                   version="0.1.8">
        <doc xml:whitespace="preserve">Creates a new #CdSensor object with a known object path.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new sensor object.</doc>
          <type name="Sensor" c:type="CdSensor*"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="cap_from_string"
                c:identifier="cd_sensor_cap_from_string">
        <doc xml:whitespace="preserve">Gets the sensor capability as a enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdSensorCap</doc>
          <type name="SensorCap" c:type="CdSensorCap"/>
        </return-value>
        <parameters>
          <parameter name="sensor_cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">the sensor capability, e.g. 'projector'.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="cap_to_string" c:identifier="cd_sensor_cap_to_string">
        <doc xml:whitespace="preserve">Gets the sensor capability as a string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the sensor capability, e.g. 'projector'.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="sensor_cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdSensorCap</doc>
            <type name="SensorCap" c:type="CdSensorCap"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark"
                c:identifier="cd_sensor_error_quark"
                version="0.1.6">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="kind_from_string"
                c:identifier="cd_sensor_kind_from_string">
        <doc xml:whitespace="preserve">Gets the sensor kind as a enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdSensorKind</doc>
          <type name="SensorKind" c:type="CdSensorKind"/>
        </return-value>
        <parameters>
          <parameter name="sensor_kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">the sensor kind, e.g. 'huey'.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string" c:identifier="cd_sensor_kind_to_string">
        <doc xml:whitespace="preserve">Gets the sensor kind as a string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the sensor kind, e.g. 'huey'.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="sensor_kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdSensorKind</doc>
            <type name="SensorKind" c:type="CdSensorKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="state_from_string"
                c:identifier="cd_sensor_state_from_string">
        <doc xml:whitespace="preserve">Gets the sensor stateability as a enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdSensorState</doc>
          <type name="SensorState" c:type="CdSensorState"/>
        </return-value>
        <parameters>
          <parameter name="sensor_state" transfer-ownership="none">
            <doc xml:whitespace="preserve">the sensor stateability, e.g. 'measuring'.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="state_to_string"
                c:identifier="cd_sensor_state_to_string">
        <doc xml:whitespace="preserve">Gets the sensor stateability as a string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the sensor stateability, e.g. 'measuring'.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="sensor_state" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdSensorState</doc>
            <type name="SensorState" c:type="CdSensorState"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="button_pressed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="connect" c:identifier="cd_sensor_connect" version="0.1.8">
        <doc xml:whitespace="preserve">Connects to the sensor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_finish"
              c:identifier="cd_sensor_connect_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if we could connect to to the sensor</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_sync"
              c:identifier="cd_sensor_connect_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Connects to the object and fills up initial properties.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="cd_sensor_equal" version="0.1.8">
        <doc xml:whitespace="preserve">Tests two sensors for equality.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the sensors are the same device</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sensor2" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #CdSensor instance.</doc>
            <type name="Sensor" c:type="CdSensor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_caps"
              c:identifier="cd_sensor_get_caps"
              version="0.1.6">
        <doc xml:whitespace="preserve">Returns the sensor metadata.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GHashTable, free with g_hash_table_unref().</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_connected"
              c:identifier="cd_sensor_get_connected"
              version="0.1.9">
        <doc xml:whitespace="preserve">Gets if the sensor has been connected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if properties are valid</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_kind"
              c:identifier="cd_sensor_get_kind"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdSensorKind, e.g. %CD_SENSOR_KIND_HUEY</doc>
          <type name="SensorKind" c:type="CdSensorKind"/>
        </return-value>
      </method>
      <method name="get_locked"
              c:identifier="cd_sensor_get_locked"
              version="0.1.6">
        <doc xml:whitespace="preserve">Returns if the sensor is locked.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if VCGT is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_mode"
              c:identifier="cd_sensor_get_mode"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor operating mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdSensorCap, e.g. %CD_SENSOR_CAP_AMBIENT</doc>
          <type name="SensorCap" c:type="CdSensorCap"/>
        </return-value>
      </method>
      <method name="get_model"
              c:identifier="cd_sensor_get_model"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor model.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_native"
              c:identifier="cd_sensor_get_native"
              version="0.1.6">
        <doc xml:whitespace="preserve">Returns if the sensor has a native driver.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if VCGT is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_object_path"
              c:identifier="cd_sensor_get_object_path"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the object path for the sensor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the object path, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_option"
              c:identifier="cd_sensor_get_option"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets a specific sensor option.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A const string, or %NULL of not found.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key to search for.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_options"
              c:identifier="cd_sensor_get_options"
              version="0.1.20">
        <doc xml:whitespace="preserve">Gets any sensor options.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A refcounted #GHashTable of (string, GVariant).</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="get_sample"
              c:identifier="cd_sensor_get_sample"
              version="0.1.8">
        <doc xml:whitespace="preserve">Gets a color sample from a sensor</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #CdSensorCap</doc>
            <type name="SensorCap" c:type="CdSensorCap"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sample_finish"
              c:identifier="cd_sensor_get_sample_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the XYZ reading, or %NULL</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sample_sync"
              c:identifier="cd_sensor_get_sample_sync"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets a sample from the sensor.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the XYZ reading, with ambient levels in Lux encoded in X, or %NULL for error.</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </return-value>
        <parameters>
          <parameter name="cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">The device capability, e.g. %CD_SENSOR_CAP_AMBIENT.</doc>
            <type name="SensorCap" c:type="CdSensorCap"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_serial"
              c:identifier="cd_sensor_get_serial"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor serial number.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_state"
              c:identifier="cd_sensor_get_state"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #CdSensorState, e.g. %CD_SENSOR_STATE_IDLE</doc>
          <type name="SensorState" c:type="CdSensorState"/>
        </return-value>
      </method>
      <method name="get_vendor"
              c:identifier="cd_sensor_get_vendor"
              version="0.1.6">
        <doc xml:whitespace="preserve">Gets the sensor vendor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="has_cap" c:identifier="cd_sensor_has_cap">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cap" transfer-ownership="none">
            <type name="SensorCap" c:type="CdSensorCap"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock" c:identifier="cd_sensor_lock" version="0.1.8">
        <doc xml:whitespace="preserve">Locks the device so we can use it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock_finish"
              c:identifier="cd_sensor_lock_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock_sync"
              c:identifier="cd_sensor_lock_sync"
              version="0.1.6"
              throws="1">
        <doc xml:whitespace="preserve">Locks the device so we can use it.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_object_path"
              c:identifier="cd_sensor_set_object_path"
              version="0.1.8">
        <doc xml:whitespace="preserve">Sets the object path of the sensor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The colord object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_options"
              c:identifier="cd_sensor_set_options"
              version="0.1.20">
        <doc xml:whitespace="preserve">Sets options on the sensor device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="values" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_options_finish"
              c:identifier="cd_sensor_set_options_finish"
              version="0.1.20"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_options_sync"
              c:identifier="cd_sensor_set_options_sync"
              version="0.1.20"
              throws="1">
        <doc xml:whitespace="preserve">Sets options on the sensor device.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="values" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="cd_sensor_to_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="unlock" c:identifier="cd_sensor_unlock" version="0.1.8">
        <doc xml:whitespace="preserve">Unlocks the sensor for use by other programs.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">the function to run on completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_finish"
              c:identifier="cd_sensor_unlock_finish"
              version="0.1.8"
              throws="1">
        <doc xml:whitespace="preserve">Gets the result from the asynchronous function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_sync"
              c:identifier="cd_sensor_unlock_sync"
              version="0.1.6"
              throws="1">
        <doc xml:whitespace="preserve">Unlocks the device for use by other programs.

WARNING: This function is synchronous, and may block.
Do not use it in GUI applications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="connected" version="0.1.9" transfer-ownership="none">
        <doc xml:whitespace="preserve">The if the object path has been connected as is valid for use.</doc>
        <type name="utf8"/>
      </property>
      <property name="kind" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor kind.</doc>
        <type name="utf8"/>
      </property>
      <property name="locked" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">If the sensor is locked.</doc>
        <type name="utf8"/>
      </property>
      <property name="mode" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor mode.</doc>
        <type name="utf8"/>
      </property>
      <property name="model" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor model.</doc>
        <type name="utf8"/>
      </property>
      <property name="native" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">If the sensor has a native driver.</doc>
        <type name="utf8"/>
      </property>
      <property name="object-path"
                version="0.1.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The object path of the remote object</doc>
        <type name="utf8"/>
      </property>
      <property name="serial" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor ID.</doc>
        <type name="utf8"/>
      </property>
      <property name="state" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor state.</doc>
        <type name="utf8"/>
      </property>
      <property name="vendor" version="0.1.6" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sensor vendor.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SensorPrivate" c:type="CdSensorPrivate*"/>
      </field>
      <glib:signal name="button-pressed" when="last" version="0.1.6">
        <doc xml:whitespace="preserve">The ::button-pressed signal is emitted when the button has been pressed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration name="SensorCap" c:type="CdSensorCap">
      <doc xml:whitespace="preserve">The sensor capabilities.</doc>
      <member name="unknown" value="0" c:identifier="CD_SENSOR_CAP_UNKNOWN"/>
      <member name="lcd" value="1" c:identifier="CD_SENSOR_CAP_LCD"/>
      <member name="crt" value="2" c:identifier="CD_SENSOR_CAP_CRT"/>
      <member name="printer" value="3" c:identifier="CD_SENSOR_CAP_PRINTER"/>
      <member name="spot" value="4" c:identifier="CD_SENSOR_CAP_SPOT"/>
      <member name="projector"
              value="5"
              c:identifier="CD_SENSOR_CAP_PROJECTOR"/>
      <member name="ambient" value="6" c:identifier="CD_SENSOR_CAP_AMBIENT"/>
      <member name="calibration"
              value="7"
              c:identifier="CD_SENSOR_CAP_CALIBRATION"/>
      <member name="led" value="8" c:identifier="CD_SENSOR_CAP_LED"/>
      <member name="last" value="9" c:identifier="CD_SENSOR_CAP_LAST"/>
    </enumeration>
    <record name="SensorClass"
            c:type="CdSensorClass"
            glib:is-gtype-struct-for="Sensor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="button_pressed">
        <callback name="button_pressed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sensor" transfer-ownership="none">
              <type name="Sensor" c:type="CdSensor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_cd_sensor_reserved1" introspectable="0">
        <callback name="_cd_sensor_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved2" introspectable="0">
        <callback name="_cd_sensor_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved3" introspectable="0">
        <callback name="_cd_sensor_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved4" introspectable="0">
        <callback name="_cd_sensor_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved5" introspectable="0">
        <callback name="_cd_sensor_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved6" introspectable="0">
        <callback name="_cd_sensor_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved7" introspectable="0">
        <callback name="_cd_sensor_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_cd_sensor_reserved8" introspectable="0">
        <callback name="_cd_sensor_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SensorError" c:type="CdSensorError">
      <doc xml:whitespace="preserve">Errors that can be thrown</doc>
      <member name="failed" value="0" c:identifier="CD_SENSOR_ERROR_FAILED"/>
      <member name="last" value="1" c:identifier="CD_SENSOR_ERROR_LAST"/>
    </enumeration>
    <enumeration name="SensorKind" c:type="CdSensorKind">
      <doc xml:whitespace="preserve">The sensor type.</doc>
      <member name="unknown" value="0" c:identifier="CD_SENSOR_KIND_UNKNOWN"/>
      <member name="dummy" value="1" c:identifier="CD_SENSOR_KIND_DUMMY"/>
      <member name="huey" value="2" c:identifier="CD_SENSOR_KIND_HUEY"/>
      <member name="color_munki"
              value="3"
              c:identifier="CD_SENSOR_KIND_COLOR_MUNKI"/>
      <member name="spyder" value="4" c:identifier="CD_SENSOR_KIND_SPYDER"/>
      <member name="dtp20" value="5" c:identifier="CD_SENSOR_KIND_DTP20"/>
      <member name="dtp22" value="6" c:identifier="CD_SENSOR_KIND_DTP22"/>
      <member name="dtp41" value="7" c:identifier="CD_SENSOR_KIND_DTP41"/>
      <member name="dtp51" value="8" c:identifier="CD_SENSOR_KIND_DTP51"/>
      <member name="dtp94" value="9" c:identifier="CD_SENSOR_KIND_DTP94"/>
      <member name="spectro_scan"
              value="10"
              c:identifier="CD_SENSOR_KIND_SPECTRO_SCAN"/>
      <member name="i1_pro" value="11" c:identifier="CD_SENSOR_KIND_I1_PRO"/>
      <member name="colorimtre_hcfr"
              value="12"
              c:identifier="CD_SENSOR_KIND_COLORIMTRE_HCFR"/>
      <member name="i1_display3"
              value="13"
              c:identifier="CD_SENSOR_KIND_I1_DISPLAY3"/>
      <member name="colorhug"
              value="14"
              c:identifier="CD_SENSOR_KIND_COLORHUG"/>
      <member name="spyder2" value="15" c:identifier="CD_SENSOR_KIND_SPYDER2"/>
      <member name="spyder3" value="16" c:identifier="CD_SENSOR_KIND_SPYDER3"/>
      <member name="last" value="17" c:identifier="CD_SENSOR_KIND_LAST"/>
    </enumeration>
    <record name="SensorPrivate" c:type="CdSensorPrivate" disguised="1">
      <doc xml:whitespace="preserve">Private #CdSensor data</doc>
    </record>
    <enumeration name="SensorState" c:type="CdSensorState">
      <doc xml:whitespace="preserve">The state of the sensor.</doc>
      <member name="unknown" value="0" c:identifier="CD_SENSOR_STATE_UNKNOWN"/>
      <member name="starting"
              value="1"
              c:identifier="CD_SENSOR_STATE_STARTING"/>
      <member name="idle" value="2" c:identifier="CD_SENSOR_STATE_IDLE"/>
      <member name="measuring"
              value="3"
              c:identifier="CD_SENSOR_STATE_MEASURING"/>
      <member name="busy" value="4" c:identifier="CD_SENSOR_STATE_BUSY"/>
      <member name="last" value="5" c:identifier="CD_SENSOR_STATE_LAST"/>
    </enumeration>
    <enumeration name="StandardSpace" c:type="CdStandardSpace">
      <doc xml:whitespace="preserve">A standard colorspace</doc>
      <member name="unknown"
              value="0"
              c:identifier="CD_STANDARD_SPACE_UNKNOWN"/>
      <member name="srgb" value="1" c:identifier="CD_STANDARD_SPACE_SRGB"/>
      <member name="adobe_rgb"
              value="2"
              c:identifier="CD_STANDARD_SPACE_ADOBE_RGB"/>
      <member name="prophoto_rgb"
              value="3"
              c:identifier="CD_STANDARD_SPACE_PROPHOTO_RGB"/>
      <member name="last" value="4" c:identifier="CD_STANDARD_SPACE_LAST"/>
    </enumeration>
    <record name="Vec3" c:type="CdVec3">
      <field name="v0" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="v1" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="v2" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <method name="add" c:identifier="cd_vec3_add">
        <doc xml:whitespace="preserve">Adds two vector quantaties
The arguments @src and @dest can be the same value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src2" transfer-ownership="none">
            <doc xml:whitespace="preserve">the other source</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">the destination</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="cd_vec3_clear">
        <doc xml:whitespace="preserve">Clears a vector, setting all it's values to zero.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="copy" c:identifier="cd_vec3_copy">
        <doc xml:whitespace="preserve">Copies the vector into another vector.
The arguments @src and @dest cannot be the same value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">the destination</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="cd_vec3_get_data">
        <doc xml:whitespace="preserve">Gets the raw data for the vector.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the pointer to the data segment.</doc>
          <type name="gdouble" c:type="gdouble*"/>
        </return-value>
      </method>
      <method name="init" c:identifier="cd_vec3_init">
        <doc xml:whitespace="preserve">Initialises a vector.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="v0" transfer-ownership="none">
            <doc xml:whitespace="preserve">component value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="v1" transfer-ownership="none">
            <doc xml:whitespace="preserve">component value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="v2" transfer-ownership="none">
            <doc xml:whitespace="preserve">component value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="scalar_multiply" c:identifier="cd_vec3_scalar_multiply">
        <doc xml:whitespace="preserve">Multiplies a vector with a scalar.
The arguments @src and @dest can be the same value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the scalar multiplier</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">the destination</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="squared_error" c:identifier="cd_vec3_squared_error">
        <doc xml:whitespace="preserve">Gets the mean squared error for a pair of vectors</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the floating point MSE.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="src2" transfer-ownership="none">
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subtract" c:identifier="cd_vec3_subtract">
        <doc xml:whitespace="preserve">Subtracts one vector quantaty from another
The arguments @src and @dest can be the same value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src2" transfer-ownership="none">
            <doc xml:whitespace="preserve">the other source</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">the destination</doc>
            <type name="Vec3" c:type="CdVec3*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="cd_vec3_to_string">
        <doc xml:whitespace="preserve">Obtains a string representaton of a vector.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the string. Free with g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
    </record>
    <function name="color_clear_xyz" c:identifier="cd_color_clear_xyz">
      <doc xml:whitespace="preserve">Initialises a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_convert_rgb8_to_rgb"
              c:identifier="cd_color_convert_rgb8_to_rgb">
      <doc xml:whitespace="preserve">Convert from one color format to another.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorRGB8" c:type="CdColorRGB8*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_convert_rgb_to_rgb8"
              c:identifier="cd_color_convert_rgb_to_rgb8">
      <doc xml:whitespace="preserve">Convert from one color format to another.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorRGB8" c:type="CdColorRGB8*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_convert_xyz_to_yxy"
              c:identifier="cd_color_convert_xyz_to_yxy">
      <doc xml:whitespace="preserve">Convert from one color format to another.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_convert_yxy_to_xyz"
              c:identifier="cd_color_convert_yxy_to_xyz">
      <doc xml:whitespace="preserve">Convert from one color format to another.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_copy_rgb" c:identifier="cd_color_copy_rgb">
      <doc xml:whitespace="preserve">Deep copies a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_copy_xyz" c:identifier="cd_color_copy_xyz">
      <doc xml:whitespace="preserve">Deep copies a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_copy_yxy" c:identifier="cd_color_copy_yxy">
      <doc xml:whitespace="preserve">Deep copies a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source color</doc>
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_set_rgb" c:identifier="cd_color_set_rgb">
      <doc xml:whitespace="preserve">Initialises a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorRGB" c:type="CdColorRGB*"/>
        </parameter>
        <parameter name="R" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="G" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="B" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_set_xyz" c:identifier="cd_color_set_xyz">
      <doc xml:whitespace="preserve">Initialises a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorXYZ" c:type="CdColorXYZ*"/>
        </parameter>
        <parameter name="X" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="Y" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="Z" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="color_set_yxy" c:identifier="cd_color_set_yxy">
      <doc xml:whitespace="preserve">Initialises a color value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination color</doc>
          <type name="ColorYxy" c:type="CdColorYxy*"/>
        </parameter>
        <parameter name="Y" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:whitespace="preserve">component value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="colorspace_from_string"
              c:identifier="cd_colorspace_from_string">
      <return-value transfer-ownership="none">
        <type name="Colorspace" c:type="CdColorspace"/>
      </return-value>
      <parameters>
        <parameter name="colorspace" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="colorspace_to_string"
              c:identifier="cd_colorspace_to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="colorspace" transfer-ownership="none">
          <type name="Colorspace" c:type="CdColorspace"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_clear" c:identifier="cd_mat33_clear">
      <doc xml:whitespace="preserve">Clears a matrix value, setting all it's values to zero.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_copy" c:identifier="cd_mat33_copy">
      <doc xml:whitespace="preserve">Copies the matrix.
The arguments @src and @dest cannot be the same value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%FALSE if det is zero (singular).</doc>
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_determinant" c:identifier="cd_mat33_determinant">
      <doc xml:whitespace="preserve">Gets the determinant of the matrix.</doc>
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_get_data" c:identifier="cd_mat33_get_data">
      <doc xml:whitespace="preserve">Gets the raw data for the matrix.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the pointer to the data segment.</doc>
        <type name="gdouble" c:type="gdouble*"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the matrix source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_matrix_multiply"
              c:identifier="cd_mat33_matrix_multiply">
      <doc xml:whitespace="preserve">Multiply (convolve) one matrix with another.
The arguments @mat_src1 cannot be the same as @mat_dest, and
@mat_src2 cannot be the same as @mat_dest.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="mat_src1" transfer-ownership="none">
          <doc xml:whitespace="preserve">the matrix source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="mat_src2" transfer-ownership="none">
          <doc xml:whitespace="preserve">the other matrix source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="mat_dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_reciprocal" c:identifier="cd_mat33_reciprocal">
      <doc xml:whitespace="preserve">Inverts the matrix.
The arguments @src and @dest cannot be the same value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%FALSE if det is zero (singular).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_scalar_multiply"
              c:identifier="cd_mat33_scalar_multiply">
      <doc xml:whitespace="preserve">Multiplies a matrix with a scalar.
The arguments @vec_src and @vec_dest can be the same value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="mat_src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">the scalar</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="mat_dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_set_identity" c:identifier="cd_mat33_set_identity">
      <doc xml:whitespace="preserve">Sets the matrix to an identity value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_to_string" c:identifier="cd_mat33_to_string">
      <doc xml:whitespace="preserve">Obtains a string representaton of a matrix.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">the string. Free with g_free()</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="mat33_vector_multiply"
              c:identifier="cd_mat33_vector_multiply">
      <doc xml:whitespace="preserve">Multiplies a matrix with a vector.
The arguments @vec_src and @vec_dest cannot be the same value.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="mat_src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the matrix source</doc>
          <type name="Mat3x3" c:type="CdMat3x3*"/>
        </parameter>
        <parameter name="vec_src" transfer-ownership="none">
          <doc xml:whitespace="preserve">the vector source</doc>
          <type name="Vec3" c:type="CdVec3*"/>
        </parameter>
        <parameter name="vec_dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">the destination vector</doc>
          <type name="Vec3" c:type="CdVec3*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_scope_from_string"
              c:identifier="cd_object_scope_from_string">
      <return-value transfer-ownership="none">
        <type name="ObjectScope" c:type="CdObjectScope"/>
      </return-value>
      <parameters>
        <parameter name="object_scope" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_scope_to_string"
              c:identifier="cd_object_scope_to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="object_scope" transfer-ownership="none">
          <type name="ObjectScope" c:type="CdObjectScope"/>
        </parameter>
      </parameters>
    </function>
    <function name="rendering_intent_from_string"
              c:identifier="cd_rendering_intent_from_string">
      <return-value transfer-ownership="none">
        <type name="RenderingIntent" c:type="CdRenderingIntent"/>
      </return-value>
      <parameters>
        <parameter name="rendering_intent" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rendering_intent_to_string"
              c:identifier="cd_rendering_intent_to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="rendering_intent" transfer-ownership="none">
          <type name="RenderingIntent" c:type="CdRenderingIntent"/>
        </parameter>
      </parameters>
    </function>
    <function name="standard_space_from_string"
              c:identifier="cd_standard_space_from_string">
      <doc xml:whitespace="preserve">Gets the standard colorspace as a enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">a #CdStandardSpace</doc>
        <type name="StandardSpace" c:type="CdStandardSpace"/>
      </return-value>
      <parameters>
        <parameter name="standard_space" transfer-ownership="none">
          <doc xml:whitespace="preserve">the standard colorspace, e.g. 'srgb'.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="standard_space_to_string"
              c:identifier="cd_standard_space_to_string">
      <doc xml:whitespace="preserve">Gets the standard colorspace as a string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the standard colorspace, e.g. 'srgb'.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="standard_space" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #CdStandardSpace</doc>
          <type name="StandardSpace" c:type="CdStandardSpace"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
