aboutsummaryrefslogtreecommitdiff
path: root/Src/omBrowser/browserFactory.cpp
diff options
context:
space:
mode:
authorJean-Francois Mauguit <jfmauguit@mac.com>2024-09-24 09:03:25 -0400
committerGitHub <noreply@github.com>2024-09-24 09:03:25 -0400
commitbab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/omBrowser/browserFactory.cpp
parent4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff)
parent20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff)
downloadwinamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/omBrowser/browserFactory.cpp')
-rw-r--r--Src/omBrowser/browserFactory.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/Src/omBrowser/browserFactory.cpp b/Src/omBrowser/browserFactory.cpp
new file mode 100644
index 00000000..90ec7c9f
--- /dev/null
+++ b/Src/omBrowser/browserFactory.cpp
@@ -0,0 +1,90 @@
+#include "./browserFactory.h"
+#include "./browserObject.h"
+
+
+FOURCC OmBrowserFactory::GetServiceType()
+{
+ return WaSvc::UNIQUE;
+}
+
+const char *OmBrowserFactory::GetServiceName()
+{
+ return "OmBrowser Object";
+}
+
+const char *OmBrowserFactory::GetTestString()
+{
+ return NULL;
+}
+
+GUID OmBrowserFactory::GetGUID()
+{
+ return OBJ_OmBrowser;
+}
+
+
+void *OmBrowserFactory::GetInterface( int global_lock )
+{
+ OmBrowserObject *browserObject = NULL;
+
+ HRESULT hr = OmBrowserObject::CreateInstance( &browserObject );
+ if ( FAILED( hr ) )
+ browserObject = NULL;
+
+ return browserObject;
+}
+
+int OmBrowserFactory::ReleaseInterface( void *ifc )
+{
+ obj_ombrowser *object = (obj_ombrowser *)ifc;
+ if ( object != NULL )
+ object->Release();
+
+ return 1;
+}
+
+
+int OmBrowserFactory::SupportNonLockingInterface()
+{
+ return 1;
+}
+
+int OmBrowserFactory::ServiceNotify(int msg, int param1, int param2)
+{
+ return 1;
+}
+
+
+HRESULT OmBrowserFactory::Register( api_service *service )
+{
+ if ( service == NULL )
+ return E_INVALIDARG;
+
+ service->service_register( this );
+
+ return S_OK;
+}
+
+HRESULT OmBrowserFactory::Unregister( api_service *service )
+{
+ if ( service == NULL )
+ return E_INVALIDARG;
+
+ service->service_deregister( this );
+
+ return S_OK;
+}
+
+
+#define CBCLASS OmBrowserFactory
+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