## org.freedesktop.ColorManager.Device org.freedesktop.ColorManager.Device — Device interface |

## Methods

    SetProperty(in's'property_name,
    in's'property_value)
    AddProfile(in's'relation,
    in'o'object_path)
    RemoveProfile(in'o'object_path)
    MakeProfileDefault(in'o'profile_path)
    GetProfileForQualifiers(in'as'qualifiers,
    out'o'object_path)
    GetProfileRelation(in'o'object_path,
    out's'relation)
    ProfilingInhibit()
    ProfilingUninhibit()
    SetEnabled(in'b'enabled)

## Signals

    Changed()

## Implemented Interfaces

Objects implementing org.freedesktop.ColorManager.Device also implements org.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties

## Properties

    'Created'read't'
    'Modified'read't'
    'Model'read's'
    'Serial'read's'
    'Vendor'read's'
    'Colorspace'read's'
    'Kind'read's'
    'DeviceId'read's'
    'Profiles'read'ao'
    'Mode'read's'
    'Format'read's'
    'Scope'read's'
    'Owner'read'u'
    'Enabled'read'b'
    'Seat'read's'
    'Embedded'read'b'
    'Metadata'read'a{ss}'
    'ProfilingInhibitors'read'as'

## Description

The interface used for quering color parameters for a specific device.

## Details

### SetProperty ()

    SetProperty (in's'property_name,
    in's'property_value)

Sets a property on the object.

`property_name`: | The property name, e.g. `Model`.
`property_value`: | The property value, e.g. `RGB.Plain.`.

### AddProfile ()

    AddProfile (in's'relation,
    in'o'object_path)

Adds a profile to the device. The profile must have been previously created.

This method also stores the device to profile mapping in a persistent datadase, so that if the device and profile happen to both exist in the future, the profiles are auto-added to the device.

`relation`: | The strength of the relationship from profile to device. This can be `soft` to indicate that the mapping is not important, or that the profile is assumed from a device and not in response to user action. The default option is `hard`, and this means that the user has explicitly mapped a profile to a device, and this should take precidence over any `soft` profiles. If the user makes a `soft` profile default, then it is explicitly promoted to a `hard` relationship.
`object_path`: | The profile path to add.

### RemoveProfile ()

    RemoveProfile (in'o'object_path)

Removes a profile for a device.

This method also removes the device to profile mapping from a persistent datadase, so that if the device and profile happen to both exist in the future, the profiles are no longer auto-added to the device.

If the profile was automatically added due to metadata in the profile (e.g. the profile was created for the device) then manually removing the profile will cause this metadata add to be supressed. This allows the user to remove old or obsolete profiles from any color control panel without having to delete them.

`object_path`: | The profile ID that has already been added to the device.

### MakeProfileDefault ()

    MakeProfileDefault (in'o'profile_path)

Sets the default profile for a device.

`profile_path`: | The profile ID that has already been added to the device.

### GetProfileForQualifiers ()

    GetProfileForQualifiers (in'as'qualifiers,
    out'o'object_path)

Gets a single profile object path for a qualifier. The search term can contain '*' and '?' wildcards.

`qualifiers`: | An array of qualifiers, e.g. `['RGB.*.300dpi', 'RGB.*.*', '*.*.*']`. If the qualifier `*` is specified then the default profile is returned.
`object_path`: | The profile path for the search terms.

### GetProfileRelation ()

    GetProfileRelation (in'o'object_path,
    out's'relation)

Gets a profile relation for a given profile that has been added to this device.

`object_path`: | A profile object path.
`relation`: | The profile to device relation, e.g. `hard`.

### ProfilingInhibit ()

    ProfilingInhibit ()

Adds an inhibit on all profiles for this device. This means that any calls to `GetProfileForQualifier` will always match no profiles.

This method will be used when creating profiles for devices, where the session color manager wants to be very sure that no profiles are being applied wen displaying color samples or printing color swatches.

If the calling program exits without calling `ProfilingUninhibit` then the inhibit is automatically removed.

### ProfilingUninhibit ()

    ProfilingUninhibit ()

Removes an inhibit on the device. This method should be used when profiling has finished and normal device matching behaviour should resume.

### SetEnabled ()

    SetEnabled (in'b'enabled)

Sets the device enable state.

`enabled`: | If the device is enabled.

## Signal Details

### The Changed signal

    Changed ()

Some value on the interface has changed.

## Property Details

### The "Created" property

    'Created'read't'

The date the device was created.

### The "Modified" property

    'Modified'read't'

The date the device was last modified, which in this instance means having a profile added or removed, or a different profile set as default.

### The "Model" property

    'Model'read's'

The device model string.

### The "Serial" property

    'Serial'read's'

The device serial string.

### The "Vendor" property

    'Vendor'read's'

The device vendor string.

### The "Colorspace" property

    'Colorspace'read's'

The device supported colorspace string, e.g. `RGB`.

### The "Kind" property

    'Kind'read's'

The device kind, e.g. `scanner`, `display`, `printer` or `camera`

### The "DeviceId" property

    'DeviceId'read's'

The device id string.

### The "Profiles" property

    'Profiles'read'ao'

The profile paths associated with this device. Profiles are returned even if the device is disabled or is profiling, and clients should not assume that the first profile in this array should be applied.

### The "Mode" property

    'Mode'read's'

The mode of the device, e.g. `virtual`, `physical` or `unknown`.

Virtual devices are not tied to a specific item of hardware and can represent abstract devices such as "Boots Photo Lab".

Physical devices correspond to a connected device that cannot be removed by client software.

If a virtual 'disk' device gets added by a client then it is promoted to a 'physical' device. This can happen if a printer is saved and then restored at next boot before the CUPS daemon is running.

### The "Format" property

    'Format'read's'

The qualifier format for the device, e.g. `ColorModel.OutputMode.OutputResolution`.

### The "Scope" property

    'Scope'read's'

The scope of the device, e.g. `normal`, `temp` or `disk`.

### The "Owner" property

    'Owner'read'u'

The user ID of the account that created the device.

### The "Enabled" property

    'Enabled'read'b'

If the device is enabled. Devices are enabled by default until `Device.SetEnabled(False)` is called. If the enabled state is changed then this is reflected for all users and persistent across reboots.

If a device is not enabled then no profiles can be added or removed and the default cannot be changed.

### The "Seat" property

    'Seat'read's'

The seat that the device belongs to, or an empty string for none or unknown.

### The "Embedded" property

    'Embedded'read'b'

If the device is embedded into the hardware itself, for example the internal webcam or laptop screen.

### The "Metadata" property

    'Metadata'read'a{ss}'

The metadata for the device, which may include optional keys like `XRANDR_name`.

### The "ProfilingInhibitors" property

    'ProfilingInhibitors'read'as'

The bus names of all the clients that have inhibited the device for profiling. e.g. `[ ":1.99", ":1.109" ]`