1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#pragma once
#include <api/script/objects/rootobj.h>
#include <api/script/objcontroller.h>
#include <api/script/scriptobj.h>
#include <bfc/depend.h>
#include <api/service/svcs/svc_scriptobji.h>
#include <api/wnd/wndclass/listwnd.h>
#include "wa2playlist.h"
#include <api/syscb/callbacks/playlistcb.h>
#include <api/service/svcs/svc_scriptobji.h>
class PlDirObject;
extern ScriptObjectController *pldirController;
// -----------------------------------------------------------------------------------------------------
// ScriptObject Service
class PlDirScriptObjectSvc : public svc_scriptObjectI {
public:
PlDirScriptObjectSvc() {};
virtual ~PlDirScriptObjectSvc() {};
static const char *getServiceName() { return "PlDir script object"; }
virtual ScriptObjectController *getController(int n);
};
// -----------------------------------------------------------------------------------------------------
// Script classe GUIDS
// {61A7ABAD-7D79-41f6-B1D0-E1808603A4F4}
static const GUID PLDIR_SCRIPTOBJECT_GUID =
{ 0x61a7abad, 0x7d79, 0x41f6, { 0xb1, 0xd0, 0xe1, 0x80, 0x86, 0x3, 0xa4, 0xf4 } };
// -----------------------------------------------------------------------------------------------------
// ScriptObject Interface
// PlDir
class PlDirObject : public ListWnd, public PlaylistCallbackI
{
public:
PlDirObject();
virtual ~PlDirObject();
virtual int onInit();
//virtual int onResize();
virtual int wantResizeCols() { return 0; }
virtual int wantHScroll() { return 0; }
virtual void onDoubleClick(int itemnum);
virtual Wa2Playlist *getPlaylist(int itemnum);
/* PlaylistCallbackI method overrides */
int playlistcb_added(size_t index);
int playlistcb_saved(size_t index);
int onDeferredCallback(intptr_t p1, intptr_t p2);
void Populate();
private:
PtrList<Wa2Playlist> playlists;
};
// -----------------------------------------------------------------------------------------------------
// ScriptObjectControllers for our script classes
// PlDir
class PlDirScriptObjectController : public ScriptObjectControllerI {
public:
virtual const wchar_t *getClassName() { return L"PlDir"; }
virtual const wchar_t *getAncestorClassName() { return L"Object"; }
virtual ScriptObjectController *getAncestorController() { return NULL; }
virtual int getNumFunctions();
virtual const function_descriptor_struct *getExportedFunctions() { return exportedFunction; }
virtual GUID getClassGuid() { return PLDIR_SCRIPTOBJECT_GUID; }
virtual int getInstantiable() { return 0; }
virtual int getReferenceable() { return 0; }
virtual ScriptObject *instantiate();
virtual void destroy(ScriptObject *o);
virtual void *encapsulate(ScriptObject *o);
virtual void deencapsulate(void *o);
virtual ~PlDirScriptObjectController();
// Maki functions table
static scriptVar pldir_showCurrentlyPlayingEntry(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
static scriptVar pldir_getNumItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
static scriptVar pldir_renameItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item, scriptVar name);
static scriptVar pldir_getItemName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item);
static scriptVar pldir_playItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item);
static scriptVar pldir_enqueueItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item);
static scriptVar pldir_refresh(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
PtrList<PlDirObject> mylist;
private:
static function_descriptor_struct exportedFunction[];
};
extern const wchar_t plDirXuiObjectStr[];
extern char plDirXuiSvcName[];
class PlDirXuiSvc : public XuiObjectSvc<PlDirObject, plDirXuiObjectStr, plDirXuiSvcName> {};
|