From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Library/ml_wire/DownloadStatus.h | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Src/Plugins/Library/ml_wire/DownloadStatus.h (limited to 'Src/Plugins/Library/ml_wire/DownloadStatus.h') diff --git a/Src/Plugins/Library/ml_wire/DownloadStatus.h b/Src/Plugins/Library/ml_wire/DownloadStatus.h new file mode 100644 index 00000000..be3dd896 --- /dev/null +++ b/Src/Plugins/Library/ml_wire/DownloadStatus.h @@ -0,0 +1,41 @@ +#ifndef NULLSOFT_DOWNLOADSTATUSH +#define NULLSOFT_DOWNLOADSTATUSH + +#include "../nu/AutoLock.h" +#include + + +class DownloadStatus +{ +public: + class Status + { + public: + Status(); + ~Status(); + const Status &operator =(const Status ©); + Status(size_t _downloaded, size_t _maxSize, const wchar_t *channel, const wchar_t *item, const wchar_t *path); + size_t downloaded, maxSize; + + int killswitch; + wchar_t *channel; + wchar_t *item; + wchar_t *path; + private: + + void Init(); + void Reset(); + }; + + void AddDownloadThread(DownloadToken token, const wchar_t *channel, const wchar_t *item, const wchar_t *path); + void DownloadThreadDone(DownloadToken token); + bool UpdateStatus(DownloadToken token, size_t downloaded, size_t maxSize); + bool CurrentlyDownloading(); + void GetStatusString(wchar_t *status, size_t len); + typedef std::map Downloads; + Downloads downloads; + Nullsoft::Utility::LockGuard statusLock; +}; + +extern DownloadStatus downloadStatus; +#endif \ No newline at end of file -- cgit