wasabi.h 1.3 KB

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