aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Portable/pmp_wifi/SongDownloader.h
blob: 947415f6274117076c6331e553cedede389f22c8 (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
#pragma once

#include "../Components/wac_downloadManager/DownloadCallbackT.h"

class SongDownloader : public DownloadCallbackT<SongDownloader>
{
public:
	SongDownloader(const wchar_t *filename, HANDLE done_event, void (*callback)(void *callbackContext, wchar_t *status), void *context);
	~SongDownloader();

	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:
	void (*callback)(void *callbackContext, wchar_t *status);
	void *context;
	HANDLE hFile, done_event;
	uint64_t content_length;
	uint64_t bytes_downloaded;

};