aboutsummaryrefslogtreecommitdiff
path: root/Src/playlist/B4SLoader.h
blob: 0c8e4bf5a1724c40e7ae0b79c49f05b37f66b7d2 (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
46
#ifndef NULLSOFT_WINAMP_B4S_H
#define NULLSOFT_WINAMP_B4S_H

#include "../xml/obj_xml.h"
#include "../xml/ifc_xmlreadercallback.h"
#include "api__playlist.h"
#include <api/service/waServiceFactory.h>
#include "XMLString.h"
#include "main.h"
#include "ifc_playlistloader.h"

class B4SXML : public ifc_xmlreadercallback
{
public:
	B4SXML();
	ifc_playlistloadercallback *playlist;
	//private:
	
	/* XML callbacks */
	void StartTag(const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params);
	void EndTag(const wchar_t *xmlpath, const wchar_t *xmltag);
	
	XMLString /*name, artist, */title/*, album*/, length; // wa2 only supports title and length in the playlist anyway
	RECVS_DISPATCH;
	wchar_t filename[FILENAME_SIZE];
};

class B4SLoader :  public ifc_playlistloader
{
public:
	B4SLoader();
	~B4SLoader();

	void LoadFile(const char *filename);
	void LoadURL(const char *url);

	int Load(const wchar_t *filename, ifc_playlistloadercallback *playlist);

	RECVS_DISPATCH;

	obj_xml *parser;
	waServiceFactory *parserFactory;
	B4SXML b4sXml;
};

#endif