Initial community commit
This commit is contained in:
184
Src/Wasabi/api/script/objects/core/coreadminobj.cpp
Normal file
184
Src/Wasabi/api/script/objects/core/coreadminobj.cpp
Normal file
@@ -0,0 +1,184 @@
|
||||
#include <precomp.h>
|
||||
|
||||
#include <api/service/svcs/svc_coreadmin.h>
|
||||
#include <api/script/objects/core/coreadminobj.h>
|
||||
#include <api/script/objects/core/coreobj.h>
|
||||
|
||||
static CoreAdminScriptObjectController _coreAdminController;
|
||||
ScriptObjectController *coreAdminController = &_coreAdminController;
|
||||
|
||||
// Table of exported functions and events
|
||||
// "function name", n. params, function_pointer
|
||||
function_descriptor_struct CoreAdminScriptObjectController::exportedFunction[] = {
|
||||
{L"getNamedCore", 1, (void*)coreadmin_getNamedCore},
|
||||
{L"newNamedCore", 1, (void*)coreadmin_newNamedCore},
|
||||
{L"freeCore", 1, (void*)coreadmin_freeCore},
|
||||
{L"freeCoreByName", 1, (void*)coreadmin_freeCoreByName},
|
||||
};
|
||||
|
||||
int CoreAdminScriptObjectController::getNumFunctions() {
|
||||
return sizeof(exportedFunction) / sizeof(function_descriptor_struct);
|
||||
}
|
||||
|
||||
ScriptObject *CoreAdminScriptObjectController::instantiate() {
|
||||
ScriptCoreAdminObject *scao = new ScriptCoreAdminObject;
|
||||
ASSERT(scao != NULL);
|
||||
return scao->getScriptObject();
|
||||
}
|
||||
|
||||
void CoreAdminScriptObjectController::destroy(ScriptObject *o) {
|
||||
ScriptCoreAdminObject *scao = static_cast<ScriptCoreAdminObject *>(o->vcpu_getInterface(COREADMIN_SCRIPTOBJECT_GUID));
|
||||
ASSERT(scao != NULL);
|
||||
delete scao;
|
||||
}
|
||||
|
||||
void *CoreAdminScriptObjectController::encapsulate(ScriptObject *o) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void CoreAdminScriptObjectController::deencapsulate(void *o) {
|
||||
}
|
||||
|
||||
scriptVar CoreAdminScriptObjectController::coreadmin_getNamedCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name)
|
||||
{
|
||||
SCRIPT_FUNCTION_INIT
|
||||
ScriptCoreAdminObject *scao = static_cast<ScriptCoreAdminObject *>(o->vcpu_getInterface(COREADMIN_SCRIPTOBJECT_GUID));
|
||||
if (scao) {
|
||||
const wchar_t *cname = GET_SCRIPT_STRING(name);
|
||||
if (cname) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
// Get the token for the requested core.
|
||||
CoreToken core = scao->getNamedCore(cname);
|
||||
if (core == -1) {
|
||||
RETURN_SCRIPT_VOID;
|
||||
}
|
||||
#endif
|
||||
// Make a new Core scriptobj to point to the requested core.
|
||||
CoreScriptObjectController *controller = static_cast<CoreScriptObjectController *>(coreController);
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
ScriptObject *coreobj = controller->instantiate(core);
|
||||
#else
|
||||
ScriptObject *coreobj = controller->instantiate(NULL);
|
||||
#endif
|
||||
return MAKE_SCRIPT_OBJECT(coreobj);
|
||||
}
|
||||
}
|
||||
RETURN_SCRIPT_NULL;
|
||||
}
|
||||
|
||||
scriptVar CoreAdminScriptObjectController::coreadmin_newNamedCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name) {
|
||||
SCRIPT_FUNCTION_INIT
|
||||
ScriptCoreAdminObject *scao = static_cast<ScriptCoreAdminObject *>(o->vcpu_getInterface(COREADMIN_SCRIPTOBJECT_GUID));
|
||||
if (scao) {
|
||||
const wchar_t *cname = GET_SCRIPT_STRING(name);
|
||||
if (cname) {
|
||||
// Get the token for the created core.
|
||||
/*CoreToken core = */scao->newNamedCore(cname);
|
||||
// Make a new Core scriptobj to point to the created core.
|
||||
CoreScriptObjectController *controller = static_cast<CoreScriptObjectController *>(coreController);
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
ScriptObject *coreobj = controller->instantiate(core);
|
||||
// Then get the object back and bind a sequencer and stuff to it. Like we just said "new Core"
|
||||
ScriptCoreObject *sco = static_cast<ScriptCoreObject *>(coreobj->vcpu_getInterface(CORE_SCRIPTOBJECT_GUID));
|
||||
if (sco) {
|
||||
sco->initAsCreated();
|
||||
}
|
||||
#else
|
||||
ScriptObject *coreobj = controller->instantiate(NULL);
|
||||
#endif
|
||||
return MAKE_SCRIPT_OBJECT(coreobj);
|
||||
}
|
||||
}
|
||||
RETURN_SCRIPT_VOID;
|
||||
}
|
||||
|
||||
scriptVar CoreAdminScriptObjectController::coreadmin_freeCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar core) {
|
||||
SCRIPT_FUNCTION_INIT
|
||||
ScriptCoreAdminObject *scao = static_cast<ScriptCoreAdminObject *>(o->vcpu_getInterface(COREADMIN_SCRIPTOBJECT_GUID));
|
||||
if (scao) {
|
||||
// Pull the ScriptCoreObject from the scriptVar
|
||||
ScriptObject *coreobj = GET_SCRIPT_OBJECT(core);
|
||||
if (coreobj) {
|
||||
ScriptCoreObject *sco = static_cast<ScriptCoreObject *>(coreobj->vcpu_getInterface(CORE_SCRIPTOBJECT_GUID));
|
||||
if (sco) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
scao->freeCore(sco->core_handle);
|
||||
#endif
|
||||
return MAKE_SCRIPT_INT(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return MAKE_SCRIPT_INT(0);
|
||||
}
|
||||
|
||||
scriptVar CoreAdminScriptObjectController::coreadmin_freeCoreByName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name) {
|
||||
SCRIPT_FUNCTION_INIT
|
||||
ScriptCoreAdminObject *scao = static_cast<ScriptCoreAdminObject *>(o->vcpu_getInterface(COREADMIN_SCRIPTOBJECT_GUID));
|
||||
if (scao) {
|
||||
const wchar_t *cname = GET_SCRIPT_STRING(name);
|
||||
if (cname) {
|
||||
// Try to remove it.
|
||||
int retval = scao->freeCoreByName(cname);
|
||||
return MAKE_SCRIPT_INT(retval);
|
||||
}
|
||||
}
|
||||
return MAKE_SCRIPT_INT(0);
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
|
||||
ScriptCoreAdminObject::ScriptCoreAdminObject() {
|
||||
getScriptObject()->vcpu_setClassName(L"CoreAdmin");
|
||||
getScriptObject()->vcpu_setController(coreAdminController);
|
||||
getScriptObject()->vcpu_setInterface(COREADMIN_SCRIPTOBJECT_GUID, static_cast<ScriptCoreAdminObject *>(this));
|
||||
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
waServiceFactory *s = api->service_enumService(WaSvc::COREADMIN,0);
|
||||
ASSERTPR(s,"Core Admin must be present to use ScriptCore!");
|
||||
admin = castService<svc_coreAdmin>(s);
|
||||
#endif
|
||||
}
|
||||
|
||||
ScriptCoreAdminObject::~ScriptCoreAdminObject() {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
api->service_release(admin);
|
||||
admin = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
CoreToken ScriptCoreAdminObject::getNamedCore(const wchar_t *name) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
return admin->nameToToken(name);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
CoreToken ScriptCoreAdminObject::newNamedCore(const wchar_t *name) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
return admin->createCore(name);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int ScriptCoreAdminObject::freeCore(CoreToken core) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
if (core == 0) return 0; // don't touch the main core.
|
||||
return admin->freeCoreByToken(core);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int ScriptCoreAdminObject::freeCoreByName(const wchar_t *name) {
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
CoreToken core = admin->nameToToken(name);
|
||||
if (core == 0) return 0; // don't touch the main core.
|
||||
return admin->freeCoreByToken(core);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
67
Src/Wasabi/api/script/objects/core/coreadminobj.h
Normal file
67
Src/Wasabi/api/script/objects/core/coreadminobj.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#ifndef __COREADMINOBJ_H
|
||||
#define __COREADMINOBJ_H
|
||||
|
||||
#include <api/script/objcontroller.h>
|
||||
#include <api/script/objects/rootobj.h>
|
||||
#include <api/core/sequence.h>
|
||||
#include <api/syscb/callbacks/corecbi.h>
|
||||
|
||||
#ifdef GEN_FF
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
#define FAKE_SCRIPTCORE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
class svc_coreAdmin;
|
||||
|
||||
// {F857BECA-8E19-41f1-973E-097E39649F03}
|
||||
static const GUID COREADMIN_SCRIPTOBJECT_GUID =
|
||||
{ 0xf857beca, 0x8e19, 0x41f1, { 0x97, 0x3e, 0x9, 0x7e, 0x39, 0x64, 0x9f, 0x3 } };
|
||||
|
||||
extern ScriptObjectController *coreAdminController;
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
class ScriptCoreAdminObject : public RootObjectInstance
|
||||
{
|
||||
public:
|
||||
ScriptCoreAdminObject();
|
||||
virtual ~ScriptCoreAdminObject();
|
||||
|
||||
CoreToken getNamedCore(const wchar_t *name);
|
||||
CoreToken newNamedCore(const wchar_t *name);
|
||||
int freeCore(CoreToken core);
|
||||
int freeCoreByName(const wchar_t *name);
|
||||
|
||||
private:
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
svc_coreAdmin *admin;
|
||||
#endif
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
class CoreAdminScriptObjectController : public ScriptObjectControllerI
|
||||
{
|
||||
public:
|
||||
virtual const wchar_t *getClassName() { return L"CoreAdmin"; }
|
||||
virtual const wchar_t *getAncestorClassName() { return L"Object"; }
|
||||
virtual ScriptObjectController *getAncestorController() { return WASABI_API_MAKI->maki_getController(rootObjectGuid); }
|
||||
virtual int getNumFunctions();
|
||||
virtual const function_descriptor_struct *getExportedFunctions() { return exportedFunction; }
|
||||
virtual GUID getClassGuid() { return COREADMIN_SCRIPTOBJECT_GUID; }
|
||||
virtual int getInstantiable() { return 0; }
|
||||
virtual int getReferenceable() { return 0; }
|
||||
virtual ScriptObject *instantiate();
|
||||
virtual void *encapsulate(ScriptObject *o);
|
||||
virtual void destroy(ScriptObject *o);
|
||||
virtual void deencapsulate(void *o);
|
||||
|
||||
static scriptVar coreadmin_getNamedCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name);
|
||||
static scriptVar coreadmin_newNamedCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name);
|
||||
static scriptVar coreadmin_freeCore(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar core);
|
||||
static scriptVar coreadmin_freeCoreByName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name);
|
||||
|
||||
private:
|
||||
static function_descriptor_struct exportedFunction[];
|
||||
};
|
||||
|
||||
#endif
|
||||
1151
Src/Wasabi/api/script/objects/core/coreobj.cpp
Normal file
1151
Src/Wasabi/api/script/objects/core/coreobj.cpp
Normal file
File diff suppressed because it is too large
Load Diff
192
Src/Wasabi/api/script/objects/core/coreobj.h
Normal file
192
Src/Wasabi/api/script/objects/core/coreobj.h
Normal file
@@ -0,0 +1,192 @@
|
||||
#ifndef __CONOBJ_H
|
||||
#define __CONOBJ_H
|
||||
|
||||
#include <api/script/objcontroller.h>
|
||||
#include <api/script/objects/rootobj.h>
|
||||
#include <api/core/sequence.h>
|
||||
#include <api/syscb/callbacks/corecbi.h>
|
||||
#include <api/core/corehandle.h>
|
||||
#ifdef GEN_FF
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
#define FAKE_SCRIPTCORE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// {2825A91B-D488-4245-AAF1-7059CF88437B}
|
||||
static const GUID CORE_SCRIPTOBJECT_GUID =
|
||||
{ 0x2825a91b, 0xd488, 0x4245, { 0xaa, 0xf1, 0x70, 0x59, 0xcf, 0x88, 0x43, 0x7b } };
|
||||
|
||||
extern ScriptObjectController *coreController;
|
||||
class PlayItem;
|
||||
class CoreAdminScriptObjectController;
|
||||
class svc_coreAdmin;
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
class ScriptCoreObject : public RootObjectInstance
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
, public ListSequencer, public CoreCallbackI/*, public CoreCallbackI*/
|
||||
#endif
|
||||
{
|
||||
friend class CoreAdminScriptObjectController;
|
||||
public:
|
||||
|
||||
ScriptCoreObject(CoreToken token = 0x80000000);
|
||||
virtual ~ScriptCoreObject();
|
||||
|
||||
void playFile(const wchar_t *file);
|
||||
void stop();
|
||||
void setVolume(int v);
|
||||
int getStatus();
|
||||
|
||||
/* virtual int corecb_onStopped();
|
||||
virtual int corecb_onEndOfDecode();*/
|
||||
|
||||
static scriptVar maki_playFile(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar file);
|
||||
static scriptVar maki_stop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
// static scriptVar maki_onStop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
// static scriptVar maki_setVolume(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar v);
|
||||
// static scriptVar maki_getStatus(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
|
||||
// Callback Methods in Maki.
|
||||
static scriptVar /*int*/ maki_onStarted(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onStopped(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onPaused(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onUnpaused(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onSeeked(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newpos);
|
||||
static scriptVar /*int*/ maki_onVolumeChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newvol);
|
||||
static scriptVar /*int*/ maki_onPanChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newpan);
|
||||
static scriptVar /*int*/ maki_onEQStatusChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newval);
|
||||
static scriptVar /*int*/ maki_onEQPreampChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newval);
|
||||
static scriptVar /*int*/ maki_onEQBandChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ band, scriptVar /*int*/ newval);
|
||||
static scriptVar /*int*/ maki_onEQFreqChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newval);
|
||||
static scriptVar /*int*/ maki_onEQAutoChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newval);
|
||||
static scriptVar /*int*/ maki_onStatusMsg(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ text);
|
||||
static scriptVar /*int*/ maki_onWarningMsg(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ text);
|
||||
static scriptVar /*int*/ maki_onErrorMsg(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ text);
|
||||
static scriptVar /*int*/ maki_onTitleChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ title);
|
||||
static scriptVar /*int*/ maki_onTitle2Change(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ title2);
|
||||
static scriptVar /*int*/ maki_onInfoChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ info);
|
||||
static scriptVar /*int*/ maki_onUrlChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ url);
|
||||
static scriptVar /*int*/ maki_onLengthChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ newlength);
|
||||
static scriptVar /*int*/ maki_onNextFile(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onNeedNextFile(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ fileid);
|
||||
static scriptVar /*int*/ maki_onSetNextFile(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ playstring);
|
||||
static scriptVar /*int*/ maki_onErrorOccured(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ severity, scriptVar /*String*/ text);
|
||||
static scriptVar /*int*/ maki_onAbortCurrentSong(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onEndOfDecode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onFileComplete(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ playstring);
|
||||
static scriptVar /*int*/ maki_onConvertersChainRebuilt(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_onMediaFamilyChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ newfamily);
|
||||
|
||||
static scriptVar /*int*/ maki_setNextFile(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ playstr);
|
||||
static scriptVar /*int*/ maki_getStatus(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*String*/ maki_getCurrent(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getCurPlaybackNumber(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getNumTracks(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getWritePosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_setPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ ms);
|
||||
static scriptVar /*int*/ maki_getLength(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getVolume(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_setVolume(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ vol);
|
||||
static scriptVar /*int*/ maki_getPan(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_setPan(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ bal);
|
||||
static scriptVar /*void*/ maki_setMute(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ mute);
|
||||
static scriptVar /*int*/ maki_getMute(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getLeftVuMeter(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*int*/ maki_getRightVuMeter(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_userButton(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ button);
|
||||
static scriptVar /*int*/ maki_getEqStatus(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_setEqStatus(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ enable);
|
||||
static scriptVar /*int*/ maki_getEqPreamp(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_setEqPreamp(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ pre);
|
||||
static scriptVar /*int*/ maki_getEqBand(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ band);
|
||||
static scriptVar /*void*/ maki_setEqBand(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ band, scriptVar /*int*/ val);
|
||||
static scriptVar /*int*/ maki_getEqAuto(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_setEqAuto(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ enable);
|
||||
static scriptVar /*void*/ maki_setCustomMsg(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*String*/ text);
|
||||
static scriptVar /*void*/ maki_setPriority(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar /*int*/ priority);
|
||||
static scriptVar /*int*/ maki_getPriority(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
static scriptVar /*void*/ maki_rebuildConvertersChain(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
|
||||
|
||||
static PtrList<ScriptCoreObject> objects;
|
||||
|
||||
protected:
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
virtual int getNumEntries() { return 1; }
|
||||
virtual const char *enumItem(int pos);
|
||||
virtual int getCurrent() { return 0; }
|
||||
virtual int setCurrent(int cur) { return 0; }
|
||||
#endif
|
||||
|
||||
// Callback Methods forwarded to Maki.
|
||||
virtual int corecb_onStarted();
|
||||
virtual int corecb_onStopped();
|
||||
virtual int corecb_onPaused();
|
||||
virtual int corecb_onUnpaused();
|
||||
virtual int corecb_onSeeked(int newpos);
|
||||
virtual int corecb_onVolumeChange(int newvol);
|
||||
virtual int corecb_onPanChange(int newpan);
|
||||
virtual int corecb_onEQStatusChange(int newval);
|
||||
virtual int corecb_onEQPreampChange(int newval);
|
||||
virtual int corecb_onEQBandChange(int band, int newval);
|
||||
virtual int corecb_onEQFreqChange(int newval);
|
||||
virtual int corecb_onEQAutoChange(int newval);
|
||||
virtual int corecb_onStatusMsg(const wchar_t *text);
|
||||
virtual int corecb_onWarningMsg(const wchar_t *text);
|
||||
virtual int corecb_onErrorMsg(const wchar_t *text);
|
||||
virtual int corecb_onTitleChange(const wchar_t *title);
|
||||
virtual int corecb_onTitle2Change(const wchar_t *title2);
|
||||
virtual int corecb_onInfoChange(const wchar_t *info);
|
||||
virtual int corecb_onUrlChange(const wchar_t *url);
|
||||
virtual int corecb_onLengthChange(int newlength);
|
||||
virtual int corecb_onNextFile();
|
||||
virtual int corecb_onNeedNextFile(int fileid);
|
||||
virtual int corecb_onSetNextFile(const wchar_t *playstring);
|
||||
virtual int corecb_onErrorOccured(int severity, const wchar_t *text);
|
||||
virtual int corecb_onAbortCurrentSong();
|
||||
virtual int corecb_onEndOfDecode();
|
||||
virtual int corecb_onFileComplete(const wchar_t *playstring);
|
||||
virtual int corecb_onConvertersChainRebuilt();
|
||||
virtual int corecb_onMediaFamilyChange(const wchar_t *newfamily);
|
||||
|
||||
private:
|
||||
// Only called by us and our friend the admin.
|
||||
#ifndef FAKE_SCRIPTCORE
|
||||
virtual void initAsCreated();
|
||||
|
||||
svc_coreAdmin *svc;
|
||||
CoreToken core_handle;
|
||||
String filetoplay;
|
||||
int curvol;
|
||||
int registered_sequencer;
|
||||
#endif
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
class CoreScriptObjectController : public ScriptObjectControllerI {
|
||||
friend CoreAdminScriptObjectController;
|
||||
public:
|
||||
virtual const wchar_t *getClassName() { return L"Core"; }
|
||||
virtual const wchar_t *getAncestorClassName() { return L"Object"; }
|
||||
virtual ScriptObjectController *getAncestorController() { return WASABI_API_MAKI->maki_getController(rootObjectGuid); }
|
||||
virtual int getNumFunctions();
|
||||
virtual const function_descriptor_struct *getExportedFunctions() { return exportedFunction; }
|
||||
virtual GUID getClassGuid() { return CORE_SCRIPTOBJECT_GUID; }
|
||||
virtual int getInstantiable() { return 1; }
|
||||
virtual int getReferenceable() { return 1; }
|
||||
virtual ScriptObject *instantiate();
|
||||
virtual void *encapsulate(ScriptObject *o);
|
||||
virtual void destroy(ScriptObject *o);
|
||||
virtual void deencapsulate(void *o);
|
||||
|
||||
private:
|
||||
static function_descriptor_struct exportedFunction[];
|
||||
|
||||
// Only called by us and our friend the admin.
|
||||
virtual ScriptObject *instantiate(CoreToken token = 0x80000000);
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
38
Src/Wasabi/api/script/objects/core/svc_scriptcore.cpp
Normal file
38
Src/Wasabi/api/script/objects/core/svc_scriptcore.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include <precomp.h>
|
||||
#include "svc_scriptcore.h"
|
||||
#include <api/script/objects/core/coreobj.h>
|
||||
#include <api/script/objects/core/coreadminobj.h>
|
||||
|
||||
#ifndef _WASABIRUNTIME
|
||||
|
||||
BEGIN_SERVICES(ScriptCore_Svc);
|
||||
DECLARE_SERVICETSINGLE(svc_scriptObject, CoreScriptObjectSvc);
|
||||
END_SERVICES(ScriptCore_Svc, _ScriptCore_Svc);
|
||||
|
||||
#ifdef _X86_
|
||||
extern "C" { int _link_ScriptCore_Svc; }
|
||||
#else
|
||||
extern "C" { int __link_ScriptCore_Svc; }
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------
|
||||
// Service
|
||||
|
||||
ScriptObjectController *CoreScriptObjectSvc::getController(int n) {
|
||||
switch (n) {
|
||||
case 0:
|
||||
return coreController;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ScriptObjectController *CoreAdminScriptObjectSvc::getController(int n) {
|
||||
switch (n) {
|
||||
case 0:
|
||||
return coreAdminController;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
27
Src/Wasabi/api/script/objects/core/svc_scriptcore.h
Normal file
27
Src/Wasabi/api/script/objects/core/svc_scriptcore.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#ifndef __GUIVIDEOSVC_H
|
||||
#define __GUIVIDEOSVC_H
|
||||
|
||||
#include <api/service/svcs/svc_scriptobji.h>
|
||||
|
||||
class CoreScriptObjectSvc : public svc_scriptObjectI {
|
||||
|
||||
public:
|
||||
CoreScriptObjectSvc() {};
|
||||
virtual ~CoreScriptObjectSvc() {};
|
||||
|
||||
static const char *getServiceName() { return "MediaCore maki object"; }
|
||||
virtual ScriptObjectController *getController(int n);
|
||||
};
|
||||
|
||||
class CoreAdminScriptObjectSvc : public svc_scriptObjectI {
|
||||
|
||||
public:
|
||||
CoreAdminScriptObjectSvc() {};
|
||||
virtual ~CoreAdminScriptObjectSvc() {};
|
||||
|
||||
static const char *getServiceName() { return "MediaCoreAdmin maki object"; }
|
||||
virtual ScriptObjectController *getController(int n);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user