mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 09:35:45 -04:00
Initial community commit
This commit is contained in:
37
Src/Wasabi/api/service/svcenumbyguid.h
Normal file
37
Src/Wasabi/api/service/svcenumbyguid.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef _SVCENUMBYGUID_H
|
||||
#define _SVCENUMBYGUID_H
|
||||
|
||||
/*<?<autoheader/>*/
|
||||
/*?>*/
|
||||
|
||||
#include "svc_enum.h"
|
||||
|
||||
/*
|
||||
* this is a helper class to fetch a service * by GUID
|
||||
* usage: svc_something *svc = SvcEnumByGuid<svc_something>(svcguid);
|
||||
* @short: Helper class to fetch unique service by GUID
|
||||
*/
|
||||
template <class SERVICETYPE>
|
||||
class SvcEnumByGuid {
|
||||
public:
|
||||
/**
|
||||
@param _guid The GUID of the service factory to fetch the service from.
|
||||
*/
|
||||
SvcEnumByGuid() : guid(SERVICETYPE::getServiceGuid()) {}
|
||||
SvcEnumByGuid(GUID _guid) : guid(_guid) {}
|
||||
|
||||
/**
|
||||
@return The pointer to the service.
|
||||
*/
|
||||
SERVICETYPE *getInterface() {
|
||||
waServiceFactory *svc = WASABI_API_SVC->service_getServiceByGuid(guid);
|
||||
return castService<SERVICETYPE>(svc);
|
||||
}
|
||||
|
||||
operator SERVICETYPE *() { return getInterface(); }
|
||||
|
||||
private:
|
||||
GUID guid;
|
||||
};
|
||||
|
||||
#endif // _SVCENUMBYGUID_H
|
Reference in New Issue
Block a user