#ifndef _CONTROLLABLE_H
#define _CONTROLLABLE_H
#include <MediaNode.h>
class BParameterWeb;
class BControllable : public virtual BMediaNode {
protected:
virtual ~BControllable();
public:
BParameterWeb* Web();
bool LockParameterWeb();
void UnlockParameterWeb();
protected:
BControllable();
status_t SetParameterWeb(BParameterWeb* web);
virtual status_t HandleMessage(int32 message, const void* data,
size_t size);
status_t BroadcastChangedParameter(int32 id);
status_t BroadcastNewParameterValue(
bigtime_t performanceTime,
int32 parameterID, void* newValue,
size_t valueSize);
virtual status_t GetParameterValue(int32 id,
bigtime_t* lastChange,
void* value, size_t* ioSize) = 0;
virtual void SetParameterValue(int32 id, bigtime_t when,
const void* value, size_t size) = 0;
virtual status_t StartControlPanel(BMessenger* _messenger);
status_t ApplyParameterData(const void* value,
size_t size);
status_t MakeParameterData(const int32* controls,
int32 count, void* buffer, size_t* ioSize);
private:
BControllable(const BControllable& other);
BControllable& operator=(const BControllable& other);
virtual status_t _Reserved_Controllable_0(void*);
virtual status_t _Reserved_Controllable_1(void*);
virtual status_t _Reserved_Controllable_2(void*);
virtual status_t _Reserved_Controllable_3(void*);
virtual status_t _Reserved_Controllable_4(void*);
virtual status_t _Reserved_Controllable_5(void*);
virtual status_t _Reserved_Controllable_6(void*);
virtual status_t _Reserved_Controllable_7(void*);
virtual status_t _Reserved_Controllable_8(void*);
virtual status_t _Reserved_Controllable_9(void*);
virtual status_t _Reserved_Controllable_10(void*);
virtual status_t _Reserved_Controllable_11(void*);
virtual status_t _Reserved_Controllable_12(void*);
virtual status_t _Reserved_Controllable_13(void*);
virtual status_t _Reserved_Controllable_14(void*);
virtual status_t _Reserved_Controllable_15(void*);
private:
friend class BMediaNode;
BParameterWeb* fWeb;
sem_id fSem;
int32 fBen;
uint32 _reserved_controllable_[14];
};
#endif