Package heronarts.lx.parameter
Class LXListenableParameter
java.lang.Object
heronarts.lx.parameter.LXListenableParameter
- All Implemented Interfaces:
LXPath,LXParameter
- Direct Known Subclasses:
AggregateParameter,LXListenableNormalizedParameter,MutableParameter,StringParameter
This is a parameter instance that can be listened to, meaning we are able to
deterministically know when the value has changed. This means that all
modifications *must* come through setValue().
-
Nested Class Summary
Nested classes/interfaces inherited from interface heronarts.lx.parameter.LXParameter
LXParameter.Collection, LXParameter.Formatter, LXParameter.Monitor, LXParameter.MultiMonitor, LXParameter.Polarity, LXParameter.Units -
Field Summary
FieldsFields inherited from interface heronarts.lx.LXPath
DEFAULT_SEPARATOR, ROOT, ROOT_PREFIX, ROOT_SLASH -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedLXListenableParameter(double value) protectedLXListenableParameter(String label) protectedLXListenableParameter(String label, double value) -
Method Summary
Modifier and TypeMethodDescriptionaddListener(LXParameterListener listener) addListener(LXParameterListener listener, boolean fireImmediately) bang()Manually notify all listeners of this parameter's current value.voiddispose()Invoked when the parameter is done being used and none of its resources are needed anymore.Returns a contextual help message explaining the purpose of this parameter or component to the user, or null if none is available.Gets the formatter to be used for printing this parameter's valuegetLabel()Gets the label for this parameterReturns the component that this object belongs toReturns the parent aggregate parameter that this parameter belongs togetPath()Returns the immediate path of this component, relative to its parentGets the polarity of this parameter.getUnits()Gets the unit format that this parameter's value stores.doublegetValue()Retrieves the value of the parameterincrementValue(double amount) final booleanbooleanWhether this parameter should be eligible for mapping via MIDI or modulation control.final LXListenableParameterremoveListener(LXParameterListener listener) reset()A method to reset the value of the parameter, if a default is available.reset(double value) Resets the value of the parameter, giving it a new default.setComponent(LXComponent component, String path) Sets the component that owns this parametersetDescription(String description) setFormatter(LXParameter.Formatter formatter) Sets the formatter used for printing this parameter's valuesetMappable(boolean mappable) Sets whether this parameter should be eligible for MIDI/modulation mapping or not.setPolarity(LXParameter.Polarity polarity) setUnits(LXParameter.Units units) final LXParametersetValue(double value) Sets the value of the parameter.final LXParametersetValue(double value, boolean notifyListeners) protected abstract doubleupdateValue(double value) Invoked when the value has changed.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface heronarts.lx.parameter.LXParameter
getBaseValue, getBaseValuef, getValuefMethods inherited from interface heronarts.lx.LXPath
getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalPath, getCanonicalPath, isDescendant
-
Field Details
-
description
-
-
Constructor Details
-
LXListenableParameter
protected LXListenableParameter() -
LXListenableParameter
-
LXListenableParameter
protected LXListenableParameter(double value) -
LXListenableParameter
-
-
Method Details
-
getFormatter
Description copied from interface:LXParameterGets the formatter to be used for printing this parameter's value- Specified by:
getFormatterin interfaceLXParameter- Returns:
- Formatter
-
setFormatter
Description copied from interface:LXParameterSets the formatter used for printing this parameter's value- Specified by:
setFormatterin interfaceLXParameter- Parameters:
formatter- Formatter- Returns:
- The parameter
-
getUnits
Description copied from interface:LXParameterGets the unit format that this parameter's value stores.- Specified by:
getUnitsin interfaceLXParameter- Returns:
- Units
-
setUnits
-
getPolarity
Description copied from interface:LXParameterGets the polarity of this parameter.- Specified by:
getPolarityin interfaceLXParameter- Returns:
- polarity of this parameter
-
setPolarity
-
addListener
-
addListener
-
removeListener
-
setDescription
-
getDescription
Description copied from interface:LXPathReturns a contextual help message explaining the purpose of this parameter or component to the user, or null if none is available.- Specified by:
getDescriptionin interfaceLXPath- Returns:
- Contextual help string explaining purpose of the element
-
setComponent
Description copied from interface:LXParameterSets the component that owns this parameter- Specified by:
setComponentin interfaceLXParameter- Parameters:
component- Componentpath- Path name for parameter- Returns:
- this
-
getParentParameter
Description copied from interface:LXParameterReturns the parent aggregate parameter that this parameter belongs to- Specified by:
getParentParameterin interfaceLXParameter- Returns:
- Parent aggregate parameter, or null
-
getParent
Description copied from interface:LXPathReturns the component that this object belongs to -
getPath
Description copied from interface:LXPathReturns the immediate path of this component, relative to its parent -
dispose
public void dispose()Description copied from interface:LXParameterInvoked when the parameter is done being used and none of its resources are needed anymore.- Specified by:
disposein interfaceLXParameter
-
reset
Description copied from interface:LXParameterA method to reset the value of the parameter, if a default is available. Not necessarily defined for all parameters, may be ignored.- Specified by:
resetin interfaceLXParameter- Returns:
- this
-
reset
Resets the value of the parameter, giving it a new default. Future calls to reset() with no parameter will use this value.- Parameters:
value- New default value- Returns:
- this
-
incrementValue
-
setValue
Description copied from interface:LXParameterSets the value of the parameter.- Specified by:
setValuein interfaceLXParameter- Parameters:
value- The value- Returns:
- this
-
setValue
-
getValue
public double getValue()Description copied from interface:LXParameterRetrieves the value of the parameter- Specified by:
getValuein interfaceLXParameter- Returns:
- Parameter value
-
isDefault
public final boolean isDefault() -
getLabel
Description copied from interface:LXParameterGets the label for this parameter- Specified by:
getLabelin interfaceLXParameter- Specified by:
getLabelin interfaceLXPath- Returns:
- Label of parameter
-
bang
Manually notify all listeners of this parameter's current value. Useful in some situations to force state reset.- Returns:
- this
-
setMappable
Description copied from interface:LXParameterSets whether this parameter should be eligible for MIDI/modulation mapping or not.- Specified by:
setMappablein interfaceLXParameter- Parameters:
mappable- Whether parameter should be available for mapping- Returns:
- this
-
isMappable
public boolean isMappable()Description copied from interface:LXParameterWhether this parameter should be eligible for mapping via MIDI or modulation control.- Specified by:
isMappablein interfaceLXParameter- Returns:
trueif mappable, false if otherwise
-
updateValue
protected abstract double updateValue(double value) Invoked when the value has changed. Subclasses should update any special internal state according to this new value.- Parameters:
value- New value- Returns:
- this
-