CHAI SDK  Version 1.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Specialized devices

The SDK provides a general purpose Device, but also a number of Devices dedicated for specific operations.

BaseLocalDevice

CPNS::IBaseLocalDevice (inheriting from CPNS::IObject) is the base interface for all Local Devices.

A Local Device has capabilities flags giving information about its application domain or telling about special features it supports.

This interface can represent a Root Device (ModuleID = zero) or a Module (child device whose ModuleID is non-zero ).

If a Local Device is a parent (modules are attached behind), it exposes a combination of all its children Device Capabilities. So, it is possible to quickly find a Root Device hosting a sub-device (or Module) having specific capabilities.

LocalDevice

CPNS::ILocalDevice (inheriting from CPNS::IBaseLocalDevice) is used to handle a generic purpose local device. It does not contains any Input or Output, it's up to the developer to customize it as needed.

Note
The following Local Devices include predefined functionality to ease the application developer's job. Note that those dedicated Local Devices inherit from CPNS::IBaseLocalDevice and are also fully customizable, exactly like CPNS::ILocalDevice .

CP2MIDILocalDevice

CPNS::ICP2MIDILocalDevice (inheriting from CPNS::IBaseLocalDevice) is a CopperLan to MIDI translator. It is predefined with 17 Inputs: one for each of 16 MIDI channels, and the last one for channel-independent features including clock. The device can be used as Virtual MIDI Cable target, and it notifies the application with MIDI data stream, ready to be used as-is in a pure MIDI context. This device automatically exhibits the CPNS::Enums::DC_CP2MIDI device capability.

MIDI2CPLocalDevice

CPNS::IMIDI2CPLocalDevice (inheriting from CPNS::IBaseLocalDevice) is a MIDI to CopperLan translator. It exposes 18 Outputs, one for channel independent features (except clock-related), one for clock-related features, and one for each MIDI channel. This device is fed with raw MIDI data stream, and sends related CopperLan native messages from its Outputs. This device automatically exhibits the CPNS::Enums::DC_MIDI2CP device capability.

HybridLocalDevice

CPNS::IHybridMIDILocalDevice (inheriting from CPNS::IBaseLocalDevice) is equipped with both MIDI to CopperLan and CopperLan to MIDI translators. It shows 18 Outputs and 17 Inputs as detailed hereabove. This device automatically exhibits the CPNS::Enums::DC_CP2MIDI and CPNS::Enums::DC_MIDI2CP device capabilities.

SharedDisplayClientLocalDevice

CPNS::ISharedDisplayClientLocalDevice (inheriting from CPNS::IBaseLocalDevice) is a Shared Display client device. This kind of device can be used in a black-box kind of product, devoid of screen and keyboard. It is able to request access to these human interfaces over the network and, when found, manage the communication with a Shared Display Local Device, sending screen updates and receiving keyboard entries.

SharedDisplayLocalDevice

CPNS::ISharedDisplayLocalDevice (inheriting from CPNS::IBaseLocalDevice) offers Shared Display services that can be remotely used by a Shared Display Client Local Device. A Shared Display device automatically exhibits the CPNS::Enums::DC_SharedDisplay capability.