Configuration options for a Device. More...
#include <juce_CIDeviceOptions.h>

Public Member Functions | |
| const auto & | getDeviceInfo () const |
| const auto & | getFeatures () const |
| const auto & | getFunctionBlock () const |
| const auto & | getMaxSysExSize () const |
| const auto & | getOutputs () const |
| const auto & | getProductInstanceId () const |
| const auto & | getProfileDelegate () const |
| const auto & | getPropertyDelegate () const |
| DeviceOptions | withDeviceInfo (const ump::DeviceInfo &x) const |
| Basic information about the device used to determine manufacturer, model, etc. | |
| DeviceOptions | withFeatures (DeviceFeatures x) const |
| The features that you want to enable on the device. | |
| DeviceOptions | withFunctionBlock (FunctionBlock x) const |
| The function block layout of this device. | |
| DeviceOptions | withMaxSysExSize (size_t x) const |
| The maximum size of sysex messages to accept and to produce. | |
| DeviceOptions | withOutputs (std::vector< DeviceMessageHandler * > x) const |
| One or more DeviceMessageHandlers that should receive callbacks with any messages that the device wishes to send. | |
| DeviceOptions | withProductInstanceId (const std::array< char, 16 > &x) const |
| Specifies a product instance ID that will be returned in endpoint response messages. | |
| DeviceOptions | withProfileDelegate (ProfileDelegate *x) const |
| Specifies a profile delegate that can be used to respond to particular profile events. | |
| DeviceOptions | withPropertyDelegate (PropertyDelegate *x) const |
| Specifies a property delegate that can be used to respond to particular property events. | |
Static Public Member Functions | |
| static std::array< char, 16 > | makeProductInstanceId (Random &random) |
| Creates a random product instance ID. | |
Static Public Attributes | |
| static constexpr auto | beginValidAscii = 32 |
| static constexpr auto | endValidAscii = 127 |
Private Attributes | |
| ump::DeviceInfo | deviceInfo |
| DeviceFeatures | features |
| FunctionBlock | functionBlock |
| size_t | maxSysExSize = 512 |
| std::vector< DeviceMessageHandler * > | outputs |
| std::array< char, 16 > | productInstanceId {} |
| ProfileDelegate * | profileDelegate = nullptr |
| PropertyDelegate * | propertyDelegate = nullptr |
Configuration options for a Device.
The options set here will remain constant over the lifetime of a Device.
@tags{Audio}
|
inline |
References deviceInfo.
|
inline |
References features.
|
inline |
References functionBlock.
|
inline |
References maxSysExSize.
|
inline |
References outputs.
|
inline |
References productInstanceId.
|
inline |
References profileDelegate.
|
inline |
References propertyDelegate.
|
inlinestatic |
Creates a random product instance ID.
This isn't really recommended - it's probably better to have a unique ID that remains persistent after a restart.
References beginValidAscii, endValidAscii, and juce::Random::nextInt().
|
inline |
Basic information about the device used to determine manufacturer, model, etc.
In order to populate this correctly, you'll need to register with the MIDI association - otherwise you might accidentally end up using IDs that are already assigned to other companies/individuals.
References deviceInfo, and juce::withMember().
|
inline |
The features that you want to enable on the device.
If you enable property exchange, you may wish to supply a PropertyDelegate using withPropertyDelegate(). If you enable profile configuration, you may wish to supply a ProfileDelegate using withProfileDelegate(). Process inquiry is not currently supported.
References features, and juce::withMember().
|
inline |
The function block layout of this device.
References functionBlock, and juce::withMember().
|
inline |
The maximum size of sysex messages to accept and to produce.
References maxSysExSize, and juce::withMember().
|
inline |
One or more DeviceMessageHandlers that should receive callbacks with any messages that the device wishes to send.
Referenced DeviceMessageHandlers must outlive any Device constructed from these options.
References outputs, and juce::withMember().
|
inline |
Specifies a product instance ID that will be returned in endpoint response messages.
References jassertfalse, productInstanceId, and juce::withMember().
|
inline |
Specifies a profile delegate that can be used to respond to particular profile events.
The referenced ProfileDelegate must outlive the Device.
References profileDelegate, and juce::withMember().
|
inline |
Specifies a property delegate that can be used to respond to particular property events.
The referenced PropertyDelegate must outlive the Device.
References propertyDelegate, and juce::withMember().
|
staticconstexpr |
Referenced by makeProductInstanceId().
|
private |
Referenced by getDeviceInfo(), and withDeviceInfo().
|
staticconstexpr |
Referenced by makeProductInstanceId().
|
private |
Referenced by getFeatures(), and withFeatures().
|
private |
Referenced by getFunctionBlock(), and withFunctionBlock().
|
private |
Referenced by getMaxSysExSize(), and withMaxSysExSize().
|
private |
Referenced by getOutputs(), and withOutputs().
|
private |
Referenced by getProductInstanceId(), and withProductInstanceId().
|
private |
Referenced by getProfileDelegate(), and withProfileDelegate().
|
private |
Referenced by getPropertyDelegate(), and withPropertyDelegate().