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_wire/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_wire/Downloaded.cpp')
-rw-r--r-- | Src/Plugins/Library/ml_wire/Downloaded.cpp | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_wire/Downloaded.cpp b/Src/Plugins/Library/ml_wire/Downloaded.cpp new file mode 100644 index 00000000..e088a376 --- /dev/null +++ b/Src/Plugins/Library/ml_wire/Downloaded.cpp @@ -0,0 +1,121 @@ +#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 *_channel, const wchar_t *_item, __time64_t publishDate) +{ + Init(); + + this->publishDate = publishDate; + + SetChannel( _channel ); + SetItem( _item ); + SetPath( _path ); + SetURL( _url ); +} + +DownloadedFile::DownloadedFile( const DownloadedFile © ) +{ + Init(); + + operator =( copy ); +} + +DownloadedFile::~DownloadedFile() +{ + Reset(); +} + + +void DownloadedFile::Init() +{ + url = 0; + path = 0; + channel = 0; + item = 0; + bytesDownloaded = 0; + totalSize = 0; + publishDate = 0; +} + +void DownloadedFile::Reset() +{ + if ( url ) + { + free( url ); + url = 0; + } + + if ( path ) + { + free( path ); + path = 0; + } + + if ( channel ) + { + free( channel ); + channel = 0; + } + + if ( item ) + { + free( item ); + item = 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::SetItem( const wchar_t *_item ) +{ + free( item ); + item = _wcsdup( _item ); +} + +void DownloadedFile::SetChannel( const wchar_t *_channel ) +{ + free( channel ); + channel = _wcsdup( _channel ); +} + +const DownloadedFile &DownloadedFile::operator =( const DownloadedFile © ) +{ + Reset(); + Init(); + + SetChannel( copy.channel ); + SetItem( copy.item ); + + bytesDownloaded = copy.bytesDownloaded; + totalSize = copy.totalSize; + publishDate = copy.publishDate; + downloadDate = copy.downloadDate; + + SetPath( copy.path ); + SetURL( copy.url ); + + return *this; +}
\ No newline at end of file |