59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
#pragma once
|
|
#include "device.h"
|
|
#include "../xml/obj_xml.h"
|
|
#include "XMLString.h"
|
|
#include "../Components/wac_downloadManager/DownloadCallbackT.h"
|
|
#include "WifiDevice.h"
|
|
#include "../xml/ifc_xmlreadercallbackT.h"
|
|
#include "main.h"
|
|
#include "InfoDownloader.h" // for InfoXML
|
|
|
|
class WifiXML : public ifc_xmlreadercallbackT<WifiXML>
|
|
{
|
|
public:
|
|
WifiXML(obj_xml *parser);
|
|
~WifiXML();
|
|
|
|
public:
|
|
void xmlReaderOnStartElementCallback(const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params);
|
|
void xmlReaderOnEndElementCallback(const wchar_t *xmlpath, const wchar_t *xmltag);
|
|
|
|
DeviceXML info_xml;
|
|
TemplateDevice::PlaylistsList playlists;
|
|
TemplateDevice::TrackList tracks;
|
|
private:
|
|
obj_xml *parser;
|
|
TemplateDevice *device;
|
|
XMLString artist;
|
|
XMLString album;
|
|
XMLString composer;
|
|
XMLString duration;
|
|
XMLString track;
|
|
XMLString year;
|
|
XMLString size;
|
|
XMLString title;
|
|
XMLString mime_type;
|
|
XMLString modified;
|
|
WifiTrack *wifi_track;
|
|
WifiPlaylist *wifi_playlist;
|
|
};
|
|
|
|
class SongListDownloader : public DownloadCallbackT<SongListDownloader>
|
|
{
|
|
public:
|
|
SongListDownloader(const char *root_url, WifiDevice *wifi_device);
|
|
~SongListDownloader();
|
|
void OnInit(DownloadToken token);
|
|
void OnData(DownloadToken token, void *data, size_t datalen);
|
|
void OnCancel(DownloadToken token);
|
|
void OnError(DownloadToken token, int error);
|
|
void OnFinish(DownloadToken token);
|
|
|
|
private:
|
|
obj_xml *parser;
|
|
WifiXML *wifi;
|
|
TemplateDevice *device;
|
|
WifiDevice *wifi_device;
|
|
const char *root_url;
|
|
};
|