Csound and CsoundAC API  5.17
Public Member Functions | Static Public Member Functions | Data Fields
OpcodeBase< T > Class Template Reference

Template base class, or pseudo-virtual base class, for writing Csound opcodes in C++. More...

#include <OpcodeBase.hpp>

Public Member Functions

int audio (CSOUND *csound)
int init (CSOUND *csound)
int kontrol (CSOUND *csound)
void log (CSOUND *csound, const char *format,...)
void warn (CSOUND *csound, const char *format,...)

Static Public Member Functions

static int audio_ (CSOUND *csound, void *opcode)
static int init_ (CSOUND *csound, void *opcode)
static int kontrol_ (CSOUND *csound, void *opcode)

Data Fields

OPDS h

Detailed Description

template<typename T>
class OpcodeBase< T >

Template base class, or pseudo-virtual base class, for writing Csound opcodes in C++.

Derive opcode implementation classes like this:

DerivedClass : public OpcodeBase<DerivedClass> { public: // All output fields must be declared first as MYFLT *: MYFLT *aret1; // All input fields must be declared next as MYFLT *: MYFLT *iarg1; MYFLT *karg2; MYFLT *aarg3; // All internal state variables must be declared after that: size_t state1; double state2; MYFLT state3; // Declare and implement only whichever of these are required: int init(); int kontrol(); int audio; int noteoff(); void deinit(); };

Member Function Documentation

template<typename T >
int OpcodeBase< T >::audio ( CSOUND csound)
inline

References NOTOK.

Referenced by OpcodeBase< T >::audio_().

template<typename T >
static int OpcodeBase< T >::audio_ ( CSOUND csound,
void *  opcode 
)
inlinestatic
template<typename T >
int OpcodeBase< T >::init ( CSOUND csound)
inline

References NOTOK.

Referenced by OpcodeBase< T >::init_().

template<typename T >
static int OpcodeBase< T >::init_ ( CSOUND csound,
void *  opcode 
)
inlinestatic
template<typename T >
int OpcodeBase< T >::kontrol ( CSOUND csound)
inline

References NOTOK.

Referenced by OpcodeBase< T >::kontrol_().

template<typename T >
static int OpcodeBase< T >::kontrol_ ( CSOUND csound,
void *  opcode 
)
inlinestatic
template<typename T >
void OpcodeBase< T >::log ( CSOUND csound,
const char *  format,
  ... 
)
inline

References CSOUND_::MessageV.

template<typename T >
void OpcodeBase< T >::warn ( CSOUND csound,
const char *  format,
  ... 
)
inline

Field Documentation

template<typename T >
OPDS OpcodeBase< T >::h