CHAI SDK  Version 1.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Device capabilities and properties

A sheer amount of information accompanies Devices. Much of it can be used for filtering during device search via enumeration.

Device capabilities

Device Capabilities is a bit-field whose values are defined in the CPNS::Enums::DeviceCapabilities enum. It can be easily manipulated using CPNS::CombinedDeviceCapabilities.

This bit-field exposes basic information about a device and can be used as filtering flags during device enumeration.

Most Device Capabilities are automatically set by the CHAI according to the type of local device created and the notification handlers registered.

Information available:

  • the device is hidden or visible
  • the device has special functionality:
    • CHAI - this is the CHAI's own device, normally hidden
    • MIDI bridge - the device is a MIDI bridge
    • Shared Display - the device offers Share Display services
    • SmartConnect source - The device is compliant with the SmartConnect mechanism
    • SmartConnect Target - The device is compliant with the SmartConnect mechanism
  • it is supporting Snapshot
  • it is a parent, meaning that it makes sense to explore its sub-devices.
  • it is supporting CopperLan enhanced musicality
  • it is an general instrument
  • it is a percussion instrument
  • it is an effect
Note
A device maintains its own Device Capabilities, but also the value consolidated from all its sub-devices. Beware that the value used to filter enumeration is the consolidated one!

Extended capabilities

Extended Device Capabilities is a bit-field whose values are defined in the CPNS::Enums::ExtendedDeviceCapabilities enum. It can be easily manipulated using CPNS::CombinedExtendedDeviceCapabilities.

It is possible to specify additional capabilities telling more about the device. However, the Extended Device Capabilities cannot be used as filtering key during enumeration.

Extended device capabilities are set during device creation and can be modified later using CPNS::IBaseLocalDevice::SetExtendedDevCaps. Those values can be used to flag the device as part of one or more usage categories (such as Performance for music instruments or other equipment used by performers, Sound Production for everything related to mixing, sound processing, etc.)

It can be also used to specify that the device is an embedded system, that is supports flow control or some generic changes (name, duplicate info, groups)...

Properties

A Device also exposes a set of alphanumeric and numeric properties. These are a convenient way to provide additional standard or custom information.

The standard properties are identified by the CPNS::Enums::DeviceProperties values. Most of them are system properties, meaning that they are automatically provided by CopperLan.

Properties can be set or modified at any time.