wasabi.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef _NULLSOFT_WINAMP_GEN_DEVICE_PROVIDER_WASABI_HEADER
  2. #define _NULLSOFT_WINAMP_GEN_DEVICE_PROVIDER_WASABI_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include <api/service/api_service.h>
  7. extern api_service *wasabiManager;
  8. #define WASABI_API_SVC wasabiManager
  9. #include <api/application/api_application.h>
  10. #define WASABI_API_APP applicationApi
  11. #include "../Agave/Language/api_language.h"
  12. #include "../../devices/api_devicemanager.h"
  13. extern api_devicemanager *deviceManagerApi;
  14. #define WASABI_API_DEVICES deviceManagerApi
  15. BOOL
  16. Wasabi_Initialize(HINSTANCE instance,
  17. api_service *serviceMngr);
  18. BOOL
  19. Wasabi_InitializeFromWinamp(HINSTANCE instance,
  20. HWND winampWindow);
  21. BOOL
  22. Wasabi_LoadDefaultServices(void);
  23. unsigned long
  24. Wasabi_AddRef(void);
  25. unsigned long
  26. Wasabi_Release(void);
  27. void *
  28. Wasabi_QueryInterface0(const GUID &interfaceGuid);
  29. #define Wasabi_QueryInterface(_interfaceType, _interfaceGuid)\
  30. ((##_interfaceType*)Wasabi_QueryInterface0(_interfaceGuid))
  31. void
  32. Wasabi_ReleaseInterface0(const GUID &interfaceGuid,
  33. void *interfaceInstance);
  34. #define Wasabi_ReleaseInterface(_interfaceGuid, _interfaceInstance)\
  35. (Wasabi_ReleaseInterface0((_interfaceGuid), (_interfaceInstance)))
  36. #define Wasabi_ReleaseObject(_object)\
  37. {if (NULL != (_object)) {((Dispatchable*)(_object))->Release();}}
  38. #endif // _NULLSOFT_WINAMP_GEN_DEVICE_PROVIDER_WASABI_HEADER