/** * ControlP5 properties sets. * * saves/loads controller values into/from properties-file. * this example shows how to make property sets of controllers that can be loaded and * saved individually. By default property files come in a serialized format * with a .ser extension. * * * default properties load/save key combinations are * alt+shift+l to load properties * alt+shift+s to save properties * * * find a list of public methods available for the ControllerPropererties Controller * at the bottom of this sketch's source code * * by andreas schlegel, 2011 * www.sojamo.de/libraries/controlp5 * */ import controlP5.*; ControlP5 cp5; public int slider1 = 32; public int slider2 = 64; public int slider3 = 128; public int slider4 = 255; void setup() { size(400, 600); cp5 = new ControlP5(this); // add a vertical slider cp5.addSlider("slider1", 0, 255, 20, 100, 128, 20); cp5.addSlider("slider2", 0, 255, 20, 150, 128, 20); cp5.addSlider("slider3", 0, 255, 20, 200, 128, 20); cp5.addSlider("slider4", 0, 255, 20, 250, 128, 20); cp5.addButton("b1", 0, 20, 350, 80, 12).setCaptionLabel("save setA"); cp5.addButton("b2", 0, 101, 350, 80, 12).setCaptionLabel("load setA").setColorBackground(color(0, 100, 50)); cp5.addButton("b3", 0, 200, 350, 80, 12).setCaptionLabel("save default"); cp5.addButton("b4", 0, 281, 350, 80, 12).setCaptionLabel("load default").setColorBackground(color(0, 100, 50)); // add a new properties set 'setA' cp5.getProperties().addSet("setA"); // move controller 'slider' from the default set to setA // the 3 parameters read like this: move controller(1) from set(2) to set(3) cp5.getProperties().move(cp5.getController("slider1"), "default", "setA"); // use copy instead of move to register 'slider' with both sets (default and setA) // prints the current list of properties registered and the set(s) they belong to cp5.getProperties().print(); /* by default properties are saved in JSON format, if you want to change to the old default (java's serialized format), un-comment line below*/ // cp5.getProperties().setFormat(ControlP5.SERIALIZED); } void draw() { background(0); fill(slider1); rect(250, 100, 100, 20); fill(slider2); rect(250, 150, 100, 20); fill(slider3); rect(250, 200, 100, 20); fill(slider4); rect(250, 250, 100, 20); } void b1(float v) { cp5.saveProperties("setA", "setA"); } void b2(float v) { cp5.loadProperties(("setA")); } void b3(float v) { cp5.saveProperties("default", "default"); } void b4(float v) { cp5.loadProperties(("default.json")); } /* a list of all methods available for the ControllerProperties class use ControlP5.printPublicMethodsFor(ControllerProperties.class); to print the following list into the console. You can find further details about class ControllerProperties in the javadoc. Format: ClassName : returnType methodName(parameter type) controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface) controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface, String) controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface, String, String) controlP5.ControllerProperties : ControllerProperty getProperty(ControllerInterface, String) controlP5.ControllerProperties : ControllerProperty getProperty(ControllerInterface, String, String) controlP5.ControllerProperties : ControllerProperty register(ControllerInterface, String) controlP5.ControllerProperties : ControllerProperty register(ControllerInterface, String, String) controlP5.ControllerProperties : HashSet addSet(String) controlP5.ControllerProperties : HashSet getPropertySet(ControllerInterface) controlP5.ControllerProperties : List get(ControllerInterface) controlP5.ControllerProperties : Map get() controlP5.ControllerProperties : String toString() controlP5.ControllerProperties : boolean load() controlP5.ControllerProperties : boolean load(String) controlP5.ControllerProperties : void delete(ControllerProperty) controlP5.ControllerProperties : void move(ControllerInterface, String, String) controlP5.ControllerProperties : void move(ControllerProperty, String, String) controlP5.ControllerProperties : void only(ControllerProperty, String) controlP5.ControllerProperties : void print() controlP5.ControllerProperties : void setFormat(Format) java.lang.Object : String toString() java.lang.Object : boolean equals(Object) */