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/filereader/main.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/filereader/main.cpp')
-rw-r--r-- | Src/filereader/main.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Src/filereader/main.cpp b/Src/filereader/main.cpp new file mode 100644 index 00000000..749e510a --- /dev/null +++ b/Src/filereader/main.cpp @@ -0,0 +1,77 @@ +#include "api__filereader.h" +#include "WA5_FileReader.h" +#ifdef _WIN32 +#include "ResourceReaderFactory.h" +#endif +#include "HTTPReaderFactory.h" +#include <bfc/platform/export.h> + +#ifdef _WIN32 +ResourceReaderFactory resourceReaderFactory; +#endif + +HTTPReaderFactory httpReaderFactory; +WA5_FileReader wa5_FileReader; +api_service *WASABI_API_SVC=0; +api_application *WASABI_API_APP=0; +api_config *AGAVE_API_CONFIG=0; + +void WA5_FileReader::RegisterServices(api_service *service) +{ + WASABI_API_SVC = service; + waServiceFactory *sf = WASABI_API_SVC->service_getServiceByGuid(applicationApiServiceGuid); + if (sf) + WASABI_API_APP = (api_application *)sf->getInterface(); + sf = WASABI_API_SVC->service_getServiceByGuid(AgaveConfigGUID); + if (sf) + AGAVE_API_CONFIG = (api_config *)sf->getInterface(); + + if (WASABI_API_APP && AGAVE_API_CONFIG) + WASABI_API_SVC->service_register(&httpReaderFactory); + +#ifdef _WIN32 + WASABI_API_SVC->service_register(&resourceReaderFactory); +#endif +} + +int WA5_FileReader::RegisterServicesSafeModeOk() +{ + return 1; +} + +void WA5_FileReader::DeregisterServices(api_service *service) +{ + + if (WASABI_API_APP && AGAVE_API_CONFIG) + service->service_deregister(&httpReaderFactory); +#ifdef _WIN32 + service->service_deregister(&resourceReaderFactory); +#endif + waServiceFactory *sf=0; + if (WASABI_API_APP) + { + sf = WASABI_API_SVC->service_getServiceByGuid(applicationApiServiceGuid); + if (sf) + sf->releaseInterface(WASABI_API_APP); + } + + if (AGAVE_API_CONFIG) + { + sf = WASABI_API_SVC->service_getServiceByGuid(AgaveConfigGUID); + if (sf) + sf->releaseInterface(AGAVE_API_CONFIG); + } +} + +extern "C" DLLEXPORT ifc_wa5component *GetWinamp5SystemComponent() +{ + return &wa5_FileReader; +} + +#define CBCLASS WA5_FileReader +START_DISPATCH; +VCB(API_WA5COMPONENT_REGISTERSERVICES, RegisterServices) +CB(15, RegisterServicesSafeModeOk) +VCB(API_WA5COMPONENT_DEREEGISTERSERVICES, DeregisterServices) +END_DISPATCH; +#undef CBCLASS |