include/SDL_platform.h
author Steven M. Vascellaro <svascellaro@gmail.com>
Mon, 22 Oct 2018 10:55:18 -0400
changeset 12379 5dc13016cf34
parent 11811 5d94cb6b24d3
child 12503 806492103856
permissions -rw-r--r--
joystick: Add Linux mappings for "Xbox One Wireless Controller (Model 1708)"

Adds controller bindings to support the "Xbox One Wireless Controller
(Model 1708)" on Linux. The Model 1708 was released in 2016 alongside the
Xbox One S. It is the current model being sold by Microsoft as of writing.
(October 22, 2018)
slouken@8582
     1
/*
slouken@8582
     2
  Simple DirectMedia Layer
slouken@11811
     3
  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
slouken@8582
     4
slouken@8582
     5
  This software is provided 'as-is', without any express or implied
slouken@8582
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@8582
     7
  arising from the use of this software.
slouken@8582
     8
slouken@8582
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@8582
    10
  including commercial applications, and to alter it and redistribute it
slouken@8582
    11
  freely, subject to the following restrictions:
slouken@8582
    12
slouken@8582
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@8582
    14
     claim that you wrote the original software. If you use this software
slouken@8582
    15
     in a product, an acknowledgment in the product documentation would be
slouken@8582
    16
     appreciated but is not required.
slouken@8582
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@8582
    18
     misrepresented as being the original software.
slouken@8582
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@8582
    20
*/
slouken@8582
    21
slouken@8582
    22
/**
slouken@8582
    23
 *  \file SDL_platform.h
slouken@8582
    24
 *
slouken@8582
    25
 *  Try to get a standard set of platform defines.
slouken@8582
    26
 */
slouken@8582
    27
slouken@10638
    28
#ifndef SDL_platform_h_
slouken@10638
    29
#define SDL_platform_h_
slouken@8582
    30
slouken@8582
    31
#if defined(_AIX)
slouken@8582
    32
#undef __AIX__
slouken@8582
    33
#define __AIX__     1
slouken@8582
    34
#endif
slouken@8582
    35
#if defined(__HAIKU__)
slouken@8582
    36
#undef __HAIKU__
slouken@8582
    37
#define __HAIKU__   1
slouken@8582
    38
#endif
slouken@8582
    39
#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__)
slouken@8582
    40
#undef __BSDI__
slouken@8582
    41
#define __BSDI__    1
slouken@8582
    42
#endif
slouken@8582
    43
#if defined(_arch_dreamcast)
slouken@8582
    44
#undef __DREAMCAST__
slouken@8582
    45
#define __DREAMCAST__   1
slouken@8582
    46
#endif
slouken@8582
    47
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
slouken@8582
    48
#undef __FREEBSD__
slouken@8582
    49
#define __FREEBSD__ 1
slouken@8582
    50
#endif
slouken@8582
    51
#if defined(hpux) || defined(__hpux) || defined(__hpux__)
slouken@8582
    52
#undef __HPUX__
slouken@8582
    53
#define __HPUX__    1
slouken@8582
    54
#endif
slouken@8582
    55
#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE)
slouken@8582
    56
#undef __IRIX__
slouken@8582
    57
#define __IRIX__    1
slouken@8582
    58
#endif
gabomdq@8833
    59
#if (defined(linux) || defined(__linux) || defined(__linux__))
slouken@8582
    60
#undef __LINUX__
slouken@8582
    61
#define __LINUX__   1
slouken@8582
    62
#endif
philipp@8150
    63
#if defined(ANDROID) || defined(__ANDROID__)
slouken@8582
    64
#undef __ANDROID__
slouken@8582
    65
#undef __LINUX__ /* do we need to do this? */
slouken@8582
    66
#define __ANDROID__ 1
slouken@8582
    67
#endif
slouken@8582
    68
slouken@8582
    69
#if defined(__APPLE__)
slouken@8582
    70
/* lets us know what version of Mac OS X we're compiling on */
slouken@8582
    71
#include "AvailabilityMacros.h"
slouken@8582
    72
#include "TargetConditionals.h"
slime73@10340
    73
#if TARGET_OS_TV
slime73@10340
    74
#undef __TVOS__
slime73@10340
    75
#define __TVOS__ 1
slime73@10340
    76
#endif
slouken@8582
    77
#if TARGET_OS_IPHONE
slime73@10340
    78
/* if compiling for iOS */
slouken@8582
    79
#undef __IPHONEOS__
slouken@8582
    80
#define __IPHONEOS__ 1
slouken@8582
    81
#undef __MACOSX__
slouken@8582
    82
#else
slime73@10340
    83
/* if not compiling for iOS */
slouken@8582
    84
#undef __MACOSX__
slouken@8582
    85
#define __MACOSX__  1
slime73@10176
    86
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
slime73@10176
    87
# error SDL for Mac OS X only supports deploying on 10.6 and above.
slime73@10176
    88
#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
slouken@8582
    89
#endif /* TARGET_OS_IPHONE */
slouken@8582
    90
#endif /* defined(__APPLE__) */
slouken@8582
    91
slouken@8582
    92
#if defined(__NetBSD__)
slouken@8582
    93
#undef __NETBSD__
slouken@8582
    94
#define __NETBSD__  1
slouken@8582
    95
#endif
slouken@8582
    96
#if defined(__OpenBSD__)
slouken@8582
    97
#undef __OPENBSD__
slouken@8582
    98
#define __OPENBSD__ 1
slouken@8582
    99
#endif
slouken@11287
   100
#if defined(__OS2__) || defined(__EMX__)
slouken@8582
   101
#undef __OS2__
slouken@8582
   102
#define __OS2__     1
slouken@8582
   103
#endif
slouken@8582
   104
#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE)
slouken@8582
   105
#undef __OSF__
slouken@8582
   106
#define __OSF__     1
slouken@8582
   107
#endif
slouken@8582
   108
#if defined(__QNXNTO__)
slouken@8582
   109
#undef __QNXNTO__
slouken@8582
   110
#define __QNXNTO__  1
slouken@8582
   111
#endif
slouken@8582
   112
#if defined(riscos) || defined(__riscos) || defined(__riscos__)
slouken@8582
   113
#undef __RISCOS__
slouken@8582
   114
#define __RISCOS__  1
slouken@8582
   115
#endif
binarycrusader@8979
   116
#if defined(__sun) && defined(__SVR4)
slouken@8582
   117
#undef __SOLARIS__
slouken@8582
   118
#define __SOLARIS__ 1
slouken@8582
   119
#endif
slouken@8582
   120
dludwig@8630
   121
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
slouken@8582
   122
/* Try to find out if we're compiling for WinRT or non-WinRT */
slouken@11469
   123
#if defined(_MSC_VER) && defined(__has_include)
icculus@11725
   124
#if __has_include(<winapifamily.h>)
icculus@11725
   125
#define HAVE_WINAPIFAMILY_H 1
icculus@11725
   126
#else
icculus@11725
   127
#define HAVE_WINAPIFAMILY_H 0
icculus@11725
   128
#endif
icculus@11725
   129
slouken@11329
   130
/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */
slouken@11329
   131
#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_)    /* _MSC_VER == 1700 for Visual Studio 2012 */
slouken@11329
   132
#define HAVE_WINAPIFAMILY_H 1
slouken@11329
   133
#else
slouken@11329
   134
#define HAVE_WINAPIFAMILY_H 0
slouken@11329
   135
#endif
slouken@11329
   136
slouken@11329
   137
#if HAVE_WINAPIFAMILY_H
slouken@8582
   138
#include <winapifamily.h>
slouken@11329
   139
#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP))
slouken@11329
   140
#else
slouken@11329
   141
#define WINAPI_FAMILY_WINRT 0
slouken@11329
   142
#endif /* HAVE_WINAPIFAMILY_H */
slouken@11329
   143
slouken@11329
   144
#if WINAPI_FAMILY_WINRT
slouken@8582
   145
#undef __WINRT__
slouken@8582
   146
#define __WINRT__ 1
slouken@8584
   147
#else
slouken@8584
   148
#undef __WINDOWS__
slouken@11329
   149
#define __WINDOWS__ 1
slouken@11329
   150
#endif
slouken@8582
   151
#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */
slouken@8582
   152
slouken@8582
   153
#if defined(__WINDOWS__)
slouken@8582
   154
#undef __WIN32__
slouken@8582
   155
#define __WIN32__ 1
slouken@8582
   156
#endif
slouken@8582
   157
#if defined(__PSP__)
slouken@8582
   158
#undef __PSP__
slouken@8582
   159
#define __PSP__ 1
slouken@8582
   160
#endif
slouken@8582
   161
gabomdq@8833
   162
/* The NACL compiler defines __native_client__ and __pnacl__
gabomdq@8833
   163
 * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi
gabomdq@8833
   164
 */
gabomdq@8833
   165
#if defined(__native_client__)
gabomdq@8833
   166
#undef __LINUX__
gabomdq@8833
   167
#undef __NACL__
gabomdq@8833
   168
#define __NACL__ 1
gabomdq@8833
   169
#endif
gabomdq@8833
   170
#if defined(__pnacl__)
gabomdq@8833
   171
#undef __LINUX__
gabomdq@8833
   172
#undef __PNACL__
gabomdq@8833
   173
#define __PNACL__ 1
gabomdq@8833
   174
/* PNACL with newlib supports static linking only */
gabomdq@8833
   175
#define __SDL_NOGETPROCADDR__
gabomdq@8833
   176
#endif
gabomdq@8833
   177
gabomdq@8833
   178
slouken@8582
   179
#include "begin_code.h"
slouken@8582
   180
/* Set up for C function definitions, even when using C++ */
slouken@8582
   181
#ifdef __cplusplus
slouken@8582
   182
extern "C" {
slouken@8582
   183
#endif
slouken@8582
   184
slouken@8582
   185
/**
slouken@8582
   186
 *  \brief Gets the name of the platform.
slouken@8582
   187
 */
slouken@8582
   188
extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void);
slouken@8582
   189
slouken@8582
   190
/* Ends C function definitions when using C++ */
slouken@8582
   191
#ifdef __cplusplus
slouken@8582
   192
}
slouken@8582
   193
#endif
slouken@8582
   194
#include "close_code.h"
slouken@8582
   195
slouken@10638
   196
#endif /* SDL_platform_h_ */
slouken@8582
   197
slouken@8582
   198
/* vi: set ts=4 sw=4 expandtab: */