|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
CompoundControlPersistence | |
ControlLaw | A 'control law' with bidirectional user/control value scaling. |
ControlSelector | ControlSelector defines the contract for selecting Controls together with some simple logical unary and binary implementations. |
NativeSupport |
Class Summary | |
---|---|
AbstractLaw | An abstract control law. |
BooleanControl | A BooleanControl enables control of a boolean value. |
CompoundControl | A CompoundControl , such as a graphic equalizer, provides control
over two or more related properties, each of which is itself represented as
a Control . |
CompoundControl.BypassControl | A BypassControl is used if canBypass() is overridden to return true (default is false). |
CompoundControlChain | An editable chain of CompoundControls, suitable for use as an audio mixer strip or audio multi-fx unit. |
CompoundControlChain.ChainMutation | A ChainMutation is used to notify relevant observers to modify their structure to match this CompoundControlChain in a thread-safe manner. |
CompoundControlMidiPersistence | |
Control | The abstract base class for generic concrete Controls. |
ControlSelector.LogicalBinary | An abstract logical binary selector which operates with two specified Controls. |
ControlSelector.Not | A logical NOT selector which selects all Controls except the Control specified. |
ControlSelector.Or | A logical OR selector which selects either specified Control but no others. |
EnumControl | A EnumControl provides control over a set of discrete possible values, each represented by an object. |
FloatControl | A FloatControl object provides control over a range of floating-point values. |
IntegerControl | An IntegerControl is actually a FloatControl which has an int-based API. |
IntegerLaw | A linear control law. |
LawControl | A LawControl enables control of a float value using the specified control law. |
LinearLaw | A linear control law. |
LogLaw | A logarithmic control law. |
This package provides a core Composite pattern model for controls and indicators such as potentiometers and switches, and their compositions.
Control is the abstract base class for this hierarchy. Control extends Observable so that user interfaces and other problem domain components are loosely coupled to Controls. Control also implements a Chain of Responsibility using notifyParent() which allows the root of a composite Control instance hierachy to observe all child Control changes without using a vast number of Observers. Other Chains of Responsibility exists in the various getControlPath() methods. The Chain of Responsibility pattern complements the Composite pattern very well and they are often found together.
CompoundControl is the basic composite Control which does not allow its structure to be mutated subsequent to construction.
CompoundControlChain extends CompoundControl to permit mutability of its structure using insert(), move() and delete() methods which operate on named Controls. CompoundControlChain notifies its Observers of these structural mutations using ChainMutation which uses the Command pattern to allow the loosely coupled Observers to replicate or track the structure in a thread-safe manner.
BooleanControl controls a boolean state sutiable for switches (including momentary acting switches) and on/off indicators.
FloatControl controls a floating point state with a particular control law suitable for potentiometers and meters.
EnumControl controls an enumeration state suitable for multiple position switches.
LawControl controls a floating point state with a particular control law and is actually the direct superclass of FloatControl. It is generalised from FloatControl to allow more versatile construction.
ControlLaw is the interface that defines the simple contract for a control law.
AbstractLaw is an abstract implementation of ControlLaw with subclasses Linearlaw and LogLaw which are concrete implementations of linear and log control laws respectively.
ControlSelector is an interface which defines the contract for selecting or not selecting a particular Control in the context of walking a composite Control hierarchy. Simple unary and binary logical selectors are implemented as inner classes of the interface.
The Control composite is so critically important to other Toot packages that subclasses of Control are always coloured blue in UML class diagrams. Additionally interfaces are always coloured yellow.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |