JUCE  v5.4.1-191-g0ab5e696f
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce_BlocksProtocolDefinitions.h File Reference

Classes

struct  juce::BlocksProtocol::BlockSerialNumber
 Structure describing a block's serial number. More...
 
struct  juce::BlocksProtocol::BlockStringData< MaxSize >
 Structure for generic block data. More...
 
struct  juce::BlocksProtocol::DeviceConnection
 Structure for the device connection. More...
 
struct  juce::BlocksProtocol::DeviceName
 Structure used for the device name. More...
 
struct  juce::BlocksProtocol::DeviceStatus
 Structure for the device status. More...
 
struct  juce::BlocksProtocol::DeviceVersion
 Structure for the device version. More...
 
struct  juce::BlocksProtocol::TouchPosition
 The coordinates of a touch. More...
 
struct  juce::BlocksProtocol::TouchVelocity
 The velocities for each dimension of a touch. More...
 

Namespaces

 juce
 
 juce::BlocksProtocol
 

Typedefs

using juce::BlocksProtocol::BatteryCharging = IntegerWithBitSize< 1 >
 Battery charger connection flag. More...
 
using juce::BlocksProtocol::BatteryLevel = IntegerWithBitSize< 5 >
 Battery charge level. More...
 
using juce::BlocksProtocol::BlockName = BlockStringData< 33 >
 
using juce::BlocksProtocol::ByteCountFew = IntegerWithBitSize< 4 >
 
using juce::BlocksProtocol::ByteCountMany = IntegerWithBitSize< 8 >
 
using juce::BlocksProtocol::ByteSequenceContinues = IntegerWithBitSize< 1 >
 
using juce::BlocksProtocol::ByteValue = IntegerWithBitSize< 8 >
 
using juce::BlocksProtocol::ConfigCommand = IntegerWithBitSize< 4 >
 
using juce::BlocksProtocol::ConfigItemIndex = IntegerWithBitSize< 8 >
 
using juce::BlocksProtocol::ConfigItemValue = IntegerWithBitSize< 32 >
 
using juce::BlocksProtocol::ConnectionCount = IntegerWithBitSize< 8 >
 
using juce::BlocksProtocol::ConnectorPort = IntegerWithBitSize< 5 >
 ConnectorPort is an index, starting at 0 for the leftmost port on the top edge, and going clockwise. More...
 
using juce::BlocksProtocol::ControlButtonID = IntegerWithBitSize< 12 >
 An ID for a control-block button type. More...
 
using juce::BlocksProtocol::DataChangeCommand = IntegerWithBitSize< 3 >
 
using juce::BlocksProtocol::DeviceCommand = IntegerWithBitSize< 9 >
 
using juce::BlocksProtocol::DeviceCount = IntegerWithBitSize< 7 >
 
using juce::BlocksProtocol::FirmwareUpdateACKCode = IntegerWithBitSize< 7 >
 
using juce::BlocksProtocol::FirmwareUpdateACKDetail = IntegerWithBitSize< 32 >
 
using juce::BlocksProtocol::FirmwareUpdatePacketSize = IntegerWithBitSize< 7 >
 
using juce::BlocksProtocol::MessageType = IntegerWithBitSize< 7 >
 This is the first item in a BLOCKS message, identifying the message type. More...
 
using juce::BlocksProtocol::PacketCounter = IntegerWithBitSize< 10 >
 
using juce::BlocksProtocol::PacketIndex = IntegerWithBitSize< 16 >
 
using juce::BlocksProtocol::PacketTimestamp = IntegerWithBitSize< 32 >
 A timestamp for a packet, in milliseconds since device boot-up. More...
 
using juce::BlocksProtocol::PacketTimestampOffset = IntegerWithBitSize< 5 >
 This relative timestamp is for use inside a packet, and it represents a number of milliseconds that should be added to the packet's timestamp. More...
 
using juce::BlocksProtocol::ProtocolVersion = IntegerWithBitSize< 8 >
 
using juce::BlocksProtocol::RotaryDialAngle = IntegerWithBitSize< 14 >
 
using juce::BlocksProtocol::RotaryDialDelta = IntegerWithBitSize< 14 >
 
using juce::BlocksProtocol::RotaryDialIndex = IntegerWithBitSize< 7 >
 
using juce::BlocksProtocol::TopologyIndex = uint8
 This is a type of index identifier used to refer to a block within a group. More...
 
using juce::BlocksProtocol::TouchIndex = IntegerWithBitSize< 5 >
 The index of a touch, i.e. More...
 
using juce::BlocksProtocol::VersionNumber = BlockStringData< 21 >
 

Enumerations

enum  juce::BlocksProtocol::BitSizes {
  juce::BlocksProtocol::topologyMessageHeader = MessageType::bits + ProtocolVersion::bits + DeviceCount::bits + ConnectionCount::bits,
  juce::BlocksProtocol::topologyDeviceInfo = sizeof (BlockSerialNumber) * 7 + BatteryLevel::bits + BatteryCharging::bits,
  juce::BlocksProtocol::topologyConnectionInfo = topologyIndexBits + ConnectorPort::bits + topologyIndexBits + ConnectorPort::bits,
  juce::BlocksProtocol::typeDeviceAndTime = MessageType::bits + PacketTimestampOffset::bits,
  juce::BlocksProtocol::touchMessage = typeDeviceAndTime + TouchIndex::bits + TouchPosition::bits,
  juce::BlocksProtocol::touchMessageWithVelocity = touchMessage + TouchVelocity::bits,
  juce::BlocksProtocol::programEventMessage = MessageType::bits + 32 * numProgramMessageInts,
  juce::BlocksProtocol::programEventMessage = 0x28,
  juce::BlocksProtocol::programEventMessage = 0x03,
  juce::BlocksProtocol::packetACK = MessageType::bits + PacketCounter::bits,
  juce::BlocksProtocol::packetACK = 0x02,
  juce::BlocksProtocol::firmwareUpdateACK = MessageType::bits + FirmwareUpdateACKCode::bits + FirmwareUpdateACKDetail::bits,
  juce::BlocksProtocol::firmwareUpdateACK = 0x03,
  juce::BlocksProtocol::controlButtonMessage = typeDeviceAndTime + ControlButtonID::bits,
  juce::BlocksProtocol::configSetMessage = MessageType::bits + ConfigCommand::bits + ConfigItemIndex::bits + ConfigItemValue::bits,
  juce::BlocksProtocol::configRespMessage = MessageType::bits + ConfigCommand::bits + ConfigItemIndex::bits + (ConfigItemValue::bits * 3),
  juce::BlocksProtocol::configSyncEndMessage = MessageType::bits + ConfigCommand::bits
}
 Contains the number of bits required to encode various items in the packets. More...
 
enum  juce::BlocksProtocol::ConfigCommands {
  juce::BlocksProtocol::setConfig = 0x00,
  juce::BlocksProtocol::requestConfig = 0x01,
  juce::BlocksProtocol::requestFactorySync = 0x02,
  juce::BlocksProtocol::requestUserSync = 0x03,
  juce::BlocksProtocol::updateConfig = 0x04,
  juce::BlocksProtocol::updateUserConfig = 0x05,
  juce::BlocksProtocol::setConfigState = 0x06,
  juce::BlocksProtocol::factorySyncEnd = 0x07,
  juce::BlocksProtocol::clusterConfigSync = 0x08,
  juce::BlocksProtocol::factorySyncReset = 0x09
}
 
enum  juce::BlocksProtocol::ConfigItemId {
  juce::BlocksProtocol::midiStartChannel = 0,
  juce::BlocksProtocol::midiEndChannel = 1,
  juce::BlocksProtocol::midiUseMPE = 2,
  juce::BlocksProtocol::pitchBendRange = 3,
  juce::BlocksProtocol::octave = 4,
  juce::BlocksProtocol::transpose = 5,
  juce::BlocksProtocol::slideCC = 6,
  juce::BlocksProtocol::slideMode = 7,
  juce::BlocksProtocol::octaveTopology = 8,
  juce::BlocksProtocol::midiChannelRange = 9,
  juce::BlocksProtocol::MPEZone = 40,
  juce::BlocksProtocol::velocitySensitivity = 10,
  juce::BlocksProtocol::glideSensitivity = 11,
  juce::BlocksProtocol::slideSensitivity = 12,
  juce::BlocksProtocol::pressureSensitivity = 13,
  juce::BlocksProtocol::liftSensitivity = 14,
  juce::BlocksProtocol::fixedVelocity = 15,
  juce::BlocksProtocol::fixedVelocityValue = 16,
  juce::BlocksProtocol::pianoMode = 17,
  juce::BlocksProtocol::glideLock = 18,
  juce::BlocksProtocol::glideLockEnable = 19,
  juce::BlocksProtocol::mode = 20,
  juce::BlocksProtocol::volume = 21,
  juce::BlocksProtocol::scale = 22,
  juce::BlocksProtocol::hideMode = 23,
  juce::BlocksProtocol::chord = 24,
  juce::BlocksProtocol::arpPattern = 25,
  juce::BlocksProtocol::tempo = 26,
  juce::BlocksProtocol::xTrackingMode = 30,
  juce::BlocksProtocol::yTrackingMode = 31,
  juce::BlocksProtocol::zTrackingMode = 32,
  juce::BlocksProtocol::gammaCorrection = 33,
  juce::BlocksProtocol::user0 = 64,
  juce::BlocksProtocol::user1 = 65,
  juce::BlocksProtocol::user2 = 66,
  juce::BlocksProtocol::user3 = 67,
  juce::BlocksProtocol::user4 = 68,
  juce::BlocksProtocol::user5 = 69,
  juce::BlocksProtocol::user6 = 70,
  juce::BlocksProtocol::user7 = 71,
  juce::BlocksProtocol::user8 = 72,
  juce::BlocksProtocol::user9 = 73,
  juce::BlocksProtocol::user10 = 74,
  juce::BlocksProtocol::user11 = 75,
  juce::BlocksProtocol::user12 = 76,
  juce::BlocksProtocol::user13 = 77,
  juce::BlocksProtocol::user14 = 78,
  juce::BlocksProtocol::user15 = 79,
  juce::BlocksProtocol::user16 = 80,
  juce::BlocksProtocol::user17 = 81,
  juce::BlocksProtocol::user18 = 82,
  juce::BlocksProtocol::user19 = 83,
  juce::BlocksProtocol::user20 = 84,
  juce::BlocksProtocol::user21 = 85,
  juce::BlocksProtocol::user22 = 86,
  juce::BlocksProtocol::user23 = 87,
  juce::BlocksProtocol::user24 = 88,
  juce::BlocksProtocol::user25 = 89,
  juce::BlocksProtocol::user26 = 90,
  juce::BlocksProtocol::user27 = 91,
  juce::BlocksProtocol::user28 = 92,
  juce::BlocksProtocol::user29 = 93,
  juce::BlocksProtocol::user30 = 94,
  juce::BlocksProtocol::user31 = 95
}
 Configuration Item Identifiers. More...
 
enum  juce::BlocksProtocol::DataChangeCommands {
  juce::BlocksProtocol::endOfPacket = 0,
  juce::BlocksProtocol::endOfChanges = 1,
  juce::BlocksProtocol::skipBytesFew = 2,
  juce::BlocksProtocol::skipBytesMany = 3,
  juce::BlocksProtocol::setSequenceOfBytes = 4,
  juce::BlocksProtocol::setFewBytesWithValue = 5,
  juce::BlocksProtocol::setFewBytesWithLastValue = 6,
  juce::BlocksProtocol::setManyBytesWithValue = 7
}
 
enum  juce::BlocksProtocol::DeviceCommands {
  juce::BlocksProtocol::beginAPIMode = 0x00,
  juce::BlocksProtocol::requestTopologyMessage = 0x01,
  juce::BlocksProtocol::endAPIMode = 0x02,
  juce::BlocksProtocol::ping = 0x03,
  juce::BlocksProtocol::debugMode = 0x04,
  juce::BlocksProtocol::saveProgramAsDefault = 0x05
}
 
enum  juce::BlocksProtocol::MessageFromDevice {
  juce::BlocksProtocol::MessageFromDevice::deviceTopology = 0x01,
  juce::BlocksProtocol::packetACK = 0x02,
  juce::BlocksProtocol::firmwareUpdateACK = 0x03,
  juce::BlocksProtocol::MessageFromDevice::deviceTopologyExtend = 0x04,
  juce::BlocksProtocol::MessageFromDevice::deviceTopologyEnd = 0x05,
  juce::BlocksProtocol::MessageFromDevice::deviceVersion = 0x06,
  juce::BlocksProtocol::MessageFromDevice::deviceName = 0x07,
  juce::BlocksProtocol::MessageFromDevice::touchStart = 0x10,
  juce::BlocksProtocol::MessageFromDevice::touchMove = 0x11,
  juce::BlocksProtocol::MessageFromDevice::touchEnd = 0x12,
  juce::BlocksProtocol::MessageFromDevice::touchStartWithVelocity = 0x13,
  juce::BlocksProtocol::MessageFromDevice::touchMoveWithVelocity = 0x14,
  juce::BlocksProtocol::MessageFromDevice::touchEndWithVelocity = 0x15,
  juce::BlocksProtocol::MessageFromDevice::configMessage = 0x18,
  juce::BlocksProtocol::MessageFromDevice::controlButtonDown = 0x20,
  juce::BlocksProtocol::MessageFromDevice::controlButtonUp = 0x21,
  juce::BlocksProtocol::programEventMessage = 0x28,
  juce::BlocksProtocol::MessageFromDevice::logMessage = 0x30
}
 Messages that a device may send to the host. More...
 
enum  juce::BlocksProtocol::MessageFromHost {
  juce::BlocksProtocol::MessageFromHost::deviceCommandMessage = 0x01,
  juce::BlocksProtocol::MessageFromHost::sharedDataChange = 0x02,
  juce::BlocksProtocol::programEventMessage = 0x03,
  juce::BlocksProtocol::MessageFromHost::firmwareUpdatePacket = 0x04,
  juce::BlocksProtocol::MessageFromHost::configMessage = 0x10,
  juce::BlocksProtocol::MessageFromHost::factoryReset = 0x11,
  juce::BlocksProtocol::MessageFromHost::blockReset = 0x12,
  juce::BlocksProtocol::MessageFromHost::setName = 0x20
}
 Messages that the host may send to a device. More...
 

Variables

static constexpr uint32 juce::BlocksProtocol::apiModeHostPingTimeoutMs = 5000
 
static constexpr uint8 juce::BlocksProtocol::configMaxOptions = 8
 
static constexpr uint8 juce::BlocksProtocol::configOptionNameLength = 16
 
static constexpr uint8 juce::BlocksProtocol::configUserConfigNameLength = 32
 
static constexpr uint32 juce::BlocksProtocol::controlBlockProgramAndHeapSize = 3000
 
static constexpr uint32 juce::BlocksProtocol::controlBlockStackSize = 800
 
static constexpr uint32 juce::BlocksProtocol::currentProtocolVersion = 1
 This value is incremented when the format of the API changes in a way which breaks compatibility. More...
 
static constexpr const char * juce::BlocksProtocol::ledProgramLittleFootFunctions []
 
static constexpr uint8 juce::BlocksProtocol::maxBlocksInTopologyPacket = 6
 
static constexpr uint8 juce::BlocksProtocol::maxConfigIndex = uint8 (ConfigItemId::user0) + numberOfUserConfigs
 
static constexpr uint8 juce::BlocksProtocol::maxConnectionsInTopologyPacket = 24
 
static constexpr uint8 juce::BlocksProtocol::numberOfUserConfigs = 32
 
static constexpr uint32 juce::BlocksProtocol::numProgramMessageInts = 3
 
static constexpr uint32 juce::BlocksProtocol::padBlockProgramAndHeapSize = 7200
 
static constexpr uint32 juce::BlocksProtocol::padBlockStackSize = 800
 
static constexpr int juce::BlocksProtocol::topologyIndexBits = 7
 
static constexpr TopologyIndex juce::BlocksProtocol::topologyIndexForBroadcast = 63
 Use this value as the index if you want a message to be sent to all devices in the group. More...