sintonia/library/ecasound-2.7.2/libecasound/ctrl-source.h

46 lines
1.1 KiB
C++

#ifndef INCLUDE_CTRL_SOURCE_H
#define INCLUDE_CTRL_SOURCE_H
#include "eca-audio-position.h"
#include "eca-operator.h"
/**
* Interface class for implementing control data
* source objects.
*/
class CONTROLLER_SOURCE : public OPERATOR {
public:
typedef SAMPLE_SPECS::sample_t parameter_t;
/**
* Initializes the controller source.
*
* This function is called at least once before
* the first call to value().
*/
virtual void init(void) = 0;
/**
* Returns the current value for the given
* position.
*/
virtual parameter_t value(double pos_secs) = 0;
/**
* Sets an initial value for the controller.
*
* Controllers that are driven by external sources, can use the
* initial value if there is an initial gap in control data. The
* standard value range ofs [0,1] should be used.
*
* Should be set before the first call to value().
*/
virtual void set_initial_value(parameter_t arg) = 0;
virtual CONTROLLER_SOURCE* clone(void) const = 0;
virtual CONTROLLER_SOURCE* new_expr(void) const = 0;
};
#endif