| 
							- /** @defgroup LittleFootFunctions LittleFoot Functions
 -     Functions available in the LittleFoot language
 -     @{
 - */
 - 
 - /** Reads and returns the value of a single byte from the heap.
 - 
 -     @param byteIndex    the index (in bytes) of the byte to read
 -     @returns            the value of the byte
 - */
 - int getHeapByte (int byteIndex);
 - 
 - /** Reads 4 bytes from the heap and returns the value as an integer.
 - 
 -     @param byteIndex    the index (in bytes) of the start of the 4 bytes to read
 -     @returns            the value of the 4 bytes as an integer
 - */
 - int getHeapInt (int byteIndex);
 - 
 - /** Reads a sequence of bits from the heap and returns the value as an integer.
 - 
 -     @param startBitIndex    the index (in bits) of the start of the sequence of bits to read
 -     @param numBits          how many bits to read
 -     @returns                the value of the sequence of bits as an integer
 - */
 - int getHeapBits (int startBitIndex, int numBits);
 - 
 - /** Writes a single byte to the heap.
 - 
 -     @param byteIndex    the index (in bytes) of the byte to set
 -     @param newValue     the new value to set this byte to
 - */
 - void setHeapByte (int byteIndex, int newValue);
 - 
 - /** Writes 4 bytes to the heap.
 - 
 -     @param byteIndex    the index (in bytes) of the start of the 4 bytes to set
 -     @param newValue     the new value to set the 4 bytes to
 - */
 - void setHeapInt (int byteIndex, int newValue);
 - 
 - /** Returns the smaller of two integer values.
 - 
 -     @param a The first parameter
 -     @param b The second parameter
 -     @retval The minimum of a and b
 - */
 - int min (int a, int b);
 - 
 - /** Returns the smaller of two floating point values.
 - 
 -     @param a The first parameter
 -     @param b The second parameter
 -     @retval The minimum of a and b
 - */
 - float min (float a, float b);
 - 
 - /** Returns the larger of two integer values.
 - 
 -     @param a The first parameter
 -     @param b The second parameter
 -     @retval The maximum of a and b
 - */
 - int max (int a, int b);
 - 
 - /** Returns the larger of two floating point values.
 - 
 -     @param a The first parameter
 -     @param b The second parameter
 -     @retval The maximum of a and b
 - */
 - float max (float a, float b);
 - 
 - /** Constrains an integer value to keep it within a given range.
 - 
 -     @param lowerLimit          the minimum value to return
 -     @param upperLimit          the maximum value to return
 -     @param valueToConstrain    the value to try to return
 -     @returns                   the closest value to valueToConstrain which lies between lowerLimit
 -                                and upperLimit (inclusive)
 - */
 - int clamp (int lowerLimit, int upperLimit, int valueToConstrain);
 - 
 - /** Constrains a floating point value to keep it within a given range.
 - 
 -     @param lowerLimit          the minimum value to return
 -     @param upperLimit          the maximum value to return
 -     @param valueToConstrain    the value to try to return
 -     @returns                   the closest value to valueToConstrain which lies between lowerLimit
 -                                and upperLimit (inclusive)
 - */
 - float clamp (float lowerLimit, float upperLimit, float valueToConstrain);
 - 
 - /** Returns the absolute value of an integer value.
 - 
 -     @param arg The argument to compute the absolute value of
 -     @retval either -arg if arg is negative or arg if arg is positive
 - */
 - int abs (int arg);
 - 
 - /** Returns the absolute value of a floating point value.
 - 
 -     @param arg The argument to compute the absolute value of
 -     @retval either -arg if arg is negative or arg if arg is positive
 - */
 - float abs (float arg);
 - 
 - /** Remaps a value from a source range to a target range.
 - 
 -     @param value        the value within the source range to map
 -     @param sourceMin    the minimum value of the source range
 -     @param sourceMax    the maximum value of the source range
 -     @param destMin      the minumum value of the destination range
 -     @param destMax      the maximum value of the destination range
 -     @returns            the original value mapped to the destination range
 - */
 - float map (float value, float sourceMin, float sourceMax, float destMin, float destMax);
 - 
 - /** Remaps a value from a source range to the range 0 - 1.0.
 - 
 -     @param value        the value within the source range to map
 -     @param sourceMin    the minimum value of the source range
 -     @param sourceMax    the maximum value of the source range
 -     @returns            the original value mapped to the range 0 - 1.0
 - */
 - float map (float value, float sourceMin, float sourceMax);
 - 
 - /** Performs a modulo operation (can cope with the dividend being negative).
 -     The divisor must be greater than zero.
 - 
 -     @returns    the result of the modulo operation
 - */
 - int mod (int dividend, int divisor);
 - 
 - /** Returns a random floating-point number.
 - 
 -     @returns    a random value in the range 0 (inclusive) to 1.0 (exclusive)
 - */
 - float getRandomFloat();
 - 
 - /** Returns a random integer, limited to a given range.
 - 
 -     @returns    a random integer between 0 (inclusive) and maxValue (exclusive).
 - */
 - int getRandomInt (int maxValue);
 - 
 - /** Returns the number of milliseconds since a fixed event (usually system startup).
 - 
 -     @returns     a monotonically increasing value which is unaffected by changes to the
 -                  system clock. It should be accurate to within a few millisecseconds.
 - */
 - int getMillisecondCounter();
 - 
 - /** Returns the length of time spent in the current function call in milliseconds.
 - 
 -     @returns     the length of time spent in the current function call in milliseconds.
 - */
 - int getTimeInCurrentFunctionCall();
 - 
 - /** Logs an integer value to the console.
 - 
 -     @param data The 32 bit signed integer to log to the topology as an integer
 - */
 - void log (int data);
 - 
 - /** Logs a hexadecimal value to the console.
 - 
 -     @param data The 32 bit signed integer to log to the topology as a hexidecimal int
 - */
 - void logHex (int data);
 - 
 - /** Sends a 1-byte short midi message. */
 - void sendMIDI (int byte0);
 - 
 - /** Sends a 2-byte short midi message. */
 - void sendMIDI (int byte0, int byte1);
 - 
 - /** Sends a 3-byte short midi message. */
 - void sendMIDI  (int byte0, int byte1, int byte2);
 - 
 - /** Sends a key-down message.
 - 
 -     @param channel       the midi channel, in the range 0 to 15
 -     @param noteNumber    the key number, in the range 0 to 127
 -     @param velocity      the velocity, in the range 0 to 127
 - */
 - void sendNoteOn (int channel, int noteNumber, int velocity);
 - 
 - /** Sends a key-up message.
 - 
 -     @param channel       the midi channel, in the range 0 to 15
 -     @param noteNumber    the key number, in the range 0 to 127
 -     @param velocity      the velocity, in the range 0 to 127
 - */
 - void sendNoteOff (int channel, int noteNumber, int velocity);
 - 
 - /** Sends an aftertouch message.
 - 
 -     @param channel       the midi channel, in the range 0 to 15
 -     @param noteNumber    the key number, in the range 0 to 127
 -     @param level         the amount of aftertouch, in the range 0 to 127
 - */
 - void sendAftertouch (int channel, int noteNumber, int level);
 - 
 - /** Sends a controller message.
 - 
 -     @param channel       the midi channel, in the range 0 to 15
 -     @param controller    the type of controller
 -     @param value         the controller value
 - */
 - void sendCC (int channel, int controller, int value);
 - 
 - /** Sends a pitch bend message.
 - 
 -     @param channel     the midi channel, in the range 0 to 15
 -     @param position    the wheel position, in the range 0 to 16383
 - */
 - void sendPitchBend (int channel, int position);
 - 
 - /** Sends a channel-pressure change event.
 - 
 -     @param channel     the midi channel, in the range 0 to 15
 -     @param pressure    the pressure, in the range 0 to 127
 - */
 - void sendChannelPressure (int channel, int pressure);
 - 
 - /** Sets the MIDI channel range.
 - 
 -     @param useMPE         whether to use MPE mode
 -     @param lowChannel     the lowest MIDI channel
 -     @param highChannel    the highest MIDI channel
 - */
 - void setChannelRange (bool useMPE, int lowChannel, int highChannel);
 - 
 - /** Assigns a MIDI channel to a note number.
 - 
 -     @param noteNumber    the note number to assign the channel to
 -     @returns             the MIDI channel that has been assigned
 - */
 - int assignChannel (int noteNumber);
 - 
 - /** Deassigns a channel from a note number.
 - 
 -     @param noteNumber    the note number to deassign
 -     @param channel       the MIDI channel
 - */
 - void deassignChannel (int noteNumber, int channel);
 - 
 - /** Returns the channel that is being used for control messages.
 - 
 -     @returns the channel that is being used for control messages. (If MPE is enabled then this will be the first channel.)
 - */
 - int getControlChannel();
 - 
 - /** Sets whether duplicate notes should be filtered out when MPE is enabled. */
 - void useMPEDuplicateFilter (bool active);
 - 
 - /** Use this method to draw the display.
 -     The block will call this approximately 25 times per second.
 - */
 - void repaint();
 - 
 - /** Called when a button is pushed.
 - 
 -     @param index    the index of the button that was pushed
 - */
 - void handleButtonDown (int index);
 - 
 - /** Called when a button is released.
 - 
 -     @param index    the index of the button that was released
 - */
 - void handleButtonUp (int index);
 - 
 - /** Called when a control block button is pressed.
 - 
 -     @param buttonIndex    the index of the button
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid with a control block
 - */
 - void onControlPress (int buttonIndex);
 - 
 - /** Called when a control block button is released.
 - 
 -     @param buttonIndex    the index of the button
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid with a control block
 - */
 - void onControlRelease (int buttonIndex);
 - 
 - /** Called when a touch event starts.
 - 
 -     Block units follow the number of DNA connectors on the side of the device.
 -     For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
 - 
 -     @param index    the touch index, which will stay constant for each finger as it is tracked
 -     @param x        the X position of this touch on the device, in block units starting from 0 (left)
 -     @param y        the Y position of this touch on the device, in block units starting from 0 (top)
 -     @param z        the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
 -     @param vz       the rate at which pressure is currently changing, measured in units/second
 - */
 - void touchStart (int index, float x, float y, float z, float vz);
 - 
 - /** Called when a touch event moves.
 - 
 -     Block units follow the number of DNA connectors on the side of the device.
 -     For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
 - 
 -     @param index    the touch index, which will stay constant for each finger as it is tracked
 -     @param x        the X position of this touch on the device, in block units starting from 0 (left)
 -     @param y        the Y position of this touch on the device, in block units starting from 0 (top)
 -     @param z        the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
 -     @param vz       the rate at which pressure is currently changing, measured in units/second
 - */
 - void touchMove (int index, float x, float y, float z, float vz);
 - 
 - /** Called when a touch event ends.
 - 
 -     Block units follow the number of DNA connectors on the side of the device.
 -     For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
 - 
 -     @param index    the touch index, which will stay constant for each finger as it is tracked
 -     @param x        the X position of this touch on the device, in block units starting from 0 (left)
 -     @param y        the Y position of this touch on the device, in block units starting from 0 (top)
 -     @param z        the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
 -     @param vz       the rate at which pressure is currently changing, measured in units/second
 - */
 - void touchEnd (int index, float x, float y, float z, float vz);
 - 
 - /** Called when a program is loaded onto the block and is about to start. Do any setup here. */
 - void initialise();
 - 
 - /** Called when a block receives a MIDI message. */
 - void handleMIDI (int byte0, int byte1, int byte2);
 - 
 - /** Called when a block receives a message.
 - 
 -     @see sendMessageToBlock
 - */
 - void handleMessage (int param1, int param2, int param3);
 - 
 - /** Combines a set of 8-bit ARGB values into a 32-bit colour and returns the result.
 - 
 -     @return a 32-bit colour
 -     @param alpha The alpha in range 0 - 255 inclusive
 -     @param red The red in range 0 - 255 inclusive
 -     @param green The green in range 0 - 255 inclusive
 -     @param blue The blue in range 0 - 255 inclusive
 - */
 - int makeARGB (int alpha, int red, int green, int blue);
 - 
 - /** Blends the overlaid ARGB colour onto the base one and returns the new colour.
 - 
 -     @param baseColour the colour to blend on to
 -     @param overlaidColour The colour to blend in to the baseColour
 -     @returns The blended colour
 - */
 - int blendARGB (int baseColour, int overlaidColour);
 - 
 - /** Displays an animation indicating the current battery level of this block.
 -     A control block will light up its top LEDs indicating battery level and a lightpad
 -     block will draw the battery level on the display.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void displayBatteryLevel();
 - 
 - /** Clears the display and sets all the LEDs to black. */
 - void clearDisplay();
 - 
 - /** Clears the display and sets all the LEDs to a specified colour.
 - 
 -     @param rgb    the colour to use (0xff...)
 - */
 - void clearDisplay (int rgb);
 - 
 - /** Sets a pixel to a specified colour with full alpha.
 - 
 -     @param rgb    the colour to use (0xff...)
 -     @param x      the x coordinate of the pixel to fill
 -     @param y      the y coordinate of the pixel to fill
 - */
 - void fillPixel (int rgb, int x, int y);
 - 
 - /** Blends the current pixel colour with a specified colour.
 - 
 -     @param argb    the colour to use
 -     @param x       the x coordinate of the pixel to blend
 -     @param y       the y coordinate of the pixel to blend
 - */
 - void blendPixel (int argb, int x, int y);
 - 
 - /** Fills a rectangle on the display with a specified colour.
 - 
 -     @param rgb       the colour to use (0xff...)
 -     @param x         the x coordinate of the rectangle to draw
 -     @param y         the y coordinate of the rectangle to draw
 -     @param width     the width of the rectangle to draw
 -     @param height    the height of the rectangle to draw
 - */
 - void fillRect (int rgb, int x, int y, int width, int height);
 - 
 - /** Blends a rectangle on the display with a specified colour.
 - 
 -     @param argb      the colour to use
 -     @param x         the x coordinate of the rectangle to blend
 -     @param y         the y coordinate of the rectangle to blend
 -     @param width     the width of the rectangle to blend
 -     @param height    the height of the rectangle to blend
 - */
 - void blendRect (int argb, int x, int y, int width, int height);
 - 
 - /** Fills a rectangle on the display with four corner colours blended together.
 - 
 -     @param colourNW    the colour to use in the north west corner of the rectangle
 -     @param colourNE    the colour to use in the north east corner of the rectangle
 -     @param colourSE    the colour to use in the south east corner of the rectangle
 -     @param colourSW    the colour to use in the south west corner of the rectangle
 -     @param x           the x coordinate of the rectangle
 -     @param y           the y coordinate of the rectangle
 -     @param width       the width of the rectangle
 -     @param height      the height of the rectangle
 - */
 - void blendGradientRect (int colourNW, int colourNE, int colourSE, int colourSW, int x, int y, int width, int height);
 - 
 - /** Blends a circle on the display with a specified colour.
 - 
 -     @param argb       the colour to use
 -     @param xCentre    the x position of the circle's centre in block units
 -     @param yCentre    the y position of the circle's centre in block units
 -     @param radius     the radius of the circle in block units
 -     @param fill       if true then the circle will be filled, if false the circle will be an outline
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void blendCircle (int argb, float xCentre, float yCentre, float radius, bool fill);
 - 
 - /** Draws a number on the display.
 - 
 -     @param value     the number to draw between 0 and 99
 -     @param colour    the colour to use
 -     @param x         the x coordinate to use
 -     @param y         the y coordinate to use
 - */
 - void drawNumber (int value, int colour, int x, int y);
 - 
 - /** Returns the current firmware version of this block.
 - 
 -     @returns The firmware version of the form 0xMJMIRV (where MJ = Major, MI = Minor, RV = Revision)
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getFirmwareVersion();
 - 
 - /** Returns the battery level of this block, between 0 and 1.0.
 - 
 -     @returns the battery level of this block, between 0 and 1.0.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - float getBatteryLevel();
 - 
 - /** Returns true if this block's battery is charging.
 - 
 -     @returns true if this block's battery is charging
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - bool isBatteryCharging();
 - 
 - /** Sets whether status overlays should be displayed on this block.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setStatusOverlayActive (bool active);
 - 
 - /** Sets whether power saving mode should be enabled on this block.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setPowerSavingEnabled (bool enabled);
 - 
 - /** Returns the type of the block with a given ID.
 - 
 -     @returns    an enum indicating the type of block @see Block::Type
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getBlockTypeForID (int blockID);
 - 
 - /** Sends a message to the block with the specified ID.
 -     This will be processed in the handleMessage() callback.
 - 
 -     @param blockID    the ID of the block to send this message to
 -     @param param1     the first chunk of data to send
 -     @param param2     the second chunk of data to send
 -     @param param3     the third chunk of data to send
 - */
 - void sendMessageToBlock (int blockID, int param1, int param2, int param3);
 - 
 - /** Sends a message to the host. To receive this the host will need to implement
 -     the Block::ProgramEventListener::handleProgramEvent() method.
 - 
 -     @param param1    the first chunk of data to send
 -     @param param2    the second chunk of data to send
 -     @param param3    the third chunk of data to send
 - */
 - void sendMessageToHost (int param1, int param2, int param3);
 - 
 - /** Draws a pressure point with a specified colour and pressure.
 - 
 -     @param argb      the colour to use
 -     @param touchX    the x position of the touch in block units
 -     @param touchY    the y position of the touch in block units
 -     @param touchZ    the pressure value of the touch
 - */
 - void addPressurePoint (int argb, float touchX, float touchY, float touchZ);
 - 
 - /** Draws the pressure map on the display. */
 - void drawPressureMap();
 - 
 - /** Fades the pressure map on the display. */
 - void fadePressureMap();
 - 
 - /** Links a another block to this control block.
 - 
 -     @param blockID    the ID of the block to link
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid with a control block
 - */
 - void linkBlockIDtoController (int blockID);
 - 
 - /** Repaints the control block display.
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid with a control block
 - */
 - void repaintControl();
 - 
 - /** Initialises one of the control block buttons.
 - 
 -     @param buttonIndex       the index of the button to initialise
 -     @param modeToUse         the mode to use for this button @see ControlMode
 -     @param outputType        the control type to use @see ControlType
 -     @param val               the current value to set this button to
 -     @param min               the minimum value for this button
 -     @param max               the maximum value for this button
 -     @param index             the item index
 -     @param onColourToUse     the colour to use when this button is on
 -     @param offColourToUse    the colour to use when this button is off
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid with a control block
 - */
 - void initControl (int buttonIndex, int modeToUse, int outputType, int val, int min, int max,
 -                   int index,  int onColourToUse, int offColourToUse);
 - 
 - /** Control type for use with initControl
 - 
 -     @see initControl
 - */
 - enum ControlType
 - {
 -     internalConfig = 0,
 -     midiCC,
 -     sysex
 - };
 - 
 - /** Control mode for use with initControl
 - 
 -     @see initControl
 - */
 - enum ControlMode
 - {
 -     toggle = 0,
 -     togglePulse,
 -     gate,
 -     trigger,
 -     cycle,
 -     incDec,
 -     triState
 - };
 - 
 - /** Forces a touch event to be handled as seaboard playing.
 - 
 -     @param touchIndex    the index of the touch event
 - 
 -     @note Requires >= 0.2.5 firmware
 -     @note Only valid on a Seaboard
 - */
 - void handleTouchAsSeaboard (int touchIndex);
 - 
 - /** Returns the number of blocks in the current topology.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getNumBlocksInTopology();
 - 
 - /** Returns the ID of a block at a given index in the topology.
 - 
 -     @param index The index of the block to find in the topology
 -     @returns int The id of the block
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getBlockIDForIndex (int index);
 - 
 - /** Returns true if this block is directly connected to the host,
 -     as opposed to only being connected to a different block via a connection port.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - bool isMasterBlock();
 - 
 - /** Returns true if this block is connected to the host computer, this can be
 -     directly or through connections to other blocks.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - bool isConnectedToHost();
 - 
 - /** Returns the ID of a block connected to a specified port on this block.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getBlockIDOnPort (int port);
 - 
 - /** Returns the port number that is connected to the master block. Returns 0xFF if there is
 -     no port connected to master.
 - 
 -     @returns the port number that is connected to the master block. Returns 0xFF if there is
 -              no port connected to master.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getPortToMaster();
 - 
 - /** Returns the horizontal distance between this block and the master block in block units.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getHorizontalDistFromMaster();
 - 
 - /** Returns the vertical distance between this block and the master block in block units.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getVerticalDistFromMaster();
 - 
 - /** Returns the angle of this block relative to the master block in degrees.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getAngleFromMaster();
 - 
 - /** Sets whether this block should auto-rotate when its angle relative to the master block changes.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setAutoRotate (bool enabled);
 - 
 - /** Returns the index of this block in the current cluster.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getClusterIndex();
 - 
 - /** Returns how many blocks wide the current cluster is.
 - 
 -     @returns the width of the cluster (note that a single block will return 1 here)
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getClusterWidth();
 - 
 - /** Returns how many blocks high the current cluster is.
 - 
 -     @returns the height of the cluster (note that a single block will return 1 here)
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getClusterHeight();
 - 
 - /** Returns the x index of this block in the current cluster.
 - 
 -     @returns int The cluster x position. (0, 0) is considered to be the top left block
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getClusterXpos();
 - 
 - /** Returns the y index of this block in the current cluster.
 - 
 -     @returns int The cluster x position. (0, 0) is considered to be the top left block
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getClusterYpos();
 - 
 - /** Returns the number of blocks in the current cluster.
 - 
 -     @returns the number of blocks in the current cluster.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getNumBlocksInCurrentCluster();
 - 
 - /** Returns the block ID for a block in the current cluster.
 - 
 -     @param index    the cluster index of the block to get the ID of
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getBlockIdForBlockInCluster (int index);
 - 
 - /** Returns true if the master block is in the current cluster.
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - bool isMasterInCurrentCluster();
 - 
 - /** Returns current value of one of the local config items.
 - 
 -     @param item    the config item to get (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - int getLocalConfig (int item);
 - 
 - /** Sets the current value of one of the local config items.
 - 
 -     @param item     the config item to set the value of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 -     @param value    the value to set the config to
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setLocalConfig (int item, int value);
 - 
 - /** Sets the local config of a block to the config item of a remote block.
 - 
 -     @param longAddress    the address of the remote block
 -     @param item           the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void requestRemoteConfig (int longAddress, int item);
 - 
 - /** Sets the config of a remote block.
 - 
 -     @param longAddress    the address of the remote block
 -     @param item           the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 -     @param value          the value to set the config to
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setRemoteConfig (int longAddress, int item, int value);
 - 
 - /** Sets the range of one of the local config items.
 - 
 -     @param item    the config item to set the range of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 -     @param min     the minimum value this config item should use
 -     @param max     the maximum value this config item should use
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setLocalConfigItemRange (int item, int min, int max);
 - 
 - /** Sets whether a local config item should be active.
 - 
 -     @param item           the config item to set active (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
 -     @param isActive       sets whether the config should be active or not
 -     @param saveToFlash    if true then this config item will be saved to the flash memory of the block
 - 
 -     @note Requires >= 0.2.5 firmware
 - */
 - void setLocalConfigActiveState (int item, bool isActive, bool saveToFlash);
 - 
 - /** @} */
 
 
  |