sintonia/ecasound-2.7.2/libecasound/midi-cc.h

56 lines
1.2 KiB
C++

#ifndef INCLUDE_MIDI_CC_H
#define INCLUDE_MIDI_CC_H
#include <string>
#include "ctrl-source.h"
#include "midi-client.h"
/**
* Interface to MIDI continuous controllers
*/
class MIDI_CONTROLLER : public CONTROLLER_SOURCE,
public MIDI_CLIENT {
public:
/** @name Functions implemented from CONTROLLER_SOURCE */
/*@{*/
virtual void init(void);
virtual parameter_t value(double pos_secs);
virtual void set_initial_value(parameter_t arg);
/*@}*/
/** @name Functions implemented from DYNAMIC_PARAMETERS<string> */
/*@{*/
std::string parameter_names(void) const { return("controller,channel"); }
void set_parameter(int param, parameter_t value);
parameter_t get_parameter(int param) const;
std::string name(void) const { return("MIDI-Controller"); }
/*@}*/
/** @name Functions implemented from ECA_OBJECT */
/*@{*/
MIDI_CONTROLLER* clone(void) const { return new MIDI_CONTROLLER(*this); }
MIDI_CONTROLLER* new_expr(void) const { return new MIDI_CONTROLLER(); }
/*@}*/
MIDI_CONTROLLER(int controller_number = 0, int midi_channel = 0);
private:
int controller_rep, channel_rep;
parameter_t init_value_rep;
bool trace_request_rep;
};
#endif