iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
IPlugPlatform.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the iPlug 2 library. Copyright (C) the iPlug 2 developers.
5
6 See LICENSE.txt for more info.
7
8 ==============================================================================
9*/
10
11#pragma once
12
18#ifdef _WIN32
19 #define OS_WIN
20#elif defined __APPLE__
21 #include <TargetConditionals.h>
22 #if TARGET_OS_IPHONE
23 #define OS_IOS
24 #elif TARGET_OS_MAC
25 #define OS_MAC
26 #elif TARGET_OS_VISION
27 #define OS_VISION
28 #endif
29#elif defined __linux || defined __linux__ || defined linux
30 #define OS_LINUX
31#elif defined EMSCRIPTEN
32 #define OS_WEB
33#else
34 #error "No OS defined!"
35#endif
36
37#if defined(_WIN64) || defined(__LP64__)
38 #define ARCH_64BIT
39#endif
40
41#if __cplusplus == 201402L
42#define IPLUG_CPP14
43#endif
44
45//these two components of the c standard library are used thoughtout IPlug/WDL
46#include <cstring>
47#include <cstdlib>
48
49#ifdef PARAMS_MUTEX
50 #define ENTER_PARAMS_MUTEX mParams_mutex.Enter(); Trace(TRACELOC, "%s", "ENTER_PARAMS_MUTEX");
51 #define LEAVE_PARAMS_MUTEX mParams_mutex.Leave(); Trace(TRACELOC, "%s", "LEAVE_PARAMS_MUTEX");
52 #define ENTER_PARAMS_MUTEX_STATIC _this->mParams_mutex.Enter(); Trace(TRACELOC, "%s", "ENTER_PARAMS_MUTEX");
53 #define LEAVE_PARAMS_MUTEX_STATIC _this->mParams_mutex.Leave(); Trace(TRACELOC, "%s", "LEAVE_PARAMS_MUTEX");
54#else
55 #define ENTER_PARAMS_MUTEX
56 #define LEAVE_PARAMS_MUTEX
57 #define ENTER_PARAMS_MUTEX_STATIC
58 #define LEAVE_PARAMS_MUTEX_STATIC
59#endif
60
61#define BEGIN_IPLUG_NAMESPACE namespace iplug {
62#define END_IPLUG_NAMESPACE }
63
64#define BEGIN_IGRAPHICS_NAMESPACE namespace igraphics {
65#define END_IGRAPHICS_NAMESPACE }
66
67namespace iplug {namespace igraphics {}};
68
69#if defined IGRAPHICS_GLES2 || IGRAPHICS_GLES3 || IGRAPHICS_GL2 || defined IGRAPHICS_GL3
70 #define IGRAPHICS_GL
71#endif