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/omBrowser/utilityFactory.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/omBrowser/utilityFactory.cpp')
-rw-r--r-- | Src/omBrowser/utilityFactory.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/Src/omBrowser/utilityFactory.cpp b/Src/omBrowser/utilityFactory.cpp new file mode 100644 index 00000000..2fa5b33e --- /dev/null +++ b/Src/omBrowser/utilityFactory.cpp @@ -0,0 +1,91 @@ +#include "main.h" +#include "./utilityFactory.h" +#include "./utility.h" + +OmUtilityFactory::OmUtilityFactory() + : object(NULL) +{ +} + +OmUtilityFactory::~OmUtilityFactory() +{ + if (NULL != object) + object->Release(); +} + +FOURCC OmUtilityFactory::GetServiceType() +{ + return WaSvc::UNIQUE; +} + +const char *OmUtilityFactory::GetServiceName() +{ + return "OmUtility Interface"; +} + +GUID OmUtilityFactory::GetGUID() +{ + return IFC_OmUtility; +} + +void *OmUtilityFactory::GetInterface(int global_lock) +{ + if (NULL == object) + { + object = OmUtility::CreateInstance(); + if (NULL == object) return NULL; + } + + object->AddRef(); + return object; +} + +int OmUtilityFactory::SupportNonLockingInterface() +{ + return 1; +} + +int OmUtilityFactory::ReleaseInterface(void *ifc) +{ + OmUtility *object = (OmUtility*)ifc; + if (NULL != object) object->Release(); + + return 1; +} + +const char *OmUtilityFactory::GetTestString() +{ + return NULL; +} + +int OmUtilityFactory::ServiceNotify(int msg, int param1, int param2) +{ + return 1; +} + +HRESULT OmUtilityFactory::Register(api_service *service) +{ + if (NULL == service) return E_INVALIDARG; + service->service_register(this); + return S_OK; +} + +HRESULT OmUtilityFactory::Unregister(api_service *service) +{ + if (NULL == service) return E_INVALIDARG; + service->service_deregister(this); + return S_OK; +} + +#define CBCLASS OmUtilityFactory +START_DISPATCH; +CB(WASERVICEFACTORY_GETSERVICETYPE, GetServiceType) +CB(WASERVICEFACTORY_GETSERVICENAME, GetServiceName) +CB(WASERVICEFACTORY_GETGUID, GetGUID) +CB(WASERVICEFACTORY_GETINTERFACE, GetInterface) +CB(WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE, SupportNonLockingInterface) +CB(WASERVICEFACTORY_RELEASEINTERFACE, ReleaseInterface) +CB(WASERVICEFACTORY_GETTESTSTRING, GetTestString) +CB(WASERVICEFACTORY_SERVICENOTIFY, ServiceNotify) +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file |