Loading...
Searching...
No Matches
midi_ci::DeviceOptions Class Reference

Configuration options for a Device. More...

#include <juce_CIDeviceOptions.h>

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
 

Detailed Description

Configuration options for a Device.

The options set here will remain constant over the lifetime of a Device.

Member Function Documentation

◆ makeProductInstanceId()

static std::array< char, 16 > midi_ci::DeviceOptions::makeProductInstanceId ( Random & random)
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 beginValidAscii, endValidAscii, and Random::nextInt().

◆ withOutputs()

DeviceOptions midi_ci::DeviceOptions::withOutputs ( std::vector< DeviceMessageHandler * > x) const
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 withMember(), and x.

◆ withFunctionBlock()

DeviceOptions midi_ci::DeviceOptions::withFunctionBlock ( FunctionBlock x) const
nodiscard

The function block layout of this device.

References withMember(), and x.

◆ withDeviceInfo()

DeviceOptions midi_ci::DeviceOptions::withDeviceInfo ( const ump::DeviceInfo & x) const
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 withMember(), and x.

◆ withFeatures()

DeviceOptions midi_ci::DeviceOptions::withFeatures ( DeviceFeatures x) const
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 withMember(), and x.

◆ withMaxSysExSize()

DeviceOptions midi_ci::DeviceOptions::withMaxSysExSize ( size_t x) const
nodiscard

The maximum size of sysex messages to accept and to produce.

References withMember(), and x.

◆ withProfileDelegate()

DeviceOptions midi_ci::DeviceOptions::withProfileDelegate ( ProfileDelegate * x) const
nodiscard

Specifies a profile delegate that can be used to respond to particular profile events.

The referenced ProfileDelegate must outlive the Device.

References withMember(), and x.

◆ withPropertyDelegate()

DeviceOptions midi_ci::DeviceOptions::withPropertyDelegate ( PropertyDelegate * x) const
nodiscard

Specifies a property delegate that can be used to respond to particular property events.

The referenced PropertyDelegate must outlive the Device.

References withMember(), and x.

◆ withProductInstanceId()

DeviceOptions midi_ci::DeviceOptions::withProductInstanceId ( const std::array< char, 16 > & x) const
nodiscard

Specifies a product instance ID that will be returned in endpoint response messages.

References jassertfalse, withMember(), and x.

◆ getOutputs()

const auto & midi_ci::DeviceOptions::getOutputs ( ) const
nodiscard
See also
withOutputs()

◆ getFunctionBlock()

const auto & midi_ci::DeviceOptions::getFunctionBlock ( ) const
nodiscard

◆ getDeviceInfo()

const auto & midi_ci::DeviceOptions::getDeviceInfo ( ) const
nodiscard

◆ getFeatures()

const auto & midi_ci::DeviceOptions::getFeatures ( ) const
nodiscard
See also
withFeatures()

◆ getMaxSysExSize()

const auto & midi_ci::DeviceOptions::getMaxSysExSize ( ) const
nodiscard

◆ getProductInstanceId()

const auto & midi_ci::DeviceOptions::getProductInstanceId ( ) const
nodiscard

◆ getProfileDelegate()

const auto & midi_ci::DeviceOptions::getProfileDelegate ( ) const
nodiscard

◆ getPropertyDelegate()

const auto & midi_ci::DeviceOptions::getPropertyDelegate ( ) const
nodiscard

Member Data Documentation

◆ beginValidAscii

auto midi_ci::DeviceOptions::beginValidAscii = 32
staticconstexpr

Referenced by makeProductInstanceId().

◆ endValidAscii

auto midi_ci::DeviceOptions::endValidAscii = 127
staticconstexpr

Referenced by makeProductInstanceId().


The documentation for this class was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram