mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-21 16:05:51 +01:00
49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
|
#ifndef __SCRIPTHOOK_H
|
||
|
#define __SCRIPTHOOK_H
|
||
|
|
||
|
#include <api/script/vcputypes.h>
|
||
|
#include <bfc/dispatch.h>
|
||
|
#include <bfc/ptrlist.h>
|
||
|
|
||
|
|
||
|
class ScriptObject;
|
||
|
class ScriptObjectController;
|
||
|
|
||
|
// ----------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
class ScriptHook : public Dispatchable {
|
||
|
protected:
|
||
|
ScriptHook() {};
|
||
|
|
||
|
public:
|
||
|
int eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams);
|
||
|
|
||
|
enum {
|
||
|
EVENTCALLBACK = 100,
|
||
|
};
|
||
|
|
||
|
};
|
||
|
|
||
|
inline int ScriptHook::eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams) {
|
||
|
return _call(EVENTCALLBACK, 0, object, dlfid, params, nparams);
|
||
|
}
|
||
|
|
||
|
class ScriptHookI : public ScriptHook {
|
||
|
|
||
|
public:
|
||
|
|
||
|
ScriptHookI();
|
||
|
virtual ~ScriptHookI();
|
||
|
|
||
|
virtual int eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams)=0;
|
||
|
|
||
|
void addMonitorObject(ScriptObject *o, const GUID *hookedclass=NULL); // NULL = all classes of object o
|
||
|
void addMonitorClass(ScriptObject *o);
|
||
|
|
||
|
protected:
|
||
|
RECVS_DISPATCH;
|
||
|
|
||
|
PtrList<ScriptObjectController> controllers;
|
||
|
};
|
||
|
|
||
|
#endif
|