diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_downloads/Downloaded.cpp | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Plugins/Library/ml_downloads/Downloaded.cpp')
-rw-r--r-- | Src/Plugins/Library/ml_downloads/Downloaded.cpp | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_downloads/Downloaded.cpp b/Src/Plugins/Library/ml_downloads/Downloaded.cpp new file mode 100644 index 00000000..dc5a0e19 --- /dev/null +++ b/Src/Plugins/Library/ml_downloads/Downloaded.cpp @@ -0,0 +1,141 @@ +#include "main.h" +#include "Downloaded.h" + +DownloadList downloadedFiles; +using namespace Nullsoft::Utility; +Nullsoft::Utility::LockGuard downloadedLock; + +DownloadedFile::DownloadedFile() +{ + Init(); +} + +DownloadedFile::DownloadedFile( const wchar_t *_url, const wchar_t *_path, const wchar_t *_source, const wchar_t *_title, int downloadStatus, __time64_t downloadDate ) +{ + Init(); + + this->downloadStatus = downloadStatus; + this->downloadDate = downloadDate; + + SetSource( _source ); + SetTitle( _title ); + SetPath( _path ); + SetURL( _url ); +} + +DownloadedFile::DownloadedFile( const DownloadedFile © ) +{ + Init(); + + operator =( copy ); +} + +DownloadedFile::~DownloadedFile() +{ + Reset(); +} + + +void DownloadedFile::Init() +{ + url = 0; + path = 0; + source = 0; + title = 0; + bytesDownloaded = 0; + totalSize = 0; + downloadDate = 0; +} + +void DownloadedFile::Reset() +{ + if ( url ) + { + free( url ); + url = 0; + } + + if ( path ) + { + free( path ); + path = 0; + } + + if ( source ) + { + free( source ); + source = 0; + } + + if ( title ) + { + free( title ); + title = 0; + } +} + +void DownloadedFile::SetPath( const wchar_t *_path ) +{ + if ( path ) + free( path ); + + path = _wcsdup( _path ); +} + +void DownloadedFile::SetURL( const wchar_t *_url ) +{ + if ( url ) + free( url ); + + url = _wcsdup( _url ); +} + +void DownloadedFile::SetTitle( const wchar_t *_title ) +{ + if ( title ) + free( title ); + + title = _wcsdup( _title ); +} + +void DownloadedFile::SetSource( const wchar_t *_source ) +{ + if ( source ) + free( source ); + + source = _wcsdup( _source ); +} + +const DownloadedFile &DownloadedFile::operator =( const DownloadedFile © ) +{ + Reset(); + Init(); + + SetSource( copy.source ); + SetTitle( copy.title ); + + bytesDownloaded = copy.bytesDownloaded; + totalSize = copy.totalSize; + downloadStatus = copy.downloadStatus; + downloadDate = copy.downloadDate; + + SetPath( copy.path ); + SetURL( copy.url ); + + return *this; +} + +wchar_t *GetDownloadStatus( int downloadStatus ) +{ + switch ( downloadStatus ) + { + case DownloadedFile::DOWNLOAD_SUCCESS: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_SUCCESS ); + case DownloadedFile::DOWNLOAD_FAILURE: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_FAILURE ); + case DownloadedFile::DOWNLOAD_CANCELED: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_CANCELED ); + default: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_FAILURE ); + } +}
\ No newline at end of file |