aboutsummaryrefslogtreecommitdiff
path: root/Src/playlist/SPlaylistsEnumerator.h
blob: 9ad12a96cacff5f70c994e3f2b6cc912d70f4471 (plain) (blame)
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

#pragma once

#include <api/script/objcontroller.h>
#include <api/script/objects/rootobj.h>
#include "Playlists.h"
#include <vector>

class PlaylistsEnumeratorScriptController : public ScriptObjectControllerI 
{
  public:
    const wchar_t *getClassName();
    const wchar_t *getAncestorClassName();
    ScriptObjectController *getAncestorController();
    int getNumFunctions();
    const function_descriptor_struct *getExportedFunctions();
    GUID getClassGuid();
    ScriptObject *instantiate();
    void destroy(ScriptObject *o);
    void *encapsulate(ScriptObject *o);
    void deencapsulate(void *o);

  private:
    static function_descriptor_struct exportedFunction[];
};

class SPlaylistsEnumerator : public RootObjectInstance
{
public:
	SPlaylistsEnumerator();
	~SPlaylistsEnumerator();

	void Reserve(size_t count);
	void AppendPlaylist(const PlaylistInfo &newPlaylist);

	static scriptVar script_vcpu_GetCount(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
	static scriptVar script_vcpu_GetFilename(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar itemNumber);
	static scriptVar script_vcpu_GetTitle(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar itemNumber);
	static scriptVar script_vcpu_GetLength(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar itemNumber);
	static scriptVar script_vcpu_GetNumItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar itemNumber);
	static scriptVar script_vcpu_GetGUID(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar itemNumber);

private:
	std::vector<PlaylistInfo*> info;
};