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.

786 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 minimum 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. /** Call this when a control block button is pressed to trigger the buttons default behaviour.
  202. @param buttonIndex the index of the button
  203. @note Requires >= 0.2.5 firmware
  204. @note Only valid with a control block
  205. @see initControl onControlRelease
  206. */
  207. void onControlPress (int buttonIndex);
  208. /** Call this when a control block button is released to trigger the buttons default behaviour.
  209. @param buttonIndex the index of the button
  210. @note Requires >= 0.2.5 firmware
  211. @note Only valid with a control block
  212. @see initControl onControlPress
  213. */
  214. void onControlRelease (int buttonIndex);
  215. /** Called when a touch event starts.
  216. Block units follow the number of DNA connectors on the side of the device.
  217. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  218. @param index the touch index, which will stay constant for each finger as it is tracked
  219. @param x the X position of this touch on the device, in block units starting from 0 (left)
  220. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  221. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  222. @param vz the rate at which pressure is currently changing, measured in units/second
  223. */
  224. void touchStart (int index, float x, float y, float z, float vz);
  225. /** Called when a touch event moves.
  226. Block units follow the number of DNA connectors on the side of the device.
  227. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  228. @param index the touch index, which will stay constant for each finger as it is tracked
  229. @param x the X position of this touch on the device, in block units starting from 0 (left)
  230. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  231. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  232. @param vz the rate at which pressure is currently changing, measured in units/second
  233. */
  234. void touchMove (int index, float x, float y, float z, float vz);
  235. /** Called when a touch event ends.
  236. Block units follow the number of DNA connectors on the side of the device.
  237. For instance, a Lightpad Block is 2x2 and a Control Block is 2x1.
  238. @param index the touch index, which will stay constant for each finger as it is tracked
  239. @param x the X position of this touch on the device, in block units starting from 0 (left)
  240. @param y the Y position of this touch on the device, in block units starting from 0 (top)
  241. @param z the current pressure of this touch, in the range 0.0 (no pressure) to 1.0 (very hard)
  242. @param vz the rate at which pressure is currently changing, measured in units/second
  243. */
  244. void touchEnd (int index, float x, float y, float z, float vz);
  245. /** Called when a program is loaded onto the block and is about to start. Do any setup here. */
  246. void initialise();
  247. /** Called when a block receives a MIDI message. */
  248. void handleMIDI (int byte0, int byte1, int byte2);
  249. /** Called when a block receives a message.
  250. @see sendMessageToBlock
  251. */
  252. void handleMessage (int param1, int param2, int param3);
  253. /** Combines a set of 8-bit ARGB values into a 32-bit colour and returns the result.
  254. @return a 32-bit colour
  255. @param alpha The alpha in range 0 - 255 inclusive
  256. @param red The red in range 0 - 255 inclusive
  257. @param green The green in range 0 - 255 inclusive
  258. @param blue The blue in range 0 - 255 inclusive
  259. */
  260. int makeARGB (int alpha, int red, int green, int blue);
  261. /** Blends the overlaid ARGB colour onto the base one and returns the new colour.
  262. @param baseColour the colour to blend on to
  263. @param overlaidColour The colour to blend in to the baseColour
  264. @returns The blended colour
  265. */
  266. int blendARGB (int baseColour, int overlaidColour);
  267. /** Displays an animation indicating the current battery level of this block.
  268. A control block will light up its top LEDs indicating battery level and a lightpad
  269. block will draw the battery level on the display.
  270. @note Requires >= 0.2.5 firmware
  271. */
  272. void displayBatteryLevel();
  273. /** Clears the display and sets all the LEDs to black. */
  274. void clearDisplay();
  275. /** Clears the display and sets all the LEDs to a specified colour.
  276. @param rgb the colour to use (0xff...)
  277. */
  278. void clearDisplay (int rgb);
  279. /** Sets a pixel to a specified colour with full alpha.
  280. @param rgb the colour to use (0xff...)
  281. @param x the x coordinate of the pixel to fill
  282. @param y the y coordinate of the pixel to fill
  283. */
  284. void fillPixel (int rgb, int x, int y);
  285. /** Blends the current pixel colour with a specified colour.
  286. @param argb the colour to use
  287. @param x the x coordinate of the pixel to blend
  288. @param y the y coordinate of the pixel to blend
  289. */
  290. void blendPixel (int argb, int x, int y);
  291. /** Fills a rectangle on the display with a specified colour.
  292. @param rgb the colour to use (0xff...)
  293. @param x the x coordinate of the rectangle to draw
  294. @param y the y coordinate of the rectangle to draw
  295. @param width the width of the rectangle to draw
  296. @param height the height of the rectangle to draw
  297. */
  298. void fillRect (int rgb, int x, int y, int width, int height);
  299. /** Blends a rectangle on the display with a specified colour.
  300. @param argb the colour to use
  301. @param x the x coordinate of the rectangle to blend
  302. @param y the y coordinate of the rectangle to blend
  303. @param width the width of the rectangle to blend
  304. @param height the height of the rectangle to blend
  305. */
  306. void blendRect (int argb, int x, int y, int width, int height);
  307. /** Fills a rectangle on the display with four corner colours blended together.
  308. @param colourNW the colour to use in the north west corner of the rectangle
  309. @param colourNE the colour to use in the north east corner of the rectangle
  310. @param colourSE the colour to use in the south east corner of the rectangle
  311. @param colourSW the colour to use in the south west corner of the rectangle
  312. @param x the x coordinate of the rectangle
  313. @param y the y coordinate of the rectangle
  314. @param width the width of the rectangle
  315. @param height the height of the rectangle
  316. */
  317. void blendGradientRect (int colourNW, int colourNE, int colourSE, int colourSW, int x, int y, int width, int height);
  318. /** Blends a circle on the display with a specified colour.
  319. @param argb the colour to use
  320. @param xCentre the x position of the circle's centre in block units
  321. @param yCentre the y position of the circle's centre in block units
  322. @param radius the radius of the circle in block units
  323. @param fill if true then the circle will be filled, if false the circle will be an outline
  324. @note Requires >= 0.2.5 firmware
  325. */
  326. void blendCircle (int argb, float xCentre, float yCentre, float radius, bool fill);
  327. /** Draws a number on the display.
  328. @param value the number to draw between 0 and 99
  329. @param colour the colour to use
  330. @param x the x coordinate to use
  331. @param y the y coordinate to use
  332. */
  333. void drawNumber (int value, int colour, int x, int y);
  334. /** Returns the current firmware version of this block.
  335. @returns The firmware version of the form 0xMJMIRV (where MJ = Major, MI = Minor, RV = Revision)
  336. @note Requires >= 0.2.5 firmware
  337. */
  338. int getFirmwareVersion();
  339. /** Returns the battery level of this block, between 0 and 1.0.
  340. @returns the battery level of this block, between 0 and 1.0.
  341. @note Requires >= 0.2.5 firmware
  342. */
  343. float getBatteryLevel();
  344. /** Returns true if this block's battery is charging.
  345. @returns true if this block's battery is charging
  346. @note Requires >= 0.2.5 firmware
  347. */
  348. bool isBatteryCharging();
  349. /** Sets whether status overlays should be displayed on this block.
  350. @note Requires >= 0.2.5 firmware
  351. */
  352. void setStatusOverlayActive (bool active);
  353. /** Sets whether power saving mode should be enabled on this block.
  354. @note Requires >= 0.2.5 firmware
  355. */
  356. void setPowerSavingEnabled (bool enabled);
  357. /** Returns the type of the block with a given ID.
  358. @returns an enum indicating the type of block @see Block::Type
  359. @note Requires >= 0.2.5 firmware
  360. */
  361. int getBlockTypeForID (int blockID);
  362. /** Sends a message to the block with the specified ID.
  363. This will be processed in the handleMessage() callback.
  364. @param blockID the ID of the block to send this message to
  365. @param param1 the first chunk of data to send
  366. @param param2 the second chunk of data to send
  367. @param param3 the third chunk of data to send
  368. */
  369. void sendMessageToBlock (int blockID, int param1, int param2, int param3);
  370. /** Sends a message to the host. To receive this the host will need to implement
  371. the Block::ProgramEventListener::handleProgramEvent() method.
  372. @param param1 the first chunk of data to send
  373. @param param2 the second chunk of data to send
  374. @param param3 the third chunk of data to send
  375. */
  376. void sendMessageToHost (int param1, int param2, int param3);
  377. /** Draws a pressure point with a specified colour and pressure.
  378. @param argb the colour to use
  379. @param touchX the x position of the touch in block units
  380. @param touchY the y position of the touch in block units
  381. @param touchZ the pressure value of the touch
  382. */
  383. void addPressurePoint (int argb, float touchX, float touchY, float touchZ);
  384. /** Draws the pressure map on the display. */
  385. void drawPressureMap();
  386. /** Fades the pressure map on the display. */
  387. void fadePressureMap();
  388. /** Links a another block to this control block.
  389. @param blockID the ID of the block to link
  390. @note Requires >= 0.2.5 firmware
  391. @note Only valid with a control block
  392. */
  393. void linkBlockIDtoController (int blockID);
  394. /** Repaints the control block display.
  395. @note Requires >= 0.2.5 firmware
  396. @note Only valid with a control block
  397. */
  398. void repaintControl();
  399. /** Initialises one of the control block buttons.
  400. @param buttonIndex the index of the button to initialise
  401. @param modeToUse the mode to use for this button @see ControlMode
  402. @param outputType the control type to use @see ControlType
  403. @param val the current value to set this button to
  404. @param min the minimum value for this button
  405. @param max the maximum value for this button
  406. @param index the item index
  407. @param onColourToUse the colour to use when this button is on
  408. @param offColourToUse the colour to use when this button is off
  409. @note Requires >= 0.2.5 firmware
  410. @note Only valid with a control block
  411. */
  412. void initControl (int buttonIndex, int modeToUse, int outputType, int val, int min, int max,
  413. int index, int onColourToUse, int offColourToUse);
  414. /** Control type for use with initControl
  415. @see initControl
  416. */
  417. enum ControlType
  418. {
  419. internalConfig = 0,
  420. midiCC,
  421. sysex
  422. };
  423. /** Control mode for use with initControl
  424. @see initControl
  425. */
  426. enum ControlMode
  427. {
  428. toggle = 0,
  429. togglePulse,
  430. gate,
  431. trigger,
  432. cycle,
  433. incDec,
  434. triState
  435. };
  436. /** Forces a touch event to be handled as seaboard playing.
  437. @param touchIndex the index of the touch event
  438. @note Requires >= 0.2.5 firmware
  439. @note Only valid on a Seaboard
  440. */
  441. void handleTouchAsSeaboard (int touchIndex);
  442. /** Returns the number of blocks in the current topology.
  443. @note Requires >= 0.2.5 firmware
  444. */
  445. int getNumBlocksInTopology();
  446. /** Returns the ID of a block at a given index in the topology.
  447. @param index The index of the block to find in the topology
  448. @returns int The id of the block
  449. @note Requires >= 0.2.5 firmware
  450. */
  451. int getBlockIDForIndex (int index);
  452. /** Returns true if this block is directly connected to the host,
  453. as opposed to only being connected to a different block via a connection port.
  454. @note Requires >= 0.2.5 firmware
  455. */
  456. bool isMasterBlock();
  457. /** Returns true if this block is connected to the host computer, this can be
  458. directly or through connections to other blocks.
  459. @note Requires >= 0.2.5 firmware
  460. */
  461. bool isConnectedToHost();
  462. /** Returns the ID of a block connected to a specified port on this block.
  463. @note Requires >= 0.2.5 firmware
  464. */
  465. int getBlockIDOnPort (int port);
  466. /** Returns the port number that is connected to the master block. Returns 0xFF if there is
  467. no port connected to master.
  468. @returns the port number that is connected to the master block. Returns 0xFF if there is
  469. no port connected to master.
  470. @note Requires >= 0.2.5 firmware
  471. */
  472. int getPortToMaster();
  473. /** Returns the horizontal distance between this block and the master block in block units.
  474. @note Requires >= 0.2.5 firmware
  475. */
  476. int getHorizontalDistFromMaster();
  477. /** Returns the vertical distance between this block and the master block in block units.
  478. @note Requires >= 0.2.5 firmware
  479. */
  480. int getVerticalDistFromMaster();
  481. /** Returns the angle of this block relative to the master block in degrees.
  482. @note Requires >= 0.2.5 firmware
  483. */
  484. int getAngleFromMaster();
  485. /** Sets whether this block should auto-rotate when its angle relative to the master block changes.
  486. @note Requires >= 0.2.5 firmware
  487. */
  488. void setAutoRotate (bool enabled);
  489. /** Returns the index of this block in the current cluster.
  490. @note Requires >= 0.2.5 firmware
  491. */
  492. int getClusterIndex();
  493. /** Returns how many blocks wide the current cluster is.
  494. @returns the width of the cluster (note that a single block will return 1 here)
  495. @note Requires >= 0.2.5 firmware
  496. */
  497. int getClusterWidth();
  498. /** Returns how many blocks high the current cluster is.
  499. @returns the height of the cluster (note that a single block will return 1 here)
  500. @note Requires >= 0.2.5 firmware
  501. */
  502. int getClusterHeight();
  503. /** Returns the x index of this block in the current cluster.
  504. @returns int The cluster x position. (0, 0) is considered to be the top left block
  505. @note Requires >= 0.2.5 firmware
  506. */
  507. int getClusterXpos();
  508. /** Returns the y index of this block in the current cluster.
  509. @returns int The cluster x position. (0, 0) is considered to be the top left block
  510. @note Requires >= 0.2.5 firmware
  511. */
  512. int getClusterYpos();
  513. /** Returns the number of blocks in the current cluster.
  514. @returns the number of blocks in the current cluster.
  515. @note Requires >= 0.2.5 firmware
  516. */
  517. int getNumBlocksInCurrentCluster();
  518. /** Returns the block ID for a block in the current cluster.
  519. @param index the cluster index of the block to get the ID of
  520. @note Requires >= 0.2.5 firmware
  521. */
  522. int getBlockIdForBlockInCluster (int index);
  523. /** Returns true if the master block is in the current cluster.
  524. @note Requires >= 0.2.5 firmware
  525. */
  526. bool isMasterInCurrentCluster();
  527. /** Returns current value of one of the local config items.
  528. @param item the config item to get (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  529. @note Requires >= 0.2.5 firmware
  530. */
  531. int getLocalConfig (int item);
  532. /** Sets the current value of one of the local config items.
  533. @param item the config item to set the value of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  534. @param value the value to set the config to
  535. @note Requires >= 0.2.5 firmware
  536. */
  537. void setLocalConfig (int item, int value);
  538. /** Sets the local config of a block to the config item of a remote block.
  539. @param longAddress the address of the remote block
  540. @param item the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  541. @note Requires >= 0.2.5 firmware
  542. */
  543. void requestRemoteConfig (int longAddress, int item);
  544. /** Sets the config of a remote block.
  545. @param longAddress the address of the remote block
  546. @param item the config item (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  547. @param value the value to set the config to
  548. @note Requires >= 0.2.5 firmware
  549. */
  550. void setRemoteConfig (int longAddress, int item, int value);
  551. /** Sets the range of one of the local config items.
  552. @param item the config item to set the range of (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  553. @param min the minimum value this config item should use
  554. @param max the maximum value this config item should use
  555. @note Requires >= 0.2.5 firmware
  556. */
  557. void setLocalConfigItemRange (int item, int min, int max);
  558. /** Sets whether a local config item should be active.
  559. @param item the config item to set active (see ConfigItemId enum in juce_BlocksProtocolDefinitions.h)
  560. @param isActive sets whether the config should be active or not
  561. @param saveToFlash if true then this config item will be saved to the flash memory of the block
  562. @note Requires >= 0.2.5 firmware
  563. */
  564. void setLocalConfigActiveState (int item, bool isActive, bool saveToFlash);
  565. /** @} */