Configuration options for a Device.
The options set here will remain constant over the lifetime of a Device.
Public Member Functions | |
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 | withFunctionBlock (FunctionBlock x) const |
The function block layout of this device. | |
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 | withMaxSysExSize (size_t x) const |
The maximum size of sysex messages to accept and to produce. | |
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. | |
DeviceOptions | withProductInstanceId (const std::array< char, 16 > &x) const |
Specifies a product instance ID that will be returned in endpoint response messages. | |
const auto & | getOutputs () const |
const auto & | getFunctionBlock () const |
const auto & | getDeviceInfo () const |
const auto & | getFeatures () const |
const auto & | getMaxSysExSize () const |
const auto & | getProductInstanceId () const |
const auto & | getProfileDelegate () const |
const auto & | getPropertyDelegate () const |
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 |
|
static |
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 juce::Random::nextInt().
|
nodiscard |
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 juce::withMember(), and x.
|
nodiscard |
The function block layout of this device.
References juce::withMember(), and x.
|
nodiscard |
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 juce::withMember(), and x.
|
nodiscard |
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 juce::withMember(), and x.
|
nodiscard |
The maximum size of sysex messages to accept and to produce.
References juce::withMember(), and x.
|
nodiscard |
Specifies a profile delegate that can be used to respond to particular profile events.
The referenced ProfileDelegate must outlive the Device.
References juce::withMember(), and x.
|
nodiscard |
Specifies a property delegate that can be used to respond to particular property events.
The referenced PropertyDelegate must outlive the Device.
References juce::withMember(), and x.
|
nodiscard |
Specifies a product instance ID that will be returned in endpoint response messages.
References jassertfalse, juce::withMember(), and x.
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
nodiscard |
|
staticconstexpr |
|
staticconstexpr |