[Clam-devel] Typed controls: Pending refactorings

David García Garzón dgarcia at iua.upf.edu
Wed Feb 4 10:29:30 PST 2009

Just for the record, and just in case some one wants to take them before i can 
do it:

Current refactoring status (X=In or Out):

- BaseXControl: Is the base class for any X controls
- XControl: Is the old control interface for just floats
- TypedXControl<T>: Is the new templated interface
- FloatXControl: Is a typedef to XControl to easy the transition

To get there:
- Most common behaviour has been moved to BaseXControl.
- All uses of XControl has been renamed to BaseXControl or FloatXControl 
depending on the kind of usage (general or float).
- Some direct control sending has been abstracted into functions living in 

Target status:

- BaseXControl: Is the base class for any X controls
- XControl<T>: Is the new templated interface (renamed!)
- FloatXControl: Should point to XControl<float> or we could remove it

So, pending steps are:

1- Converge existing differences in float interface (bounds, defaults and 
bool/int conversion) in BaseXControl/XTypedControl versus XControl one.
2- Point FloatXControl typedef to XControl<T> and check that all is still 
working properly ¬¬
3- Remove the XControl classes, checking that there still is no direct 
dependency on them
4- Rename TypedXControl<T> to XControl<T> so we have the same interface than 
with ports.
5- Rename FloatXControl usage to XControl<float> (or keep it as we have 
AudioInPorts as InPort<float> alias)

Other issues to address eventually:

6- Decide what to do with the Bound and Default interface in BaseXControl
7- What to do with the free functions in Processing.hxx that handle float 
control sending.
8- Make XControlPublishers not just float


More information about the clam-devel mailing list