aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_devices/wasabi.h
blob: 071dc8fdb05f414bbda1d754c74cbb0aca332436 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef _NULLSOFT_WINAMP_ML_DEVICES_WASABI_HEADER
#define _NULLSOFT_WINAMP_ML_DEVICES_WASABI_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <api/application/api_application.h>
#define WASABI_API_APP applicationApi

#include "../Agave/Language/api_language.h"

#include "../devices/api_devicemanager.h"
extern api_devicemanager *deviceManagerApi;
#define WASABI_API_DEVICES deviceManagerApi

#include "../winamp/api_winamp.h"
extern api_winamp *winampApi;
#define WASABI_API_WINAMP winampApi

BOOL Wasabi_Initialize(HINSTANCE instance);
BOOL Wasabi_InitializeFromWinamp(HINSTANCE instance, HWND winampWindow);
BOOL Wasabi_LoadDefaultServices(void);

unsigned long Wasabi_AddRef(void);
unsigned long Wasabi_Release(void);

void * Wasabi_QueryInterface0(const GUID &interfaceGuid);

#define Wasabi_QueryInterface(_interfaceType, _interfaceGuid)\
		((##_interfaceType*)Wasabi_QueryInterface0(_interfaceGuid))


void Wasabi_ReleaseInterface0(const GUID &interfaceGuid, void *interfaceInstance);

#define Wasabi_ReleaseInterface(_interfaceGuid, _interfaceInstance)\
		(Wasabi_ReleaseInterface0((_interfaceGuid), (_interfaceInstance)))


#define Wasabi_ReleaseObject(_object)\
		{if (NULL != (_object)) {((Dispatchable*)(_object))->Release();}} 

#endif // _NULLSOFT_WINAMP_ML_DEVICES_WASABI_HEADER