commit
71af514642
@ -1,4 +1,4 @@
|
|||||||
# Winamp Collaborative License (WCL) Version 1.0
|
# Winamp Collaborative License (WCL) Version 1.0.1
|
||||||
|
|
||||||
This License governs the use, modification, and distribution of the Winamp software.
|
This License governs the use, modification, and distribution of the Winamp software.
|
||||||
By using, Modifying, or distributing this software, you agree to the following terms:
|
By using, Modifying, or distributing this software, you agree to the following terms:
|
||||||
@ -30,7 +30,6 @@ You are granted the right to Modify the software for private use only. You may m
|
|||||||
|
|
||||||
### 5. Restrictions
|
### 5. Restrictions
|
||||||
- No Distribution of Modified Versions: You may not distribute modified versions of the software, whether in source or binary form.
|
- No Distribution of Modified Versions: You may not distribute modified versions of the software, whether in source or binary form.
|
||||||
- No Forking: You may not create, maintain, or distribute a forked version of the software.
|
|
||||||
- Official Distribution: Only the maintainers of the official repository are allowed to distribute the software and its modifications.
|
- Official Distribution: Only the maintainers of the official repository are allowed to distribute the software and its modifications.
|
||||||
|
|
||||||
### 6. No Sublicensing
|
### 6. No Sublicensing
|
||||||
@ -77,4 +76,4 @@ You must comply with all applicable laws and regulations in connection with your
|
|||||||
- Severability: If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.
|
- Severability: If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.
|
||||||
By using, Modifying, or contributing to the software, you acknowledge that you have read, understood, and agree to be bound by these terms and conditions.
|
By using, Modifying, or contributing to the software, you acknowledge that you have read, understood, and agree to be bound by these terms and conditions.
|
||||||
|
|
||||||
This custom License aims to maintain the collaborative nature of the project while restricting the distribution of modified versions.
|
This custom License aims to maintain the collaborative nature of the project while restricting the distribution of modified versions.
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
32
README.md
32
README.md
@ -11,40 +11,42 @@ It really whips the llama's ass.
|
|||||||
Building of the Winamp desktop client is currently based around Visual Studio 2019 (VS2019) and Intel IPP libs (You need to use exactly v6.1.1.035).
|
Building of the Winamp desktop client is currently based around Visual Studio 2019 (VS2019) and Intel IPP libs (You need to use exactly v6.1.1.035).
|
||||||
There are different options of how to build Winamp:
|
There are different options of how to build Winamp:
|
||||||
|
|
||||||
1. Use a build_winampAll_2019.cmd script file that makes 4 versions x86/x64 (Debug and Release). In this case Visual Studio IDE not running.
|
1. Use the `build_winampAll_2019.cmd` script file that makes 4 versions x86/x64 (Debug and Release). In this case Visual Studio IDE not running.
|
||||||
2. Use a winampAll_2019.sln file to build and debug in Visual Studio IDE.
|
2. Use the `winampAll_2019.sln` file to build and debug in Visual Studio IDE.
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
1. Use a build_winampAll_2019.cmd script file that makes 4 versions x86/x64 (Debug and Release). In this case Visual Studio IDE not running.
|
1. Use the `build_winampAll_2019.cmd` script file that makes 4 versions x86/x64 (Debug and Release). In this case Visual Studio IDE not running.
|
||||||
2. Use a winampAll_2019.sln file to build and debug in Visual Studio IDE.
|
2. Use the `winampAll_2019.sln` file to build and debug in Visual Studio IDE.
|
||||||
|
|
||||||
#### libvpx
|
#### libvpx
|
||||||
We take libvpx from https://github.com/ShiftMediaProject/libvpx, modify it and pack to archive.
|
We take libvpx from [https://github.com/ShiftMediaProject/libvpx]([url](https://github.com/ShiftMediaProject/libvpx)), modify it and pack to archive.
|
||||||
Run unpack_libvpx_v1.8.2_msvc16.cmd to unpack.
|
Run `unpack_libvpx_v1.8.2_msvc16.cmd` to unpack.
|
||||||
|
|
||||||
#### libmpg123
|
#### libmpg123
|
||||||
We take libmpg123 from https://www.mpg123.de/download.shtml, modify it and pack to archive.
|
We take libmpg123 from [https://www.mpg123.de/download.shtml]([url](https://www.mpg123.de/download.shtml)), modify it and pack to archive.
|
||||||
Run unpack_libmpg123.cmd to unpack and process dlls.
|
Run `unpack_libmpg123.cmd` to unpack and process dlls.
|
||||||
|
|
||||||
#### OpenSSL
|
#### OpenSSL
|
||||||
You need to use openssl-1.0.1u. For that you need to build a static version of these libs.
|
You need to use `openssl-1.0.1u`. For that you need to build a static version of these libs.
|
||||||
Run build_vs_2019_openssl_x86.cmd and build_vs_2019_openssl_64.cmd.
|
Run `build_vs_2019_openssl_x86.cmd` and `build_vs_2019_openssl_64.cmd`.
|
||||||
|
|
||||||
To build OpenSSL you need to install
|
To build OpenSSL you need to install
|
||||||
|
|
||||||
7-Zip, NASM and Perl.
|
* 7-Zip
|
||||||
|
* NASM
|
||||||
|
* Perl
|
||||||
|
|
||||||
#### DirectX 9 SDK
|
#### DirectX 9 SDK
|
||||||
We take DirectX 9 SDK (June 2010) from Microsoft, modify it and pack to archive.
|
We take DirectX 9 SDK (June 2010) from Microsoft, modify it and pack to archive.
|
||||||
Run unpack_microsoft_directx_sdk_2010.cmd to unpack it.
|
Run `unpack_microsoft_directx_sdk_2010.cmd` to unpack it.
|
||||||
|
|
||||||
#### Microsoft ATLMFC lib fix
|
#### Microsoft ATLMFC lib fix
|
||||||
In file C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h
|
In file `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h`
|
||||||
|
|
||||||
goto line 427 and change from 'return ::DeleteFile((LPTSTR)lpFileName);' to 'return DeleteFile((LPTSTR)lpFileName);'
|
Go to line 427 and change from `return ::DeleteFile((LPTSTR)lpFileName);` to `return DeleteFile((LPTSTR)lpFileName);`
|
||||||
|
|
||||||
#### Intel IPP 6.1.1.035
|
#### Intel IPP 6.1.1.035
|
||||||
We take Intel IPP 6.1.1.035, modify it and pack to archive.
|
We take Intel IPP 6.1.1.035, modify it and pack to archive.
|
||||||
|
|
||||||
Run unpack_intel_ipp_6.1.1.035.cmd to unpack it.
|
Run `unpack_intel_ipp_6.1.1.035.cmd` to unpack it.
|
||||||
|
@ -1,693 +1,2 @@
|
|||||||
// disabled 30 May 2012 as per email from Tejas w.r.t. to Rovi deal ending
|
|
||||||
#if 0
|
#if 0
|
||||||
#include "main.h"
|
|
||||||
#include "../nu/AutoUrl.h"
|
|
||||||
#include "../nu/AutoWide.h"
|
|
||||||
#include "../nu/GrowBuf.h"
|
|
||||||
#include "api.h"
|
|
||||||
#include "../xml/obj_xml.h"
|
|
||||||
#include "../xml/ifc_xmlreadercallback.h"
|
|
||||||
#include "..\Components\wac_network\wac_network_http_receiver_api.h"
|
|
||||||
#include <api/service/waservicefactory.h>
|
|
||||||
#include <api/service/svcs/svc_imgload.h>
|
|
||||||
#include "XMLString.h"
|
|
||||||
#include <tataki/export.h>
|
|
||||||
#include <tataki/bitmap/bitmap.h>
|
|
||||||
#include <tataki/canvas/bltcanvas.h>
|
|
||||||
#include <strsafe.h>
|
|
||||||
|
|
||||||
static INT_PTR CALLBACK artDownloader(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
|
|
||||||
static INT_PTR CALLBACK scrollChildHostProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
|
|
||||||
static INT_PTR CALLBACK scrollChildProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
|
|
||||||
static INT_PTR CALLBACK imageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
|
|
||||||
|
|
||||||
#define HTTP_BUFFER_SIZE 32768
|
|
||||||
|
|
||||||
#define WM_ADDCHILD WM_USER+0
|
|
||||||
#define WM_SELECTED WM_USER+1
|
|
||||||
#define WM_UPDATESTATUS WM_USER+2
|
|
||||||
#define AddImageToList(hChild, param) SendMessageW(hChild,WM_ADDCHILD,0,(LPARAM)param)
|
|
||||||
#define GetParam(hwndDlg) (ArtParser*)GetWindowLongPtrW(hwndDlg,GWLP_USERDATA)
|
|
||||||
#define GetParamC(hwndDlg) (ImgDownloader*)GetWindowLongPtrW(hwndDlg,GWLP_USERDATA)
|
|
||||||
#define UpdateStatus(hwndDlg) PostMessageW(hwndDlg,WM_UPDATESTATUS,0,0)
|
|
||||||
|
|
||||||
class ImgDownloader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ImgDownloader(const wchar_t *_desc, const char *_url) : done(false), http(0), started(false), error(false), imgbuf(0), imgbufsize(0), imgbufused(0)
|
|
||||||
{
|
|
||||||
desc = _wcsdup(_desc);
|
|
||||||
url = _strdup(_url);
|
|
||||||
}
|
|
||||||
~ImgDownloader()
|
|
||||||
{
|
|
||||||
free(desc);
|
|
||||||
free(url);
|
|
||||||
free(imgbuf);
|
|
||||||
waServiceFactory *httpFactory = WASABI_API_SVC->service_getServiceByGuid(httpreceiverGUID);
|
|
||||||
if(httpFactory && http)
|
|
||||||
httpFactory->releaseInterface(http);
|
|
||||||
}
|
|
||||||
bool run();
|
|
||||||
|
|
||||||
wchar_t *desc;
|
|
||||||
char *url;
|
|
||||||
bool done, error;
|
|
||||||
api_httpreceiver *http;
|
|
||||||
|
|
||||||
BYTE *imgbuf;
|
|
||||||
int imgbufsize;
|
|
||||||
int imgbufused;
|
|
||||||
private:
|
|
||||||
bool started;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ArtParser : public ifc_xmlreadercallback
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ArtParser(artFetchData * data);
|
|
||||||
~ArtParser();
|
|
||||||
|
|
||||||
wchar_t curAlbumStr[512] = {0};
|
|
||||||
void ArtParser::StartTag(const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params);
|
|
||||||
void ArtParser::TextHandler(const wchar_t *xmlpath, const wchar_t *xmltag, const wchar_t *str);
|
|
||||||
|
|
||||||
int run();
|
|
||||||
|
|
||||||
artFetchData * data;
|
|
||||||
|
|
||||||
bool doneXML;
|
|
||||||
int curImage, numImages, failedImages;
|
|
||||||
|
|
||||||
bool error;
|
|
||||||
HWND hwndDlg;
|
|
||||||
obj_xml *parser;
|
|
||||||
waServiceFactory *parserFactory, *httpFactory;
|
|
||||||
api_httpreceiver *http;
|
|
||||||
std::vector<ImgDownloader*> imgDownload;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
#define CBCLASS ArtParser
|
|
||||||
START_DISPATCH_INLINE;
|
|
||||||
VCB(ONSTARTELEMENT, StartTag);
|
|
||||||
VCB(ONCHARDATA, TextHandler);
|
|
||||||
END_DISPATCH;
|
|
||||||
#undef CBCLASS
|
|
||||||
};
|
|
||||||
|
|
||||||
wchar_t tmp_album[512] = {0}, tmp_artist[512] = {0}, tmp_year[5] = {0};
|
|
||||||
int RetrieveAlbumArt(artFetchData * data)
|
|
||||||
{
|
|
||||||
if(!data || data->size < sizeof(artFetchData))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
int ret = 1;
|
|
||||||
Tataki::Init(serviceManager);
|
|
||||||
{
|
|
||||||
ArtParser param(data);
|
|
||||||
if(!param.error)
|
|
||||||
ret = LPDialogBoxParamW(IDD_ARTDOWNLOADER,data->parent,artDownloader,(LPARAM)¶m);
|
|
||||||
|
|
||||||
while (ret == 2) // Keep in loop till user aborts custom search
|
|
||||||
{
|
|
||||||
// TODO: benski> maybe we should save the old values and restore at the end
|
|
||||||
data->album = tmp_album;
|
|
||||||
data->artist = tmp_artist;
|
|
||||||
data->year = _wtoi(tmp_year);
|
|
||||||
// Martin> we should also set the other values back to null
|
|
||||||
// benski> i'm not sure if we want to set these id fields to NULL
|
|
||||||
// but we'll go with it for now
|
|
||||||
data->amgAlbumId = NULL;
|
|
||||||
data->amgArtistId = NULL;
|
|
||||||
data->gracenoteFileId = NULL;
|
|
||||||
WASABI_API_MEMMGR->sysFree(data->imgData);
|
|
||||||
data->imgData = NULL;
|
|
||||||
data->imgDataLen = NULL;
|
|
||||||
|
|
||||||
ArtParser param(data);
|
|
||||||
ret = LPDialogBoxParamW(IDD_ARTDOWNLOADER,data->parent,artDownloader,(LPARAM)¶m);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Tataki::Quit();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define USER_AGENT_SIZE (10 /*User-Agent*/ + 2 /*: */ + 6 /*Winamp*/ + 1 /*/*/ + 1 /*5*/ + 3/*.21*/ + 1 /*Null*/)
|
|
||||||
static void SetUserAgent(api_httpreceiver *http)
|
|
||||||
{
|
|
||||||
char user_agent[USER_AGENT_SIZE] = {0};
|
|
||||||
StringCchCopyA(user_agent, USER_AGENT_SIZE, "User-Agent: Winamp/"APP_VERSION); // as a nice side effect, this will cut off any extra digits after the first two. e.g. 5.111 becomes 5.11
|
|
||||||
http->addheader(user_agent);
|
|
||||||
}
|
|
||||||
|
|
||||||
class UrlBuilder : private GrowBuf
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
UrlBuilder(const char * base) : first(1) { set(base); }
|
|
||||||
~UrlBuilder(){}
|
|
||||||
void AddParam(const char * key, const wchar_t * value) { AddParamI(key,(char*)AutoUrl(value)); }
|
|
||||||
void AddParam(const char * key, int value) { char buf[16]; StringCchPrintfA(buf,16,"%d",value); AddParamI(key,buf); }
|
|
||||||
void Finish() { GrowBuf::add((void*)"",1); }
|
|
||||||
const char * Get() { return (const char*)get(); } // don't call this without first calling finish!
|
|
||||||
private:
|
|
||||||
void AddParamI(const char * key, const char * value) { if(first){ first=0; add("?");} else add("&"); add(key); add("="); add(value); }
|
|
||||||
void add(const char * x) { GrowBuf::add((char*)x,strlen(x)); }
|
|
||||||
void set(const char * x) { GrowBuf::set((char*)x,strlen(x)); }
|
|
||||||
int first;
|
|
||||||
};
|
|
||||||
|
|
||||||
static wchar_t* format(const wchar_t *in, wchar_t *buf, int len)
|
|
||||||
{
|
|
||||||
wchar_t *p = buf;
|
|
||||||
int inbracket = 0;
|
|
||||||
while(in && *in)
|
|
||||||
{
|
|
||||||
if(p >= buf + len - 1) break;
|
|
||||||
else if(*in == L'[' || *in == L'(' || *in == L'<') inbracket++;
|
|
||||||
else if(*in == L']' || *in == L')' || *in == L'>') inbracket--;
|
|
||||||
else if(!inbracket) *(p++) = *in;
|
|
||||||
in++;
|
|
||||||
}
|
|
||||||
*p=0;
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
ArtParser::ArtParser(artFetchData * data) : data(data), error(false), parserFactory(0), parser(0), http(0), httpFactory(0), doneXML(false), curImage(0), numImages(0), failedImages(0)
|
|
||||||
{
|
|
||||||
curAlbumStr[0]=0;
|
|
||||||
|
|
||||||
parserFactory = WASABI_API_SVC->service_getServiceByGuid(obj_xmlGUID);
|
|
||||||
if (parserFactory)
|
|
||||||
parser = (obj_xml *)parserFactory->getInterface();
|
|
||||||
|
|
||||||
if (parser)
|
|
||||||
{
|
|
||||||
parser->xmlreader_registerCallback(L"document\fartwork", this);
|
|
||||||
parser->xmlreader_registerCallback(L"response\fdata\fartwork", this);
|
|
||||||
parser->xmlreader_open();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
error=true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct xml url
|
|
||||||
UrlBuilder url("http://client.winamp.com/metadata/artwork.php");
|
|
||||||
|
|
||||||
wchar_t temp[2048] = {0};
|
|
||||||
|
|
||||||
if(data->artist && data->artist[0] && _wcsicmp(data->artist, L"Various Artists") && _wcsicmp(data->artist, L"VA") && _wcsicmp(data->artist, L"OST"))
|
|
||||||
url.AddParam("artist",format(data->artist,temp,2048));
|
|
||||||
|
|
||||||
if(data->album && data->album[0])
|
|
||||||
url.AddParam("album",format(data->album,temp,2048));
|
|
||||||
|
|
||||||
if(data->year)
|
|
||||||
url.AddParam("recorddate",data->year);
|
|
||||||
|
|
||||||
if(data->amgAlbumId)
|
|
||||||
url.AddParam("amgalbumid",data->amgAlbumId);
|
|
||||||
|
|
||||||
if(data->amgArtistId)
|
|
||||||
url.AddParam("amgartistid",data->amgArtistId);
|
|
||||||
|
|
||||||
if(data->gracenoteFileId && data->gracenoteFileId[0])
|
|
||||||
url.AddParam("tagid",data->gracenoteFileId);
|
|
||||||
|
|
||||||
url.Finish();
|
|
||||||
|
|
||||||
httpFactory = WASABI_API_SVC->service_getServiceByGuid(httpreceiverGUID);
|
|
||||||
if(httpFactory) http = (api_httpreceiver *)httpFactory->getInterface();
|
|
||||||
|
|
||||||
if(http)
|
|
||||||
{
|
|
||||||
http->AllowCompression();
|
|
||||||
http->open(API_DNS_AUTODNS, HTTP_BUFFER_SIZE, config_proxy);
|
|
||||||
SetUserAgent(http);
|
|
||||||
http->connect(url.Get());
|
|
||||||
}
|
|
||||||
else error = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ArtParser::~ArtParser()
|
|
||||||
{
|
|
||||||
imgDownload.deleteAll();
|
|
||||||
if(parser)
|
|
||||||
{
|
|
||||||
parser->xmlreader_unregisterCallback(this);
|
|
||||||
parser->xmlreader_close();
|
|
||||||
if(parserFactory)
|
|
||||||
parserFactory->releaseInterface(parser);
|
|
||||||
}
|
|
||||||
parser = 0;
|
|
||||||
parserFactory = 0;
|
|
||||||
if(http && httpFactory)
|
|
||||||
httpFactory->releaseInterface(http);
|
|
||||||
http = 0;
|
|
||||||
httpFactory = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ArtParser::StartTag(const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params)
|
|
||||||
{
|
|
||||||
const wchar_t* artist = params->getItemValue(L"amgArtistDispName");
|
|
||||||
const wchar_t* album = params->getItemValue(L"amgDispName");
|
|
||||||
const wchar_t* year = params->getItemValue(L"recordDate");
|
|
||||||
StringCchPrintfW(curAlbumStr,512,L"%s - %s (%s)",artist?artist:L"",album?album:L"",year?year:L"");
|
|
||||||
}
|
|
||||||
|
|
||||||
void ArtParser::TextHandler(const wchar_t *xmlpath, const wchar_t *xmltag, const wchar_t *str)
|
|
||||||
{
|
|
||||||
numImages++;
|
|
||||||
imgDownload.push_back(new ImgDownloader(curAlbumStr,AutoChar(str)));
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
}
|
|
||||||
|
|
||||||
int ArtParser::run()
|
|
||||||
{
|
|
||||||
int ret = http->run();
|
|
||||||
if (ret == -1) // connection failed
|
|
||||||
{
|
|
||||||
error=true;
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int replycode = http->getreplycode();
|
|
||||||
switch (replycode)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 100:
|
|
||||||
return 1;
|
|
||||||
case 200:
|
|
||||||
{
|
|
||||||
char downloadedData[HTTP_BUFFER_SIZE] = {0};
|
|
||||||
int xmlResult = API_XML_SUCCESS;
|
|
||||||
int downloadSize = http->get_bytes(downloadedData, HTTP_BUFFER_SIZE);
|
|
||||||
if(downloadSize)
|
|
||||||
xmlResult = parser->xmlreader_feed((void *)downloadedData, downloadSize);
|
|
||||||
else if(!downloadSize && ret == 1)
|
|
||||||
{ // we're finished!
|
|
||||||
xmlResult = parser->xmlreader_feed(0,0);
|
|
||||||
doneXML=true;
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
error=true;
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ImgDownloader::run()
|
|
||||||
{
|
|
||||||
if(!started)
|
|
||||||
{
|
|
||||||
started = true;
|
|
||||||
waServiceFactory *httpFactory = WASABI_API_SVC->service_getServiceByGuid(httpreceiverGUID);
|
|
||||||
if(httpFactory) http = (api_httpreceiver *)httpFactory->getInterface();
|
|
||||||
if(http)
|
|
||||||
{
|
|
||||||
http->open(API_DNS_AUTODNS, HTTP_BUFFER_SIZE, config_proxy);
|
|
||||||
SetUserAgent(http);
|
|
||||||
http->connect(url);
|
|
||||||
}
|
|
||||||
imgbuf = (BYTE*)malloc(HTTP_BUFFER_SIZE);
|
|
||||||
imgbufsize = HTTP_BUFFER_SIZE;
|
|
||||||
}
|
|
||||||
if(!http || !imgbuf)
|
|
||||||
{
|
|
||||||
error=true;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int ret = http->run();
|
|
||||||
if(ret == -1) //error
|
|
||||||
{
|
|
||||||
error=true;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int replycode = http->getreplycode();
|
|
||||||
switch (replycode)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
case 100:
|
|
||||||
return 1;
|
|
||||||
case 200:
|
|
||||||
{
|
|
||||||
int downloadSize = http->get_bytes(imgbuf+imgbufused, imgbufsize - imgbufused);
|
|
||||||
imgbufused += downloadSize;
|
|
||||||
if(imgbufused + 4096 >= imgbufsize)
|
|
||||||
{
|
|
||||||
imgbufsize += HTTP_BUFFER_SIZE;
|
|
||||||
imgbuf = (BYTE*)realloc(imgbuf,imgbufsize);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!downloadSize && ret == 1)
|
|
||||||
done=true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static INT_PTR CALLBACK artDownloader(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
|
||||||
{
|
|
||||||
static HWND m_child;
|
|
||||||
switch(uMsg)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
m_child = LPCreateDialogW(IDD_ARTDOWNLOADER_SCROLLHOST,hwndDlg,(WNDPROC)scrollChildHostProc);
|
|
||||||
SetWindowLong(hwndDlg,GWLP_USERDATA,lParam);
|
|
||||||
ArtParser * parser = (ArtParser *)lParam;
|
|
||||||
parser->hwndDlg = hwndDlg;
|
|
||||||
SetTimer(hwndDlg,0,50,NULL);
|
|
||||||
SetTimer(hwndDlg,1,50,NULL);
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
if(parser->data->showCancelAll) ShowWindow(GetDlgItem(hwndDlg,IDC_CANCELALL),SW_SHOWNA);
|
|
||||||
wchar_t old[100]=L"";
|
|
||||||
GetWindowTextW(hwndDlg,old,100);
|
|
||||||
wchar_t buf[256]=L"";
|
|
||||||
if(parser->data->artist && parser->data->artist[0] && parser->data->album && parser->data->album[0])
|
|
||||||
StringCchPrintfW(buf,256,L"%s: %s - %s",old,parser->data->artist,parser->data->album);
|
|
||||||
else if(parser->data->album && parser->data->album[0])
|
|
||||||
StringCchPrintfW(buf,256,L"%s: %s",old,parser->data->album);
|
|
||||||
else if(parser->data->artist && parser->data->artist[0])
|
|
||||||
StringCchPrintfW(buf,256,L"%s: %s",old,parser->data->artist);
|
|
||||||
|
|
||||||
if(buf[0])
|
|
||||||
SetWindowTextW(hwndDlg,buf);
|
|
||||||
|
|
||||||
SetWindowTextW(GetDlgItem(hwndDlg,IDC_SEARCHREFINE_ARTIST), parser->data->artist);
|
|
||||||
SetWindowTextW(GetDlgItem(hwndDlg,IDC_SEARCHREFINE_ALBUM), parser->data->album);
|
|
||||||
wchar_t yearbuf[5]=L"";
|
|
||||||
_itow(parser->data->year,yearbuf,10);
|
|
||||||
SetWindowTextW(GetDlgItem(hwndDlg,IDC_SEARCHREFINE_YEAR), (parser->data->year?yearbuf:L""));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_SELECTED:
|
|
||||||
{
|
|
||||||
ArtParser * parser = GetParam(hwndDlg);
|
|
||||||
HWND selchild = (HWND)wParam;
|
|
||||||
ImgDownloader *d = (ImgDownloader *)lParam;
|
|
||||||
if(parser && d && d->imgbuf && d->imgbufused)
|
|
||||||
{
|
|
||||||
if (!AGAVE_API_AMGSUCKS || AGAVE_API_AMGSUCKS->WriteAlbumArt(d->imgbuf, d->imgbufused, &parser->data->imgData, &parser->data->imgDataLen) != 0)
|
|
||||||
{
|
|
||||||
void * img = WASABI_API_MEMMGR->sysMalloc(d->imgbufused);
|
|
||||||
memcpy(img,d->imgbuf,d->imgbufused);
|
|
||||||
parser->data->imgData = img;
|
|
||||||
parser->data->imgDataLen = d->imgbufused;
|
|
||||||
}
|
|
||||||
char * dot = strrchr(d->url,'.');
|
|
||||||
if(dot) lstrcpynW(parser->data->type,AutoWide(dot+1),10);
|
|
||||||
EndDialog(hwndDlg,0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_UPDATESTATUS:
|
|
||||||
{
|
|
||||||
ArtParser * parser = GetParam(hwndDlg);
|
|
||||||
if(parser)
|
|
||||||
{
|
|
||||||
wchar_t s[100] = {0};
|
|
||||||
if(parser->error) getStringW(IDS_ART_SEARCH_FAILED,s,100);
|
|
||||||
else if(parser->doneXML) getStringW(IDS_ART_SEARCH_FINISHED,s,100);
|
|
||||||
else getStringW(IDS_ART_SEARCH_PROGRESS,s,100);
|
|
||||||
wchar_t buf[512] = {0};
|
|
||||||
StringCchPrintfW(buf,512,getStringW(IDS_ART_SEARCH_STATUS,0,0),s,parser->numImages,parser->curImage - parser->failedImages,parser->failedImages,parser->numImages - parser->curImage);
|
|
||||||
SetDlgItemTextW(hwndDlg,IDC_STATUS,buf);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_TIMER:
|
|
||||||
{
|
|
||||||
ArtParser * parser = GetParam(hwndDlg);
|
|
||||||
switch(wParam)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if(parser && !parser->run())
|
|
||||||
KillTimer(hwndDlg,0);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if(parser && parser->imgDownload.size())
|
|
||||||
{
|
|
||||||
ImgDownloader *d = parser->imgDownload.at(0);
|
|
||||||
if(d->error)
|
|
||||||
{
|
|
||||||
parser->failedImages++;
|
|
||||||
parser->curImage++;
|
|
||||||
parser->imgDownload.eraseindex(0);
|
|
||||||
delete d;
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
}
|
|
||||||
else if(d->done)
|
|
||||||
{
|
|
||||||
parser->curImage++;
|
|
||||||
parser->imgDownload.eraseindex(0);
|
|
||||||
AddImageToList(m_child,d);
|
|
||||||
UpdateStatus(hwndDlg);
|
|
||||||
}
|
|
||||||
else d->run();
|
|
||||||
}
|
|
||||||
if(parser->error || parser->doneXML)
|
|
||||||
{
|
|
||||||
if(parser->curImage == parser->numImages)
|
|
||||||
{
|
|
||||||
KillTimer(hwndDlg,1);
|
|
||||||
if(!parser->numImages)
|
|
||||||
{
|
|
||||||
wchar_t title[100] = {0};
|
|
||||||
getStringW(IDS_ART_SEARCH_NOT_FOUND_TITLE,title,100);
|
|
||||||
MessageBoxW(hwndDlg,getStringW(IDS_ART_SEARCH_NOT_FOUND,0,0),title,0);
|
|
||||||
//EndDialog(hwndDlg,-1); //CUT, since we have now a custom search
|
|
||||||
}
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg, IDC_SEARCHAGAIN), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_DESTROY:
|
|
||||||
{
|
|
||||||
SetWindowLong(hwndDlg,GWLP_USERDATA,0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_CLOSE:
|
|
||||||
EndDialog(hwndDlg,-1);
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
switch(LOWORD(wParam))
|
|
||||||
{
|
|
||||||
case IDCANCEL:
|
|
||||||
EndDialog(hwndDlg,-1);
|
|
||||||
break;
|
|
||||||
case IDC_CANCELALL:
|
|
||||||
EndDialog(hwndDlg,-2);
|
|
||||||
break;
|
|
||||||
case IDC_SEARCHAGAIN: // copy text field params to parser
|
|
||||||
ArtParser * parser = GetParam(hwndDlg);
|
|
||||||
|
|
||||||
// Let the first search process finish
|
|
||||||
if (!(parser->doneXML || parser->error))
|
|
||||||
{
|
|
||||||
//TODO change this string
|
|
||||||
MessageBoxW(hwndDlg, L"Please wait till the current retrieval is finished", L"", 0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetDlgItemTextW(hwndDlg,IDC_SEARCHREFINE_ALBUM, tmp_album, 512);
|
|
||||||
GetDlgItemTextW(hwndDlg,IDC_SEARCHREFINE_ARTIST, tmp_artist, 512);
|
|
||||||
GetDlgItemTextW(hwndDlg,IDC_SEARCHREFINE_YEAR, tmp_year, 5);
|
|
||||||
|
|
||||||
// End Dialog w/ returning 2: indicates that teh users wants to start a custom search
|
|
||||||
EndDialog(hwndDlg,2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// from FileInfo.cpp
|
|
||||||
extern HBITMAP getBitmap(ARGB32 * data, int dw, int dh, int targetW, int targetH, HWND parent);
|
|
||||||
extern ARGB32 * decompressImage(const void *data, int datalen, int * dataW, int * dataH);
|
|
||||||
|
|
||||||
HBITMAP loadImage(const void * data, int datalen, int w, int h, HWND parent, int *dw=0, int *dh=0)
|
|
||||||
{
|
|
||||||
int dataW=0, dataH=0;
|
|
||||||
ARGB32* ret = decompressImage(data,datalen,&dataW,&dataH);
|
|
||||||
|
|
||||||
if(dw) *dw = dataW;
|
|
||||||
if(dh) *dh = dataH;
|
|
||||||
if(!ret) return 0;
|
|
||||||
HBITMAP r = getBitmap(ret, dataW, dataH, w, h, parent);
|
|
||||||
WASABI_API_MEMMGR->sysFree(ret);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define GetDlgParent(hwndDlg) GetParent(GetParent(GetParent(hwndDlg)))
|
|
||||||
static INT_PTR CALLBACK imageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
|
||||||
{
|
|
||||||
switch(uMsg)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
SetWindowLong(hwndDlg,GWLP_USERDATA,lParam);
|
|
||||||
ImgDownloader *d = (ImgDownloader *)lParam;
|
|
||||||
int w=0,h=0;
|
|
||||||
HBITMAP bm = loadImage(d->imgbuf,d->imgbufused,140,140,hwndDlg,&w,&h);
|
|
||||||
SendDlgItemMessage(hwndDlg,IDC_IMAGE,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)bm);
|
|
||||||
wchar_t buf[1024] = {0};
|
|
||||||
StringCchPrintfW(buf,1024,L"%s: %dx%d (%d kB)",d->desc,w,h,(d->imgbufused/1024));
|
|
||||||
SetDlgItemTextW(hwndDlg,IDC_IMGTEXT,buf);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_DESTROY:
|
|
||||||
{
|
|
||||||
ImgDownloader *d = GetParamC(hwndDlg);
|
|
||||||
SetWindowLong(hwndDlg,GWLP_USERDATA,0);
|
|
||||||
if(d) delete d;
|
|
||||||
HBITMAP bm = (HBITMAP)SendDlgItemMessage(hwndDlg,IDC_IMAGE,STM_SETIMAGE,IMAGE_BITMAP,0);
|
|
||||||
if(bm) DeleteObject(bm);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
if(LOWORD(wParam) != IDC_SELECT)
|
|
||||||
break;
|
|
||||||
// else run through
|
|
||||||
case WM_LBUTTONDBLCLK:
|
|
||||||
SendMessageW(GetDlgParent(hwndDlg),WM_SELECTED,(WPARAM)hwndDlg,(LPARAM)GetParamC(hwndDlg));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// scroll shit, nothing interesting is happening down here...
|
|
||||||
|
|
||||||
static INT_PTR CALLBACK scrollChildHostProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
|
||||||
{
|
|
||||||
//static HWND m_child;
|
|
||||||
switch(uMsg)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
RECT r;
|
|
||||||
HWND hw = GetParent(hwndDlg);
|
|
||||||
GetWindowRect(GetDlgItem(hw,IDC_PLACEHOLDER),&r);
|
|
||||||
ScreenToClient(hw,(LPPOINT)&r);
|
|
||||||
ScreenToClient(hw,((LPPOINT)&r)+1);
|
|
||||||
SetWindowPos(hwndDlg,NULL,r.left,r.top,r.right-r.left,r.bottom-r.top,SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
LPCreateDialogW(IDD_ARTDOWNLOADER_SCROLLCHILD,hwndDlg,(WNDPROC)scrollChildProc);
|
|
||||||
|
|
||||||
SCROLLINFO si={sizeof(si),SIF_RANGE|SIF_PAGE,0};
|
|
||||||
si.nPage = (r.right - r.left);
|
|
||||||
SetScrollInfo(hwndDlg,SB_HORZ,&si,TRUE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_ADDCHILD:
|
|
||||||
{
|
|
||||||
HWND m_child = GetWindow(hwndDlg,GW_CHILD);
|
|
||||||
HWND newChild = (HWND)SendMessageW(m_child,uMsg,wParam,lParam);
|
|
||||||
RECT r,r2;
|
|
||||||
GetClientRect(m_child,&r);
|
|
||||||
GetClientRect(hwndDlg,&r2);
|
|
||||||
SCROLLINFO si={sizeof(si),SIF_RANGE|SIF_PAGE,0};
|
|
||||||
si.nMin = 0;
|
|
||||||
si.nMax = (r.right - r.left);
|
|
||||||
si.nPage = (r2.right - r2.left);
|
|
||||||
if(si.nMax < 0) si.nMax = 0;
|
|
||||||
SetScrollInfo(hwndDlg,SB_HORZ,&si,TRUE);
|
|
||||||
return (INT_PTR)newChild;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_HSCROLL:
|
|
||||||
{
|
|
||||||
HWND m_child = GetWindow(hwndDlg,GW_CHILD);
|
|
||||||
int v=0;
|
|
||||||
RECT r;
|
|
||||||
RECT r2;
|
|
||||||
GetClientRect(hwndDlg,&r2);
|
|
||||||
GetClientRect(m_child,&r);
|
|
||||||
int action = LOWORD(wParam);
|
|
||||||
|
|
||||||
if (r2.right < r.right) {
|
|
||||||
if (action == SB_THUMBPOSITION || action == SB_THUMBTRACK) {
|
|
||||||
SCROLLINFO si={sizeof(si),SIF_TRACKPOS|SIF_POS};
|
|
||||||
GetScrollInfo(hwndDlg,SB_HORZ,&si);
|
|
||||||
v=si.nTrackPos;
|
|
||||||
}
|
|
||||||
else if (action == SB_TOP)
|
|
||||||
v=0;
|
|
||||||
else if (action == SB_BOTTOM)
|
|
||||||
v=r.right-r2.right;
|
|
||||||
else if (action == SB_PAGEDOWN || action == SB_LINEDOWN) {
|
|
||||||
SCROLLINFO si={sizeof(si),SIF_TRACKPOS|SIF_POS};
|
|
||||||
GetScrollInfo(hwndDlg,SB_HORZ,&si);
|
|
||||||
if(action == SB_LINEDOWN)
|
|
||||||
v=si.nPos + (r2.right)/10;
|
|
||||||
else
|
|
||||||
v=si.nPos + r2.right;
|
|
||||||
if (v > r.right-r2.right) v=r.right-r2.right;
|
|
||||||
}
|
|
||||||
else if (action == SB_PAGEUP || action == SB_LINEUP) {
|
|
||||||
SCROLLINFO si={sizeof(si),SIF_TRACKPOS|SIF_POS};
|
|
||||||
GetScrollInfo(hwndDlg,SB_HORZ,&si);
|
|
||||||
if(action == SB_LINEUP)
|
|
||||||
v=si.nPos - (r2.right)/10;
|
|
||||||
else
|
|
||||||
v=si.nPos - r2.right;
|
|
||||||
if (v < 0) v=0;
|
|
||||||
}
|
|
||||||
else return 0;
|
|
||||||
|
|
||||||
SetScrollPos(hwndDlg,SB_HORZ,v,!(action == SB_THUMBPOSITION || action == SB_THUMBTRACK));
|
|
||||||
SetWindowPos(m_child,NULL,0-v,0,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SetScrollPos(hwndDlg,SB_HORZ,0,!(action == SB_THUMBPOSITION || action == SB_THUMBTRACK));
|
|
||||||
SetWindowPos(m_child,NULL,0,0,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static INT_PTR CALLBACK scrollChildProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
|
||||||
{
|
|
||||||
switch(uMsg)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
RECT r;
|
|
||||||
GetClientRect(hwndDlg,&r);
|
|
||||||
SetWindowPos(hwndDlg,0,0,0,0,r.bottom,SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_ADDCHILD:
|
|
||||||
{
|
|
||||||
HWND newChild = LPCreateDialogParamW(IDD_ARTDOWNLOADER_IMAGE,hwndDlg,imageProc,lParam);
|
|
||||||
RECT r,r2;
|
|
||||||
GetClientRect(hwndDlg,&r);
|
|
||||||
GetClientRect(newChild,&r2);
|
|
||||||
SetWindowPos(hwndDlg,0,0,0,r.right + r2.right,r.bottom,SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
SetWindowPos(newChild,0,r.right,0,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
|
|
||||||
ShowWindow(newChild,SW_SHOWNA);
|
|
||||||
return (INT_PTR)newChild;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
Binary file not shown.
@ -1,38 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi
|
|
||||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
||||||
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
|
|
||||||
RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
|
|
||||||
dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC
|
|
||||||
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1
|
|
||||||
M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ
|
|
||||||
wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI
|
|
||||||
8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi
|
|
||||||
TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm
|
|
||||||
ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S
|
|
||||||
vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
|
|
||||||
k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+
|
|
||||||
960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s
|
|
||||||
MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK
|
|
||||||
PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H
|
|
||||||
s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw
|
|
||||||
HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS
|
|
||||||
cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF
|
|
||||||
BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
|
|
||||||
Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
|
|
||||||
Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy
|
|
||||||
aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
|
|
||||||
cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD
|
|
||||||
ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L
|
|
||||||
/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV
|
|
||||||
UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd
|
|
||||||
KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK
|
|
||||||
6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N
|
|
||||||
b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z
|
|
||||||
XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm
|
|
||||||
oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8
|
|
||||||
y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM
|
|
||||||
B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
|
|
||||||
SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO
|
|
||||||
-----END CERTIFICATE-----
|
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div><blockquote type="cite" class=""><div class=""></div></blockquote></div><br class=""></div></body></html>
|
|
@ -1,32 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,41 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIHRDCCBSygAwIBAgIQBpNVvDvQCWBPv1q9mt/1ADANBgkqhkiG9w0BAQsFADBp
|
|
||||||
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
|
|
||||||
OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0
|
|
||||||
IDIwMjEgQ0ExMB4XDTIyMDYxMDAwMDAwMFoXDTI0MDYxMjIzNTk1OVowSTELMAkG
|
|
||||||
A1UEBhMCQkUxEjAQBgNVBAcTCUJydXhlbGxlczESMBAGA1UEChMJV2luYW1wIFNB
|
|
||||||
MRIwEAYDVQQDEwlXaW5hbXAgU0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
|
|
||||||
AoICAQD4sc3Vvf1YOujnYGodelz2YbBaf+G037IbzRiCvlTUAPaqaiNmBBlgKOfn
|
|
||||||
0Ui8SkmRABQ06WDOCJYxCnugstvhg1vs/E7AxxG2rEgZl/NmB84ingOlCcE6f2WH
|
|
||||||
cttxSVsrjxbRFFQIkvj+v3R12NTWQzg4HGwyXS8VtB22On2gVjmsdeuMiUuDaXRx
|
|
||||||
JCVm3NIYz7LJAdpnl9LkJOwVuCyifGUcLoJVZJgz8QcCGg038OLL17XVriAE+i46
|
|
||||||
r0caNeZwFuAG2AVaRO7ggzkjA5DeFlB9vBqbJAbi9dQGkXGTx/CGR0n09EkF5uyP
|
|
||||||
A2a7SodAYijIluiZLgEDOVTKJZLxbX4cdTCyHrSFq231TMdbpGj/+3Hc5BHpymkN
|
|
||||||
I2Ju8sf9SfzuR2s6F77wdobmrR+8jVEQAYw82FB+rL4CuW8Kg0dr/LHYdv53jbrr
|
|
||||||
f9JSB8DqvJ7zjS40eIIEXq2zWdt7qzw6TiUo/mkr1aSqXhYQhotuossovEs8IePP
|
|
||||||
Sxatw5olw6kokY8RrIi7yindv48M9EC4vy9l8qx1+7+G7tBOTnGTxHBvgG/L3PW6
|
|
||||||
NDb44iDSRmFVJRb8QxCQ0L2Ywz8VdkHWoCr7dPGIY6pdy0aHKRrMZeZmaB2A72lD
|
|
||||||
sN4cMjXfFNPD5x53HA9Vf333Wv4KANINSL4af7KOa+9LRYh4dwIDAQABo4ICBjCC
|
|
||||||
AgIwHwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFELu
|
|
||||||
dm9oHqV42XGzPaxAv/7pJey9MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggr
|
|
||||||
BgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5kaWdpY2Vy
|
|
||||||
dC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQy
|
|
||||||
MDIxQ0ExLmNybDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lD
|
|
||||||
ZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5jcmww
|
|
||||||
PgYDVR0gBDcwNTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5k
|
|
||||||
aWdpY2VydC5jb20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYY
|
|
||||||
aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2Fj
|
|
||||||
ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JT
|
|
||||||
QTQwOTZTSEEzODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEB
|
|
||||||
CwUAA4ICAQAiXaobHW5Lm7gafYUDOeXJvkieNAit/CD1sOvd1AwlTej2X5JvuzQL
|
|
||||||
6pGuFPmHiTvzPo9bMZ7/qm01UQnRn3/x0nkCYURXzmot///lZ94uQKnFT/6mHxcU
|
|
||||||
ZtZa9qG7EyieVSrmaI1pH5NdQroPL9gmscewC9VhJZnMoUhAeaOzzpjI24lakOw4
|
|
||||||
h22V88BHRcxkNUUH5qV5fDhHhiiGvuqGO4Yi6bCm8TuC/AEVt3KsrytnRKoc9Z+s
|
|
||||||
klbA7G9hPgcmYdcoHFNAc9XmZLo7tbffjqokRmytYjTZgw2s4qUO49Zt7+J3KJRt
|
|
||||||
WduuqXNpSLW6bkuDyQBL9NitkW50R3Ub0gEr0xUYwD0IqwWj7DDxCyxwtP4OyD4r
|
|
||||||
T/Py9rTYSLP+XGgb4MgIN/sMKlVJf8SN5P2DzNuX+hBZyFeAGNyFhOSKydXaeaxA
|
|
||||||
mgNzZb25JJ7gPnb/6fJkl+8mh64RKgDZk5y79MRukxecwBaDOetYAJ9AFvyeLZoE
|
|
||||||
JzbCtADu4d/IAC8ZU38ROWXec9aJE/YByXfhyNjDMQsZIY0Av0UOuWMzunnISycn
|
|
||||||
q8ZTNQXWhwuOAZRVecApc+cwwJKWJJuubrdCw6dC1p+D8Qc/SrD/jmHw2XWYI9l5
|
|
||||||
Exm0ABFlOzOMyUqSAxXwymxugJMFUr4r7/GM2qFUSTkQf/e2pUPIbg==
|
|
||||||
-----END CERTIFICATE-----
|
|
Binary file not shown.
@ -1,30 +0,0 @@
|
|||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
Proc-Type: 4,ENCRYPTED
|
|
||||||
DEK-Info: DES-EDE3-CBC,FFEF139B23999677
|
|
||||||
|
|
||||||
uWGiiUFqEd5AafE4FCrJmBUADd/bJT7rVfTXCY5BxQFkXntpODQ1W3qcZIxPwmFg
|
|
||||||
SjFdL8DPI1wFyw6VF4aX58JNnAx0TQZnNWZ/zg+vBfMtd9BO6uixl2qLVvupkKs7
|
|
||||||
HYDJlAAP9hmHbDj9K2EOUS+EpBURq5m3E/XMY5nhtTcsYkfzmqXPCOKbL8pvKRCf
|
|
||||||
qRWim4F+MqBKzgvi7aHuBO5KH4gQ2IKEF181AyUsFmSp1wvxF01NiT25im9DOQFW
|
|
||||||
YFRuLwiD85/8YRF1fHB5+uEuxOeslUC7cb0ypru1MjvqRxqFxlG3+uZeBG1YHyuD
|
|
||||||
7BPMeK3AuPQkVpCqGimtEX0km2Gi9qAMP+bYd3NGzT7DGKP2ZpZ8SnCETrT5pPfb
|
|
||||||
/irkNe+blx21IU5hzbw9DDXUqi8zm2jIcn2EX+hdvb3g0j2FqQ+7+m1ASu5p89vc
|
|
||||||
3DEQZ+JF47Ay/5GefztSFoIlLjTiZYBOK+NPkoR7cUY8f4r3hNLLuyzN8/idPFoi
|
|
||||||
o+/tvNwd06CSxwIK0Ks6BMcCXG9zREgLsSVLBVjOFVJ/Wr/NhnQga65/76UsqxTF
|
|
||||||
ZaY+Q6FTz8ggsbkjQEEGlSDfVdYTAX1MfgGbpVPmvufkAl3CoefQTT4hCs7s0TGW
|
|
||||||
YKfjNfqqFAwJW1UZkAYm21YKIlCSmGux0pOd8S6S3kNYdRMn5QppyqpcnRZcMBBw
|
|
||||||
mPYwUqjX1/Fb5myw77Gstt1Cnx4+dithcjeBq5DIsci4jUhf4e9ujHf96OaWKK01
|
|
||||||
/EsNa54hT1CQRDHvdVF0tlVJdUyn8NonN7tB4+rUS6YJRdxthHhDfPsrtg9o5e8N
|
|
||||||
yZxunfGSey8dithZHA11nXb6J5rJcsRnCZUzhq0nkYguxHSTgkEqLZcbl5WigkgF
|
|
||||||
EzUU4di8I4m5vSy6OLM7inKAomJD11cpV+kBbUzOXoVo6v8Gz3KvES/UpN0I+Wgh
|
|
||||||
xs7xRgg/Kx6/DG3Jwv71ITCYytZH4mY1eplUaJuIv11BPhc132adVpcI31A459uG
|
|
||||||
eN9UqEfZJfT0YTNVCefErCmuRu/iIh/XndVFKd1N/WsUR58H3+JGaArss66KbvXR
|
|
||||||
CT4Fkyc5+rQENc2daAH2tAeeLIheMmEyKmfXefje7tiaPD6+lgPISoNlGo0cxyQ7
|
|
||||||
YGVneVmpDpNZ/s6kV5BvxawkH7WGzt0gDqMmAyawK2kBPuTvG0+uYXAfEJjdWhAH
|
|
||||||
E87Xu13GtVOyuJD37RojJbned6xlwuW0oLXSb5IO677lN+cyyqjNy2VG7l3MYL+b
|
|
||||||
Bd2/LVWH97lNLy5Fsx8DmnjhPO8AIxwisxS0FxTTy89WQCjItPqWHH1+2yiMHcTR
|
|
||||||
fq6SqU1tw8GiBRBQtCeVNxVAxzA3tXM83FxhFhI+WmHaNi4QB6IXdgLaKQ1IhZ4G
|
|
||||||
g5gI0erPUSJ2k7nqGaynnCVwtHQA32s/XsHrflyO34X18+oC3DOFMKw31qnBLa+G
|
|
||||||
ljbJ69NUcIRhPQ8pYqT68heOP06VysiR9ndQ9CW/VaF+LEN+oIbE7p3RbpY3RWLY
|
|
||||||
IYwSbiaF0sGiwjtLh3m2Ji0w9K2AZpTIcLNq43tQ6VcJsvKCa1xpomj0yJI02iSr
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 4.4 KiB |
@ -1,21 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
REM set SIGNNAME=Winamp %WINAMP_VERSION_MAJOR%.%WINAMP_VERSION_MINOR%%WINAMP_VERSION_MINOR_SECOND% %%~j
|
|
||||||
|
|
||||||
signtool.exe sign /f Winamp_SA.pfx /p WaWa!_59_!WaWa /t http://timestamp.digicert.com /du "http://www.winamp.com" /d "Winamp 5.9" /v Winamp59_9999_final_full_en-us.exe
|
|
||||||
|
|
||||||
REM ___________________________________________________________________
|
|
||||||
|
|
||||||
REM if not defined WAPROJECTS set WAPROJECTS=c:\projects
|
|
||||||
REM if not defined CURSANDBOX set CURSANDBOX=%WAPROJECTS%
|
|
||||||
|
|
||||||
REM set KEYFILE=%CURSANDBOX%\codesign\WinampSA.pfx
|
|
||||||
REM %CURSANDBOX%\codesign\signtool.exe sign /f %KEYFILE% /p !Wa!Wa!5_6_7_8!Wa!Wa! /d %1 /du "http://www.winamp.com" /t http://timestamp.comodoca.com/authenticode /v %2
|
|
||||||
|
|
||||||
SET errCode=%ERRORLEVEL%
|
|
||||||
|
|
||||||
IF %errCode% NEQ 0 @echo SimpleSign Failed
|
|
||||||
|
|
||||||
pause /B %errCode%
|
|
||||||
|
|
||||||
exit
|
|
@ -1,11 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQEzBAEBCAAdFiEE6VpbjcQyp+t7ByJYRGjUQigxlBsFAmKjGNYACgkQRGjUQigx
|
|
||||||
lBsmaggAvwHvdssyFg8Ro9UI06qtsDJvwAmsjQJdH+++OayA3a1XSa6vyGibrbA4
|
|
||||||
tRfFPn8RYmfmbd0jlKwjFWCdjTTP+b11DjDrkIv3RVz0nQmLX0AaQHzZdoWGodpZ
|
|
||||||
JgTEhSxTsY17ss6CzYPhP+F6LQ7S96GbA6fWRx0E/t6v8Kqnl6L1rSfoV6U9/873
|
|
||||||
5LaOvHsk2BPoL9w+mp6BdITyVoK2jaRPbE+2eDTn1VW4w4C6Qi4mV3VRYN5dZVjj
|
|
||||||
sGmRSsIz2MW8KsHDA9odBjOfdHlRbrSl9cjPo4fmEpxVI8yGtfCOKsRjnKCMcWpG
|
|
||||||
NZ5RaNE3FfD5En0FMvd/owkBqp6d+w==
|
|
||||||
=9kUo
|
|
||||||
-----END PGP SIGNATURE-----
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,108 +0,0 @@
|
|||||||
-----BEGIN PKCS7-----
|
|
||||||
MIITuwYJKoZIhvcNAQcCoIITrDCCE6gCAQExADALBgkqhkiG9w0BBwGgghOQMIIH
|
|
||||||
RDCCBSygAwIBAgIQCNS/WlKcclmX4PbFJkldLzANBgkqhkiG9w0BAQsFADBpMQsw
|
|
||||||
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERp
|
|
||||||
Z2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIw
|
|
||||||
MjEgQ0ExMB4XDTIyMDYxNTAwMDAwMFoXDTI0MDYxMjIzNTk1OVowSTELMAkGA1UE
|
|
||||||
BhMCQkUxEjAQBgNVBAcTCUJydXhlbGxlczESMBAGA1UEChMJV2luYW1wIFNBMRIw
|
|
||||||
EAYDVQQDEwlXaW5hbXAgU0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
|
||||||
AQDX5OYi3zspRs2tAMPBeTW2jabo4ttN0/3a7VFxYDrZq3c6i6LhEhWZhDpdsiAl
|
|
||||||
cM/uM+YepdVOzRcm14IiL6GwagA1fZdgJoiNETSj4KDuxzZowUqDN0L13Nv2xI2k
|
|
||||||
ZJpZ/el6aItpdC4ulidR6cRz9E83IEqruDCQyh8/6bO4WYboWhXltm8GE9zkw6dk
|
|
||||||
q5UbnQKZdEMttiP+U5J5Ue+erwqaMn0T8U9HShA4zRDE5eKcwig3oIo7mRLG5W5o
|
|
||||||
YlzRSdPnhdpN7cw+ahoHsZzwyWVCsi7sZrkNc0vd4wwCBDWsgU3TG5+EQAZJc5zi
|
|
||||||
cLOSl/qiTcAuYEVmIHD7yerGLV8YY6usMLMXhwhT7CJ1DMCE7vp7mLNyOhxG5wsN
|
|
||||||
cysankU4ylYXdZrIKTIQkMd0hbjlAkMKodVt0/lODuxrfY9eHaue72Pz8LMlJHN3
|
|
||||||
5C+KTxVeoL0+8b1OGqhDxcWsleqSIXREz+NEfN6EGwwUt+3txXiumeVX2YMWDeQd
|
|
||||||
khazi2s5TkCExYRaKVJAkBAm/VqBu6bHyo0L1LNfHfdnZPre6wrhzEcChOcgs4Ni
|
|
||||||
D6gT9Shm9MyOMJ1yJuZcvgnPBC9FnPVcgeByTQI/2u0MPYVDclcQkei9FwW4sz16
|
|
||||||
vCnEqtysYOX64fpvBvB7IVWz8cWbVX0Lalk5m7MIinF+6QIDAQABo4ICBjCCAgIw
|
|
||||||
HwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFHRlJwsS
|
|
||||||
WBHjeyAXymfNFGh6R2rmMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEF
|
|
||||||
BQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5kaWdpY2VydC5j
|
|
||||||
b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx
|
|
||||||
Q0ExLmNybDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
|
|
||||||
VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5jcmwwPgYD
|
|
||||||
VR0gBDcwNTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdp
|
|
||||||
Y2VydC5jb20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYYaHR0
|
|
||||||
cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0
|
|
||||||
cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQw
|
|
||||||
OTZTSEEzODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUA
|
|
||||||
A4ICAQDSxJbkRf9a9TldRN7TD7PEupDeVN1OEKjRCdA+lH9eSgaeJ/Kol8KJ6nnJ
|
|
||||||
jMAQjnNmysyGyt7FXWGWA3DpLP4dfg46LNVhHVlInWTfqs2ospy2UOAbQnA8Dyw1
|
|
||||||
1shSVesOCGURTkaDe41VMClg9yS02rPivnNggPmj6v8TNW3hizjVyqP7MNTl4EeC
|
|
||||||
f7hvfZx/zpGEDKAiSeil74NJJms/ITLeH4Z5bQCz/b5nMtIMOWX+nOsbVwieWrgr
|
|
||||||
tG/S4CM/YHBq1c4PLcPk4/CA+9MF+PBwjOu4d9nHowKUeR+sEl6TyYMZ27c8AP9w
|
|
||||||
OIlJslj2553w7sAkxZ1fvKPlk4StDxdpd3YxnWVRQX5OcDuBi40WHaqPEDm055YH
|
|
||||||
RQh1casTukLsIXaQhrC/S5ov01uMimenVIXn9A/M4WzZ5ICl3JXNM7HldJ172AjW
|
|
||||||
83PlCiyjxEZtNRO4icZznWfpFbEFy2kwdE3JQlcPLTDxlIeft/p6NqnISwIgbIVz
|
|
||||||
9SCeABFQQQJDwb1yURw7Cifl4f88yNVfyS88OIvXB6E10JsERHe0Z4mMR7tm8tvk
|
|
||||||
7nEzITigyWVoSmntIn/PhphNS5LihnIyNlqHtx8RKBpMHoofEoli5nZF4vy8Vd4L
|
|
||||||
qI8K+bBEuk/KM2FVFawRs0xywxd8P5xQwx4XLQpAhUXnPlDbgzCCBrAwggSYoAMC
|
|
||||||
AQICEAitQLJg0pxMn17Nqb2TrtkwDQYJKoZIhvcNAQEMBQAwYjELMAkGA1UEBhMC
|
|
||||||
VVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0
|
|
||||||
LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTIxMDQy
|
|
||||||
OTAwMDAwMFoXDTM2MDQyODIzNTk1OVowaTELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
|
|
||||||
DkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENv
|
|
||||||
ZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMTCCAiIwDQYJKoZIhvcN
|
|
||||||
AQEBBQADggIPADCCAgoCggIBANW0L0LQKK14t13VOVkbsYhC9TOM6z2Bl3DFu8SF
|
|
||||||
JjCfpI5o2Fz16zQkB+FLT9N4Q/QX1x7a+dLVZxpSTw6hV/yImcGRzIEDPk1wJGSz
|
|
||||||
jeIIfTR9TIBXEmtDmpnyxTsf8u/LR1oTpkyzASAl8xDTi7L7CPCK4J0JwGWn+piA
|
|
||||||
STWHPVEZ6JAheEUuoZ8s4RjCGszF7pNJcEIyj/vG6hzzZWiRok1MghFIUmjeEL0U
|
|
||||||
V13oGBNlxX+yT4UsSKRWhDXW+S6cqgAV0Tf+GgaUwnzI6hsy5srC9KejAw50pa85
|
|
||||||
tqtgEuPo1rn3MeHcreQYoNjBI0dHs6EPbqOrbZgGgxu3amct0r1EGpIQgY+wOwnX
|
|
||||||
x5syWsL/amBUi0nBk+3htFzgb+sm+YzVsvk4EObqzpH1vtP7b5NhNFy8k0UogzYq
|
|
||||||
ZihfsHPOiyYlBrKD1Fz2FRlM7WLgXjPy6OjsCqewAyuRsjZ5vvetCB51pmXMu+NI
|
|
||||||
UPN3kRr+21CiRshhWJj1fAIWPIMorTmG7NS3DVPQ+EfmdTCN7DCTdhSmW0tddGFN
|
|
||||||
PxKRdt6/WMtyEClB8NXFbSZ2aBFBE1ia3CYrAfSJTVnbeM+BSj5AR1/JgVBzhRAj
|
|
||||||
IVlgimRUwcwhGug4GXxmHM14OEUwmU//Y09Mu6oNCFNBfFg9R7P6tuyMMgkCzGw8
|
|
||||||
DFYRAgMBAAGjggFZMIIBVTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRo
|
|
||||||
N+Drtjv4XxGG+/5hewiIZfROQjAfBgNVHSMEGDAWgBTs1+OC0nFdZEzfLmc/57qY
|
|
||||||
rhwPTzAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYIKwYB
|
|
||||||
BQUHAQEEazBpMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20w
|
|
||||||
QQYIKwYBBQUHMAKGNWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy
|
|
||||||
dFRydXN0ZWRSb290RzQuY3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwz
|
|
||||||
LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMBwGA1UdIAQV
|
|
||||||
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
|
|
||||||
RxGthz0H0XW8z/NmfjEA
|
|
||||||
-----END PKCS7-----
|
|
@ -1,6 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
echo "Cleanup the environment....."
|
echo "Cleanup the environment..."
|
||||||
IF EXIST "Src\external_dependencies\vcpkg" (
|
IF EXIST "Src\external_dependencies\vcpkg" (
|
||||||
echo Deleting "Src\external_dependencies\vcpkg" ...
|
echo Deleting "Src\external_dependencies\vcpkg" ...
|
||||||
rmdir /S /Q "Src\external_dependencies\vcpkg"
|
rmdir /S /Q "Src\external_dependencies\vcpkg"
|
||||||
@ -49,7 +49,7 @@ IF NOT EXIST .\vcpkg (
|
|||||||
echo Patching ports...
|
echo Patching ports...
|
||||||
xcopy /K /Y /H /C /I /E .\vcpkg-ports\* .\vcpkg\ports\*
|
xcopy /K /Y /H /C /I /E .\vcpkg-ports\* .\vcpkg\ports\*
|
||||||
|
|
||||||
echo Installing packages....
|
echo Installing packages...
|
||||||
cd .\vcpkg
|
cd .\vcpkg
|
||||||
.\vcpkg install alac:x86-windows-static-md
|
.\vcpkg install alac:x86-windows-static-md
|
||||||
.\vcpkg install expat:x86-windows-static-md expat:x86-windows-static
|
.\vcpkg install expat:x86-windows-static-md expat:x86-windows-static
|
||||||
|
@ -17,7 +17,7 @@ else:
|
|||||||
VCPKG_PATH = Path(__file__).parent / 'vcpkg'
|
VCPKG_PATH = Path(__file__).parent / 'vcpkg'
|
||||||
|
|
||||||
if len(sys.argv) > 3:
|
if len(sys.argv) > 3:
|
||||||
print("the argumnets after the second one are ignored")
|
print("the arguments after the second one are ignored")
|
||||||
|
|
||||||
|
|
||||||
if not VCPKG_PATH.exists():
|
if not VCPKG_PATH.exists():
|
||||||
@ -57,4 +57,4 @@ with open(PKG_VERSION_JSON_PATHNAME) as f:
|
|||||||
versions_set = sorted(set(versions_list), reverse=True)
|
versions_set = sorted(set(versions_list), reverse=True)
|
||||||
|
|
||||||
for version in versions_set:
|
for version in versions_set:
|
||||||
print(version)
|
print(version)
|
||||||
|
Reference in New Issue
Block a user