Represents an individual BLOCKS device. More...
#include <juce_Block.h>
Classes | |
struct | BlockArea |
A simple struct representing the area of a block. More... | |
struct | ConfigMetaData |
Metadata for a given config item. More... | |
struct | ConnectionPort |
These are the edge-connectors that a device may have. More... | |
struct | DataInputPortListener |
Interface for objects listening to input data port. More... | |
struct | Program |
A program that can be loaded onto a block. More... | |
struct | ProgramEventListener |
Interface for objects listening to custom program events. More... | |
struct | ProgramEventMessage |
A message that can be sent to the currently loaded program. More... | |
Public Types | |
using | Array = juce::ReferenceCountedArray< Block > |
The Block class is reference-counted, so Block::Array is useful when you are storing lists of them. More... | |
using | Ptr = juce::ReferenceCountedObjectPtr< Block > |
The Block class is reference-counted, so always use a Block::Ptr when you are keeping references to them. More... | |
using | Timestamp = uint32 |
This type is used for timestamping events. More... | |
enum | Type { unknown = 0, lightPadBlock, liveBlock, loopBlock, developerControlBlock, touchBlock, seaboardBlock } |
The different block types. More... | |
using | UID = uint64 |
This type is used for the unique block identifier. More... | |
Public Member Functions | |
virtual | ~Block () |
Destructor. More... | |
virtual void | addDataInputPortListener (DataInputPortListener *) |
Adds a new listener for the data input port. More... | |
virtual void | addProgramEventListener (ProgramEventListener *) |
Adds a new listener for custom program events from the block. More... | |
virtual void | blockReset ()=0 |
Reset this Block. More... | |
void | decReferenceCount () noexcept |
Decreases the object's reference count. More... | |
bool | decReferenceCountWithoutDeleting () noexcept |
Decreases the object's reference count. More... | |
virtual void | factoryReset ()=0 |
Perform factory reset on Block. More... | |
virtual float | getBatteryLevel () const =0 |
Returns the battery level in the range 0.0 to 1.0. More... | |
virtual BlockArea | getBlockAreaWithinLayout () const =0 |
Returns the area that this block covers within the layout of the group as a whole. More... | |
virtual juce::Array< ControlButton * > | getButtons () const =0 |
If this block has any control buttons, this will return an array of objects to control them. More... | |
virtual UID | getConnectedMasterUID () const =0 |
Returns the UID of the master block this block is connected to. More... | |
virtual uint8 | getDataByte (size_t offset)=0 |
Gets a byte from the littlefoot heap. More... | |
virtual juce::String | getDeviceDescription () const =0 |
Returns a human-readable description of this device type. More... | |
virtual uint32 | getHeapMemorySize ()=0 |
Returns the size of the data block that setDataByte and other functions can write to. More... | |
virtual int | getHeight () const =0 |
Returns the height of the device in logical device units. More... | |
virtual LEDGrid * | getLEDGrid () const =0 |
If this block has a grid of LEDs, this will return an object to control it. More... | |
virtual LEDRow * | getLEDRow ()=0 |
If this block has a row of LEDs, this will return an object to control it. More... | |
virtual ConfigMetaData | getLocalConfigMetaData (uint32 item)=0 |
Get config item metadata. More... | |
virtual int32 | getLocalConfigValue (uint32 item)=0 |
Get local config item value. More... | |
virtual uint32 | getMaxConfigIndex ()=0 |
Returns the maximum number of config items available. More... | |
virtual uint32 | getMemorySize ()=0 |
Returns the overall memory of the block. More... | |
virtual float | getMillimetersPerUnit () const =0 |
Returns the length of one logical device unit as physical millimeters. More... | |
virtual juce::Array< ConnectionPort > | getPorts () const =0 |
Returns a list of the connectors that this device has. More... | |
virtual Program * | getProgram () const =0 |
Returns a pointer to the currently loaded program. More... | |
int | getReferenceCount () const noexcept |
Returns the object's current reference count. More... | |
virtual int | getRotation () const =0 |
Returns the rotation of this block relative to the master block in 90 degree steps clockwise. More... | |
virtual juce::Array< StatusLight * > | getStatusLights () const =0 |
If this block has any status LEDs, this will return an array of objects to control them. More... | |
virtual TouchSurface * | getTouchSurface () const =0 |
If this block has a pressure-sensitive surface, this will return an object to access its data. More... | |
virtual Type | getType () const =0 |
Returns the type of this device. More... | |
virtual int | getWidth () const =0 |
Returns the width of the device in logical device units. More... | |
void | incReferenceCount () noexcept |
Increments the object's reference count. More... | |
virtual bool | isBatteryCharging () const =0 |
Returns true if the battery is charging. More... | |
virtual bool | isConnected () const =0 |
Returns true if this block is connected and active. More... | |
bool | isControlBlock () const |
Returns true if this a control block. More... | |
virtual bool | isHardwareBlock () const =0 |
Returns true if the device is a physical hardware block (i.e. More... | |
virtual bool | isLocalConfigItemActive (uint32 item)=0 |
Determine if config item is active or not. More... | |
virtual bool | isMasterBlock () const =0 |
Returns true if this block is directly connected to the application, as opposed to only being connected to a different block via a connection port. More... | |
virtual bool | isValidUserConfigIndex (uint32 item)=0 |
Determine if this is a valid config item index. More... | |
bool | operator!= (const Block &other) const noexcept |
Two blocks are considered equal if they have the same UID. More... | |
bool | operator== (const Block &other) const noexcept |
Two blocks are considered equal if they have the same UID. More... | |
virtual void | removeDataInputPortListener (DataInputPortListener *) |
Removes a listener for the data input port. More... | |
virtual void | removeProgramEventListener (ProgramEventListener *) |
Removes a listener for custom program events from the block. More... | |
virtual void | requestFactoryConfigSync ()=0 |
Request sync of factory config with block. More... | |
virtual void | resetConfigListActiveStatus ()=0 |
Reset all items active status. More... | |
virtual void | saveProgramAsDefault ()=0 |
Sets the current program as the block's default state. More... | |
virtual bool | sendFirmwareUpdatePacket (const uint8 *data, uint8 size, std::function< void(uint8, uint32)> packetAckCallback)=0 |
Sends a firmware update packet to a block, and waits for a reply. More... | |
virtual void | sendMessage (const void *messageData, size_t messageSize)=0 |
Sends a message to the block. More... | |
virtual void | sendProgramEvent (const ProgramEventMessage &)=0 |
Sends a message to the currently loaded program. More... | |
virtual void | setConfigChangedCallback (std::function< void(Block &, const ConfigMetaData &, uint32)>)=0 |
Provides a callback that will be called when a config changes. More... | |
virtual void | setDataBits (uint32 startBit, uint32 numBits, uint32 value)=0 |
Sets multiple bits on the littlefoot heap. More... | |
virtual void | setDataByte (size_t offset, uint8 value)=0 |
Sets a single byte on the littlefoot heap. More... | |
virtual void | setDataBytes (size_t offset, const void *data, size_t num)=0 |
Sets multiple bytes on the littlefoot heap. More... | |
virtual void | setLocalConfigItemActive (uint32 item, bool isActive)=0 |
Set if config item is active or not. More... | |
virtual void | setLocalConfigRange (uint32 item, int32 min, int32 max)=0 |
Set local config item range. More... | |
virtual void | setLocalConfigValue (uint32 item, int32 value)=0 |
Set local config item value. More... | |
virtual void | setLogger (std::function< void(const String &)> loggingCallback)=0 |
Allows the user to provide a function that will receive log messages from the block. More... | |
virtual bool | setName (const juce::String &name)=0 |
Set Block name. More... | |
virtual juce::Result | setProgram (Program *)=0 |
Sets the Program to run on this block. More... | |
virtual void | setProgramLoadedCallback (std::function< void(Block &)> programLoaded)=0 |
Provides a callback that will be called when a prgoram has been loaded. More... | |
virtual bool | supportsGraphics () const =0 |
This returns true if the block supports generating graphics by drawing into a JUCE Graphics context. More... | |
Static Public Member Functions | |
static bool | isControlBlock (Block::Type) |
Returns true if Block::Type is a control block. More... | |
Public Attributes | |
juce::String | name |
The Block's name. More... | |
const juce::String | serialNumber |
The Block's serial number. More... | |
const UID | uid |
This Block's UID. More... | |
juce::String | versionNumber |
The Block's version number. More... | |
Protected Member Functions | |
Block (const juce::String &serialNumberToUse) | |
Block (const juce::String &serial, const juce::String &version, const juce::String &name) | |
void | resetReferenceCount () noexcept |
Resets the reference count to zero without deleting the object. More... | |
Protected Attributes | |
juce::ListenerList< DataInputPortListener > | dataInputPortListeners |
juce::ListenerList< ProgramEventListener > | programEventListeners |
Represents an individual BLOCKS device.
{Blocks}
The Block class is reference-counted, so Block::Array is useful when you are storing lists of them.
The Block class is reference-counted, so always use a Block::Ptr when you are keeping references to them.
using juce::Block::Timestamp = uint32 |
This type is used for timestamping events.
It represents a number of milliseconds since the block device was booted.
using juce::Block::UID = uint64 |
This type is used for the unique block identifier.
enum juce::Block::Type |
The different block types.
|
virtual |
Destructor.
|
protected |
|
protected |
|
virtual |
Adds a new listener for the data input port.
Referenced by juce::Block::DataInputPortListener::~DataInputPortListener().
|
virtual |
Adds a new listener for custom program events from the block.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Reset this Block.
|
inlinenoexceptinherited |
Decreases the object's reference count.
If the count gets to zero, the object will be deleted.
References jassert.
|
inlinenoexceptinherited |
Decreases the object's reference count.
If the count gets to zero, the object will not be deleted, but this method will return true, allowing the caller to take care of deletion.
References jassert.
|
pure virtual |
Perform factory reset on Block.
|
pure virtual |
Returns the battery level in the range 0.0 to 1.0.
Referenced by operator!=().
|
pure virtual |
Returns the area that this block covers within the layout of the group as a whole.
The coordinates are in logical block units, and are relative to the origin, which is the master block's top-left corner.
|
pure virtual |
|
pure virtual |
Returns the UID of the master block this block is connected to.
Referenced by operator!=().
|
pure virtual |
Gets a byte from the littlefoot heap.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Returns a human-readable description of this device type.
Referenced by operator!=().
|
pure virtual |
Returns the size of the data block that setDataByte and other functions can write to.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Returns the height of the device in logical device units.
Referenced by operator!=().
|
pure virtual |
If this block has a grid of LEDs, this will return an object to control it.
Note that the pointer that is returned belongs to this object, and the caller must neither delete it or use it after the lifetime of this Block object has finished. If there are no LEDs, then this method will return nullptr.
|
pure virtual |
If this block has a row of LEDs, this will return an object to control it.
Note that the pointer that is returned belongs to this object, and the caller must neither delete it or use it after the lifetime of this Block object has finished. If there are no LEDs, then this method will return nullptr.
|
pure virtual |
Get config item metadata.
Get local config item value.
|
pure virtual |
Returns the maximum number of config items available.
|
pure virtual |
Returns the overall memory of the block.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Returns the length of one logical device unit as physical millimeters.
Referenced by operator!=().
|
pure virtual |
Returns a list of the connectors that this device has.
|
pure virtual |
Returns a pointer to the currently loaded program.
|
inlinenoexceptinherited |
Returns the object's current reference count.
|
pure virtual |
Returns the rotation of this block relative to the master block in 90 degree steps clockwise.
|
pure virtual |
|
pure virtual |
If this block has a pressure-sensitive surface, this will return an object to access its data.
Note that the pointer returned does is owned by this object, and the caller must neither delete it or use it after the lifetime of this Block object has finished. If the device is not touch-sensitive, then this method will return nullptr.
|
pure virtual |
|
pure virtual |
Returns the width of the device in logical device units.
Referenced by operator!=().
|
inlinenoexceptinherited |
Increments the object's reference count.
This is done automatically by the smart pointer, but is public just in case it's needed for nefarious purposes.
|
pure virtual |
Returns true if the battery is charging.
Referenced by operator!=().
|
pure virtual |
Returns true if this block is connected and active.
Referenced by operator!=().
bool juce::Block::isControlBlock | ( | ) | const |
Returns true if this a control block.
Referenced by operator!=().
|
static |
Returns true if Block::Type is a control block.
|
pure virtual |
Returns true if the device is a physical hardware block (i.e.
not a virtual block).
Referenced by operator!=().
Determine if config item is active or not.
|
pure virtual |
Returns true if this block is directly connected to the application, as opposed to only being connected to a different block via a connection port.
Referenced by operator!=().
Determine if this is a valid config item index.
Two blocks are considered equal if they have the same UID.
References getBatteryLevel(), getConnectedMasterUID(), getDeviceDescription(), getHeight(), getMillimetersPerUnit(), getType(), getWidth(), isBatteryCharging(), isConnected(), isControlBlock(), isHardwareBlock(), and isMasterBlock().
Two blocks are considered equal if they have the same UID.
|
virtual |
Removes a listener for the data input port.
Referenced by juce::Block::DataInputPortListener::~DataInputPortListener().
|
virtual |
Removes a listener for custom program events from the block.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Request sync of factory config with block.
|
pure virtual |
Reset all items active status.
|
inlineprotectednoexceptinherited |
Resets the reference count to zero without deleting the object.
You should probably never need to use this!
|
pure virtual |
Sets the current program as the block's default state.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Sends a firmware update packet to a block, and waits for a reply.
Returns an error code.
|
pure virtual |
Sends a message to the block.
Referenced by juce::Block::DataInputPortListener::~DataInputPortListener().
|
pure virtual |
Sends a message to the currently loaded program.
To receive the message the program must provide a littlefoot function called handleMessage with the following form:
|
pure virtual |
Provides a callback that will be called when a config changes.
|
pure virtual |
Sets multiple bits on the littlefoot heap.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Sets a single byte on the littlefoot heap.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
|
pure virtual |
Sets multiple bytes on the littlefoot heap.
Referenced by juce::Block::ProgramEventListener::~ProgramEventListener().
Set if config item is active or not.
Set local config item range.
Set local config item value.
|
pure virtual |
Allows the user to provide a function that will receive log messages from the block.
|
pure virtual |
Set Block name.
|
pure virtual |
|
pure virtual |
Provides a callback that will be called when a prgoram has been loaded.
|
pure virtual |
|
protected |
juce::String juce::Block::name |
The Block's name.
|
protected |
const juce::String juce::Block::serialNumber |
The Block's serial number.
const UID juce::Block::uid |
This Block's UID.
This will be globally unique, and remains constant for a particular device.
juce::String juce::Block::versionNumber |
The Block's version number.