The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

782 lines
26KB

  1. /** @defgroup LittleFootFunctions LittleFoot Functions
  2. Functions available in the LittleFoot language
  3. @{
  4. */
  5. /** Reads and returns the value of a single byte from the heap.
  6. @param byteIndex the index (in bytes) of the byte to read
  7. @returns the value of the byte
  8. */
  9. int getHeapByte (int byteIndex);
  10. /** Reads 4 bytes from the heap and returns the value as an integer.
  11. @param byteIndex the index (in bytes) of the start of the 4 bytes to read
  12. @returns the value of the 4 bytes as an integer
  13. */
  14. int getHeapInt (int byteIndex);
  15. /** Reads a sequence of bits from the heap and returns the value as an integer.
  16. @param startBitIndex the index (in bits) of the start of the sequence of bits to read
  17. @param numBits how many bits to read
  18. @returns the value of the sequence of bits as an integer
  19. */
  20. int getHeapBits (int startBitIndex, int numBits);
  21. /** Writes a single byte to the heap.
  22. @param byteIndex the index (in bytes) of the byte to set
  23. @param newValue the new value to set this byte to
  24. */
  25. void setHeapByte (int byteIndex, int newValue);
  26. /** Writes 4 bytes to the heap.
  27. @param byteIndex the index (in bytes) of the start of the 4 bytes to set
  28. @param newValue the new value to set the 4 bytes to
  29. */
  30. void setHeapInt (int byteIndex, int newValue);
  31. /** Returns the smaller of two integer values.
  32. @param a The first parameter
  33. @param b The second parameter
  34. @retval The minimum of a and b
  35. */
  36. int min (int a, int b);
  37. /** Returns the smaller of two floating point values.
  38. @param a The first parameter
  39. @param b The second parameter
  40. @retval The minimum of a and b
  41. */
  42. float min (float a, float b);
  43. /** Returns the larger of two integer values.
  44. @param a The first parameter
  45. @param b The second parameter
  46. @retval The maximum of a and b
  47. */
  48. int max (int a, int b);
  49. /** Returns the larger of two floating point values.
  50. @param a The first parameter
  51. @param b The second parameter
  52. @retval The maximum of a and b
  53. */
  54. float max (float a, float b);
  55. /** Constrains an integer value to keep it within a given range.
  56. @param lowerLimit the minimum value to return
  57. @param upperLimit the maximum value to return
  58. @param valueToConstrain the value to try to return
  59. @returns the closest value to valueToConstrain which lies between lowerLimit
  60. and upperLimit (inclusive)
  61. */
  62. int clamp (int lowerLimit, int upperLimit, int valueToConstrain);
  63. /** Constrains a floating point value to keep it within a given range.
  64. @param lowerLimit the minimum value to return
  65. @param upperLimit the maximum value to return
  66. @param valueToConstrain the value to try to return
  67. @returns the closest value to valueToConstrain which lies between lowerLimit
  68. and upperLimit (inclusive)
  69. */
  70. float clamp (float lowerLimit, float upperLimit, float valueToConstrain);
  71. /** Returns the absolute value of an integer value.
  72. @param arg The argument to compute the absolute value of
  73. @retval either -arg if arg is negative or arg if arg is positive
  74. */
  75. int abs (int arg);
  76. /** Returns the absolute value of a floating point value.
  77. @param arg The argument to compute the absolute value of
  78. @retval either -arg if arg is negative or arg if arg is positive
  79. */
  80. float abs (float arg);
  81. /** Remaps a value from a source range to a target range.
  82. @param value the value within the source range to map
  83. @param sourceMin the minimum value of the source range
  84. @param sourceMax the maximum value of the source range
  85. @param destMin the minumum value of the destination range
  86. @param destMax the maximum value of the destination range
  87. @returns the original value mapped to the destination range
  88. */
  89. float map (float value, float sourceMin, float sourceMax, float destMin, float destMax);
  90. /** Remaps a value from a source range to the range 0 - 1.0.
  91. @param value the value within the source range to map
  92. @param sourceMin the minimum value of the source range
  93. @param sourceMax the maximum value of the source range
  94. @returns the original value mapped to the range 0 - 1.0
  95. */
  96. float map (float value, float sourceMin, float sourceMax);
  97. /** Performs a modulo operation (can cope with the dividend being negative).
  98. The divisor must be greater than zero.
  99. @returns the result of the modulo operation
  100. */
  101. int mod (int dividend, int divisor);
  102. /** Returns a random floating-point number.
  103. @returns a random value in the range 0 (inclusive) to 1.0 (exclusive)
  104. */
  105. float getRandomFloat();
  106. /** Returns a random integer, limited to a given range.
  107. @returns a random integer between 0 (inclusive) and maxValue (exclusive).
  108. */
  109. int getRandomInt (int maxValue);
  110. /** Returns the number of milliseconds since a fixed event (usually system startup).
  111. @returns a monotonically increasing value which is unaffected by changes to the
  112. system clock. It should be accurate to within a few millisecseconds.
  113. */
  114. int getMillisecondCounter();
  115. /** Returns the length of time spent in the current function call in milliseconds.
  116. @returns the length of time spent in the current function call in milliseconds.
  117. */
  118. int getTimeInCurrentFunctionCall();
  119. /** Logs an integer value to the console.
  120. @param data The 32 bit signed integer to log to the topology as an integer
  121. */
  122. void log (int data);
  123. /** Logs a hexadecimal value to the console.
  124. @param data The 32 bit signed integer to log to the topology as a hexidecimal int
  125. */
  126. void logHex (int data);
  127. /** Sends a 1-byte short midi message. */
  128. void sendMIDI (int byte0);
  129. /** Sends a 2-byte short midi message. */
  130. void sendMIDI (int byte0, int byte1);
  131. /** Sends a 3-byte short midi message. */
  132. void sendMIDI (int byte0, int byte1, int byte2);
  133. /** Sends a key-down message.
  134. @param channel the midi channel, in the range 0 to 15
  135. @param noteNumber the key number, in the range 0 to 127
  136. @param velocity the velocity, in the range 0 to 127
  137. */
  138. void sendNoteOn (int channel, int noteNumber, int velocity);
  139. /** Sends a key-up message.
  140. @param channel the midi channel, in the range 0 to 15
  141. @param noteNumber the key number, in the range 0 to 127
  142. @param velocity the velocity, in the range 0 to 127
  143. */
  144. void sendNoteOff (int channel, int noteNumber, int velocity);
  145. /** Sends an aftertouch message.
  146. @param channel the midi channel, in the range 0 to 15
  147. @param noteNumber the key number, in the range 0 to 127
  148. @param level the amount of aftertouch, in the range 0 to 127
  149. */
  150. void sendAftertouch (int channel, int noteNumber, int level);
  151. /** Sends a controller message.
  152. @param channel the midi channel, in the range 0 to 15
  153. @param controller the type of controller
  154. @param value the controller value
  155. */
  156. void sendCC (int channel, int controller, int value);
  157. /** Sends a pitch bend message.
  158. @param channel the midi channel, in the range 0 to 15
  159. @param position the wheel position, in the range 0 to 16383
  160. */
  161. void sendPitchBend (int channel, int position);
  162. /** Sends a channel-pressure change event.
  163. @param channel the midi channel, in the range 0 to 15
  164. @param pressure the pressure, in the range 0 to 127
  165. */
  166. void sendChannelPressure (int channel, int pressure);
  167. /** Sets the MIDI channel range.
  168. @param useMPE whether to use MPE mode
  169. @param lowChannel the lowest MIDI channel
  170. @param highChannel the highest MIDI channel
  171. */
  172. void setChannelRange (bool useMPE, int lowChannel, int highChannel);
  173. /** Assigns a MIDI channel to a note number.
  174. @param noteNumber the note number to assign the channel to
  175. @returns the MIDI channel that has been assigned
  176. */
  177. int assignChannel (int noteNumber);
  178. /** Deassigns a channel from a note number.
  179. @param noteNumber the note number to deassign
  180. @param channel the MIDI channel
  181. */
  182. void deassignChannel (int noteNumber, int channel);
  183. /** Returns the channel that is being used for control messages.
  184. @returns the channel that is being used for control messages. (If MPE is enabled then this will be the first channel.)
  185. */
  186. int getControlChannel();
  187. /** Sets whether duplicate notes should be filtered out when MPE is enabled. */
  188. void useMPEDuplicateFilter (bool active);
  189. /** Use this method to draw the display.
  190. The block will call this approximately 25 times per second.
  191. */
  192. void repaint();
  193. /** Called when a button is pushed.
  194. @param index the index of the button that was pushed
  195. */
  196. void handleButtonDown (int index);
  197. /** Called when a button is released.
  198. @param index the index of the button that was released
  199. */
  200. void handleButtonUp (int index);
  201. /** Called when a control block button is pressed.
  202. @param buttonIndex the index of the button
  203. @note Requires >= 0.2.5 firmware
  204. @note Only valid with a control block
  205. */
  206. void onControlPress (int buttonIndex);
  207. /** Called when a control block button is released.
  208. @param buttonIndex the index of the button
  209. @note Requires >= 0.2.5 firmware
  210. @note Only valid with a control block
  211. */
  212. void onControlRelease (int buttonIndex);
  213. /** Called when a touch event starts.
  214. Block units follow the number of DNA connectors on the side of the device.
  215. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  216. @param index the touch index, which will stay constant for each finger as it is tracked
  217. @param x the X position of this touch on the device, in block units starting from 0 (left)
  218. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  219. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  220. @param vz the rate at which pressure is currently changing, measured in units/second
  221. */
  222. void touchStart (int index, float x, float y, float z, float vz);
  223. /** Called when a touch event moves.
  224. Block units follow the number of DNA connectors on the side of the device.
  225. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  226. @param index the touch index, which will stay constant for each finger as it is tracked
  227. @param x the X position of this touch on the device, in block units starting from 0 (left)
  228. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  229. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  230. @param vz the rate at which pressure is currently changing, measured in units/second
  231. */
  232. void touchMove (int index, float x, float y, float z, float vz);
  233. /** Called when a touch event ends.
  234. Block units follow the number of DNA connectors on the side of the device.
  235. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  236. @param index the touch index, which will stay constant for each finger as it is tracked
  237. @param x the X position of this touch on the device, in block units starting from 0 (left)
  238. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  239. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  240. @param vz the rate at which pressure is currently changing, measured in units/second
  241. */
  242. void touchEnd (int index, float x, float y, float z, float vz);
  243. /** Called when a program is loaded onto the block and is about to start. Do any setup here. */
  244. void initialise();
  245. /** Called when a block receives a MIDI message. */
  246. void handleMIDI (int byte0, int byte1, int byte2);
  247. /** Called when a block receives a message.
  248. @see sendMessageToBlock
  249. */
  250. void handleMessage (int param1, int param2, int param3);
  251. /** Combines a set of 8-bit ARGB values into a 32-bit colour and returns the result.
  252. @return a 32-bit colour
  253. @param alpha The alpha in range 0 - 255 inclusive
  254. @param red The red in range 0 - 255 inclusive
  255. @param green The green in range 0 - 255 inclusive
  256. @param blue The blue in range 0 - 255 inclusive
  257. */
  258. int makeARGB (int alpha, int red, int green, int blue);
  259. /** Blends the overlaid ARGB colour onto the base one and returns the new colour.
  260. @param baseColour the colour to blend on to
  261. @param overlaidColour The colour to blend in to the baseColour
  262. @returns The blended colour
  263. */
  264. int blendARGB (int baseColour, int overlaidColour);
  265. /** Displays an animation indicating the current battery level of this block.
  266. A control block will light up its top LEDs indicating battery level and a lightpad
  267. block will draw the battery level on the display.
  268. @note Requires >= 0.2.5 firmware
  269. */
  270. void displayBatteryLevel();
  271. /** Clears the display and sets all the LEDs to black. */
  272. void clearDisplay();
  273. /** Clears the display and sets all the LEDs to a specified colour.
  274. @param rgb the colour to use (0xff...)
  275. */
  276. void clearDisplay (int rgb);
  277. /** Sets a pixel to a specified colour with full alpha.
  278. @param rgb the colour to use (0xff...)
  279. @param x the x coordinate of the pixel to fill
  280. @param y the y coordinate of the pixel to fill
  281. */
  282. void fillPixel (int rgb, int x, int y);
  283. /** Blends the current pixel colour with a specified colour.
  284. @param argb the colour to use
  285. @param x the x coordinate of the pixel to blend
  286. @param y the y coordinate of the pixel to blend
  287. */
  288. void blendPixel (int argb, int x, int y);
  289. /** Fills a rectangle on the display with a specified colour.
  290. @param rgb the colour to use (0xff...)
  291. @param x the x coordinate of the rectangle to draw
  292. @param y the y coordinate of the rectangle to draw
  293. @param width the width of the rectangle to draw
  294. @param height the height of the rectangle to draw
  295. */
  296. void fillRect (int rgb, int x, int y, int width, int height);
  297. /** Blends a rectangle on the display with a specified colour.
  298. @param argb the colour to use
  299. @param x the x coordinate of the rectangle to blend
  300. @param y the y coordinate of the rectangle to blend
  301. @param width the width of the rectangle to blend
  302. @param height the height of the rectangle to blend
  303. */
  304. void blendRect (int argb, int x, int y, int width, int height);
  305. /** Fills a rectangle on the display with four corner colours blended together.
  306. @param colourNW the colour to use in the north west corner of the rectangle
  307. @param colourNE the colour to use in the north east corner of the rectangle
  308. @param colourSE the colour to use in the south east corner of the rectangle
  309. @param colourSW the colour to use in the south west corner of the rectangle
  310. @param x the x coordinate of the rectangle
  311. @param y the y coordinate of the rectangle
  312. @param width the width of the rectangle
  313. @param height the height of the rectangle
  314. */
  315. void blendGradientRect (int colourNW, int colourNE, int colourSE, int colourSW, int x, int y, int width, int height);
  316. /** Blends a circle on the display with a specified colour.
  317. @param argb the colour to use
  318. @param xCentre the x position of the circle's centre in block units
  319. @param yCentre the y position of the circle's centre in block units
  320. @param radius the radius of the circle in block units
  321. @param fill if true then the circle will be filled, if false the circle will be an outline
  322. @note Requires >= 0.2.5 firmware
  323. */
  324. void blendCircle (int argb, float xCentre, float yCentre, float radius, bool fill);
  325. /** Draws a number on the display.
  326. @param value the number to draw between 0 and 99
  327. @param colour the colour to use
  328. @param x the x coordinate to use
  329. @param y the y coordinate to use
  330. */
  331. void drawNumber (int value, int colour, int x, int y);
  332. /** Returns the current firmware version of this block.
  333. @returns The firmware version of the form 0xMJMIRV (where MJ = Major, MI = Minor, RV = Revision)
  334. @note Requires >= 0.2.5 firmware
  335. */
  336. int getFirmwareVersion();
  337. /** Returns the battery level of this block, between 0 and 1.0.
  338. @returns the battery level of this block, between 0 and 1.0.
  339. @note Requires >= 0.2.5 firmware
  340. */
  341. float getBatteryLevel();
  342. /** Returns true if this block's battery is charging.
  343. @returns true if this block's battery is charging
  344. @note Requires >= 0.2.5 firmware
  345. */
  346. bool isBatteryCharging();
  347. /** Sets whether status overlays should be displayed on this block.
  348. @note Requires >= 0.2.5 firmware
  349. */
  350. void setStatusOverlayActive (bool active);
  351. /** Sets whether power saving mode should be enabled on this block.
  352. @note Requires >= 0.2.5 firmware
  353. */
  354. void setPowerSavingEnabled (bool enabled);
  355. /** Returns the type of the block with a given ID.
  356. @returns an enum indicating the type of block @see Block::Type
  357. @note Requires >= 0.2.5 firmware
  358. */
  359. int getBlockTypeForID (int blockID);
  360. /** Sends a message to the block with the specified ID.
  361. This will be processed in the handleMessage() callback.
  362. @param blockID the ID of the block to send this message to
  363. @param param1 the first chunk of data to send
  364. @param param2 the second chunk of data to send
  365. @param param3 the third chunk of data to send
  366. */
  367. void sendMessageToBlock (int blockID, int param1, int param2, int param3);
  368. /** Sends a message to the host. To receive this the host will need to implement
  369. the Block::ProgramEventListener::handleProgramEvent() method.
  370. @param param1 the first chunk of data to send
  371. @param param2 the second chunk of data to send
  372. @param param3 the third chunk of data to send
  373. */
  374. void sendMessageToHost (int param1, int param2, int param3);
  375. /** Draws a pressure point with a specified colour and pressure.
  376. @param argb the colour to use
  377. @param touchX the x position of the touch in block units
  378. @param touchY the y position of the touch in block units
  379. @param touchZ the pressure value of the touch
  380. */
  381. void addPressurePoint (int argb, float touchX, float touchY, float touchZ);
  382. /** Draws the pressure map on the display. */
  383. void drawPressureMap();
  384. /** Fades the pressure map on the display. */
  385. void fadePressureMap();
  386. /** Links a another block to this control block.
  387. @param blockID the ID of the block to link
  388. @note Requires >= 0.2.5 firmware
  389. @note Only valid with a control block
  390. */
  391. void linkBlockIDtoController (int blockID);
  392. /** Repaints the control block display.
  393. @note Requires >= 0.2.5 firmware
  394. @note Only valid with a control block
  395. */
  396. void repaintControl();
  397. /** Initialises one of the control block buttons.
  398. @param buttonIndex the index of the button to initialise
  399. @param modeToUse the mode to use for this button @see ControlMode
  400. @param outputType the control type to use @see ControlType
  401. @param val the current value to set this button to
  402. @param min the minimum value for this button
  403. @param max the maximum value for this button
  404. @param index the item index
  405. @param onColourToUse the colour to use when this button is on
  406. @param offColourToUse the colour to use when this button is off
  407. @note Requires >= 0.2.5 firmware
  408. @note Only valid with a control block
  409. */
  410. void initControl (int buttonIndex, int modeToUse, int outputType, int val, int min, int max,
  411. int index, int onColourToUse, int offColourToUse);
  412. /** Control type for use with initControl
  413. @see initControl
  414. */
  415. enum ControlType
  416. {
  417. internalConfig = 0,
  418. midiCC,
  419. sysex
  420. };
  421. /** Control mode for use with initControl
  422. @see initControl
  423. */
  424. enum ControlMode
  425. {
  426. toggle = 0,
  427. togglePulse,
  428. gate,
  429. trigger,
  430. cycle,
  431. incDec,
  432. triState
  433. };
  434. /** Forces a touch event to be handled as seaboard playing.
  435. @param touchIndex the index of the touch event
  436. @note Requires >= 0.2.5 firmware
  437. @note Only valid on a Seaboard
  438. */
  439. void handleTouchAsSeaboard (int touchIndex);
  440. /** Returns the number of blocks in the current topology.
  441. @note Requires >= 0.2.5 firmware
  442. */
  443. int getNumBlocksInTopology();
  444. /** Returns the ID of a block at a given index in the topology.
  445. @param index The index of the block to find in the topology
  446. @returns int The id of the block
  447. @note Requires >= 0.2.5 firmware
  448. */
  449. int getBlockIDForIndex (int index);
  450. /** Returns true if this block is directly connected to the host,
  451. as opposed to only being connected to a different block via a connection port.
  452. @note Requires >= 0.2.5 firmware
  453. */
  454. bool isMasterBlock();
  455. /** Returns true if this block is connected to the host computer, this can be
  456. directly or through connections to other blocks.
  457. @note Requires >= 0.2.5 firmware
  458. */
  459. bool isConnectedToHost();
  460. /** Returns the ID of a block connected to a specified port on this block.
  461. @note Requires >= 0.2.5 firmware
  462. */
  463. int getBlockIDOnPort (int port);
  464. /** Returns the port number that is connected to the master block. Returns 0xFF if there is
  465. no port connected to master.
  466. @returns the port number that is connected to the master block. Returns 0xFF if there is
  467. no port connected to master.
  468. @note Requires >= 0.2.5 firmware
  469. */
  470. int getPortToMaster();
  471. /** Returns the horizontal distance between this block and the master block in block units.
  472. @note Requires >= 0.2.5 firmware
  473. */
  474. int getHorizontalDistFromMaster();
  475. /** Returns the vertical distance between this block and the master block in block units.
  476. @note Requires >= 0.2.5 firmware
  477. */
  478. int getVerticalDistFromMaster();
  479. /** Returns the angle of this block relative to the master block in degrees.
  480. @note Requires >= 0.2.5 firmware
  481. */
  482. int getAngleFromMaster();
  483. /** Sets whether this block should auto-rotate when its angle relative to the master block changes.
  484. @note Requires >= 0.2.5 firmware
  485. */
  486. void setAutoRotate (bool enabled);
  487. /** Returns the index of this block in the current cluster.
  488. @note Requires >= 0.2.5 firmware
  489. */
  490. int getClusterIndex();
  491. /** Returns how many blocks wide the current cluster is.
  492. @returns the width of the cluster (note that a single block will return 1 here)
  493. @note Requires >= 0.2.5 firmware
  494. */
  495. int getClusterWidth();
  496. /** Returns how many blocks high the current cluster is.
  497. @returns the height of the cluster (note that a single block will return 1 here)
  498. @note Requires >= 0.2.5 firmware
  499. */
  500. int getClusterHeight();
  501. /** Returns the x index of this block in the current cluster.
  502. @returns int The cluster x position. (0, 0) is considered to be the top left block
  503. @note Requires >= 0.2.5 firmware
  504. */
  505. int getClusterXpos();
  506. /** Returns the y index of this block in the current cluster.
  507. @returns int The cluster x position. (0, 0) is considered to be the top left block
  508. @note Requires >= 0.2.5 firmware
  509. */
  510. int getClusterYpos();
  511. /** Returns the number of blocks in the current cluster.
  512. @returns the number of blocks in the current cluster.
  513. @note Requires >= 0.2.5 firmware
  514. */
  515. int getNumBlocksInCurrentCluster();
  516. /** Returns the block ID for a block in the current cluster.
  517. @param index the cluster index of the block to get the ID of
  518. @note Requires >= 0.2.5 firmware
  519. */
  520. int getBlockIdForBlockInCluster (int index);
  521. /** Returns true if the master block is in the current cluster.
  522. @note Requires >= 0.2.5 firmware
  523. */
  524. bool isMasterInCurrentCluster();
  525. /** Returns current value of one of the local config items.
  526. @param item the config item to get (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  527. @note Requires >= 0.2.5 firmware
  528. */
  529. int getLocalConfig (int item);
  530. /** Sets the current value of one of the local config items.
  531. @param item the config item to set the value of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  532. @param value the value to set the config to
  533. @note Requires >= 0.2.5 firmware
  534. */
  535. void setLocalConfig (int item, int value);
  536. /** Sets the local config of a block to the config item of a remote block.
  537. @param longAddress the address of the remote block
  538. @param item the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  539. @note Requires >= 0.2.5 firmware
  540. */
  541. void requestRemoteConfig (int longAddress, int item);
  542. /** Sets the config of a remote block.
  543. @param longAddress the address of the remote block
  544. @param item the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  545. @param value the value to set the config to
  546. @note Requires >= 0.2.5 firmware
  547. */
  548. void setRemoteConfig (int longAddress, int item, int value);
  549. /** Sets the range of one of the local config items.
  550. @param item the config item to set the range of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  551. @param min the minimum value this config item should use
  552. @param max the maximum value this config item should use
  553. @note Requires >= 0.2.5 firmware
  554. */
  555. void setLocalConfigItemRange (int item, int min, int max);
  556. /** Sets whether a local config item should be active.
  557. @param item the config item to set active (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  558. @param isActive sets whether the config should be active or not
  559. @param saveToFlash if true then this config item will be saved to the flash memory of the block
  560. @note Requires >= 0.2.5 firmware
  561. */
  562. void setLocalConfigActiveState (int item, bool isActive, bool saveToFlash);
  563. /** @} */