mirror of https://github.com/libsdl-org/SDL
Fix uses of undefined macro identifiers (-Wundef)
* Fix -Wundef warnings due to use of unguarded SDL_LOADSO_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_WINDOWS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_ANDROID
* Fix -Wundef warnings due to use of unguarded SDL_LOADSO_DUMMY
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_COCOA
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_UIKIT
* Fix -Wundef warnings due to use of unguarded SDL_TIMERS_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_EVENTS_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_TIMER_DUMMY
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_HAPTIC_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_SENSOR_DISABLED
* Fix -Wundef warnings due to use of unguarded __ANDROID__
* Fix -Wundef warnings due to use of unguarded __IOS__
* Fix -Wundef warnings due to use of unguarded EMULATE_CAS
* Fix -Wundef warnings due to use of unguarded SDL_ATOMIC_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_THREADS_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_SNDIO
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_NETBSD
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_WASAPI
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_DSOUND
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_HAIKU
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_COREAUDIO
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_AAUDIO
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_OPENSLES
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_ANDROID
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_PS2
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_PSP
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_VITA
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_N3DS
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_EMSCRIPTEN
* Fix -Wundef warnings due to use of unguarded SDL_NEON_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_ALTIVEC_BLITTERS
* Fix -Wundef warnings due to use of unguarded __VITA__
* Fix -Wundef warnings due to use of unguarded __3DS__
* Fix -Wundef warnings due to use of unguarded SDL_DYNAPI_PROC_NO_VARARGS
* Fix -Wundef warnings due to use of unguarded __APPLE__
* Fix -Wundef warnings due to use of unguarded __WINRT__
* Fix -Wundef warnings due to use of unguarded SDL_HIDAPI_DISABLED
* Fix -Wundef warnings due to use of unguarded __TVOS__
* Fix -Wundef warnings due to use of unguarded HAVE_DRIVER_BACKEND
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_XINPUT
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_WGI
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_DINPUT
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_MFI
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_EMSCRIPTEN
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_PS2
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_PSP
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_VITA
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_N3DS
* Fix -Wundef warnings due to use of unguarded __MACOS__
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_D3D
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_WINRT
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_RPI
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_VITA_PVR_OGL
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_VIVANTE
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_D3D11
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_D3D12
* Fix -Wundef warnings due to use of unguarded SDL_RENDER_DISABLED
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_METAL
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_PS2
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_PSP
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_VITA_GXM
* Fix -Wundef warnings due to use of unguarded SDL_ARM_SIMD_BLITTERS
* Fix -Wundef warnings due to use of unguarded SDL_ARM_NEON_BLITTERS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_HAIKU
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_PS2
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_PSP
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_VITA
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_N3DS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_KMSDRM
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_RISCOS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_EMSCRIPTEN
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_NGAGE
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_METAL
* Fix -Wundef warnings due to use of unguarded SDL_LSX_INTRINSICS
* Fix -Wundef warnings due to use of unguarded HAVE_PTHREAD_NP_H
* Fix -Wundef warnings due to use of unguarded __RISCOS__
* Fix -Wundef warnings due to use of unguarded FAKE_RECURSIVE_MUTEX
* Fix -Wundef warnings due to use of unguarded USE_POSIX_SPAWN
* textureData is only needed when SDL is built with YUV support
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_ALSA
* Fix -Wundef warnings due to use of unguarded SDL_SSE3_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_SSE4_2_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_SSE4_1_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_AVX512F_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_SSE2_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_AVX_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_AVX2_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_SSE_INTRINSICS
* Fix -Wundef warnings due to use of unguarded SDL_MMX_INTRINSICS
* Fix -Wundef warnings due to use of unguarded HAVE_CLOCK_GETTIME
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_DISK
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_DUMMY
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_DUMMY
* Fix -Wundef warnings due to use of unguarded HAVE_GCC_ATOMICS
* Fix -Wundef warnings due to use of unguarded HAVE_GCC_SYNC_LOCK_TEST_AND_SET
* Fix -Wundef warnings due to use of unguarded SDL_USE_LIBDBUS
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_JACK
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_VIRTUAL
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_LINUX
* Fix -Wundef warnings due to use of unguarded HAVE_LIBC
* Fix -Wundef warnings due to disabling SDL_LIBC
* Fix -Wundef warnings due to use of unguarded HAVE_PLATFORM_BACKEND
* Fix -Wundef warnings due to use of unguarded DEBUG
* Fix -Wundef warnings due to use of unguarded HAVE_LINUX_INPUT_H
* Fix -Werror=unused-variable when building with SDL_LIBC=OFF
* Fix -Wundef warnings due to use of unguqrded SDL_USE_LIBUDEV
* Use SDL alloc functions in libusb/hid.c
* Fix -Wundef warnings due to use of unguarded HAVE_LIBUDEV_H
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_VULKAN
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_OFFSCREEN
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_OGL
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_GLX
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_ES
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_ES2
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_RENDER_OGL_ES2
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_OSS
* Remove SDL_AUDIO_DRIVER_SUNAUDIO reference since it is never set
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_PIPEWIRE
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_PULSEAUDIO
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_XCURSOR
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_XDBE
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_XFIXES
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_XINPUT2
* Fix -Wundef warnings due to use of unguarded #if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
* Fix -Wundef warnings due to use of unguarded #if SDL_VIDEO_DRIVER_X11_XRANDR
* Fix -Wundef warnings due to use of unguarded #if SDL_VIDEO_DRIVER_X11_XSCRNSAVER
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_XSHAPE
* Don't call XShape functions when XShape is diabled
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_WAYLAND
* Fix -Wundef warnings due to use of unuarded SDL_VIDEO_DRIVER_X11
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_RISCOS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_EGL
* Disable array when compiled with SDL_EVENTS=OFF
* Fix -Wundef warnings due to use of unguarded SDL_INPUT_LINUXEV
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_PTHREAD
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_WINDOWS
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_PS2
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_PSP
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_VITA
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_N3DS
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_STDCPP
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_NGAGE
* Fix -Wundef warnings due to use of unguarded __WINDOWS__
* Fix -Wundef warnings due to use of unguarded __WINGDK__
* Fix -Wundef warnings due to use of unguarded __ANDROID__
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_GENERIC_COND_SUFFIX
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_VITA_PIB
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_VITA_PVR
* Fix -Wundef warnings due to use of unguarded SDL_FILE_DISABLED
* Fix -Wundef warnings due to use of unguarded __XBOXONE__
* Fix -Wundef warnings due to use of unguarded __XBOXSERIES__
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_WGL
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_QNX
* Fix -Wundef warnings due to use of unguarded SDL_AUDIO_DRIVER_DISK
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_QNX
* Fix -Wundef warnings due to use of unguarded DEBUG_RAZOR
* Fix -Wundef warnings due to use of unguarded WINAPI_FAMILY_PHONE_APP
* Fix -Wundef warnings due to use of unguarded SDL_MAC_NO_SANDBOX
* Fix -Wundef warnings due to use of unguarded __(IPHONE|APPLETV|MAC)_OS_VERSION_MAX_ALLOWED
* Fix C4090 warning ('function': different 'const' qualifiers)
* ci: use -isystem for include dirs of pspdev toolchain
* cmake: add -Wundef option
* Fix remaining -Wundef warnings due to use of unguarded SDL_VIDEO_VULKAN and SDL_VIDEO_METAL
* Fix -Wundef warnings due to use of unguarded __MACOS__
* DEBUG_CONVERT is guaranteed to be defined in src/audio/SDL_audiocvt.c
* Fix -Wundef warnings due to use of unguarded HAVE_NANOSLEEP
* Fix -Wundef warnings due to use of unguarded HAVE_DXGI_H
* Fix -Wundef warnings due to use of unguarded HAVE_LINUX_INPUT_H
* fix SDL_VIDEO_DRIVER_WAYLAND
* fix SDL_VIDEO_DRIVER_X11
* Fix -Wundef warnings due to use of unguarded HAVE_MMDEVICEAPI_H
* Fix -Wundef warnings due to use of unguarded HAVE_PTHREAD_SETNAME_NP
* Fix -Wundef warnings due to use of unguarded HAVE_PTHREAD_SET_NAME_NP
* Fix -Wundef warnings due to use of unguarded HAVE_SETJMP
* Fix -Wundef warnings due to use of unguarded HAVE_SIGNAL_H
* Fix -Wundef warnings due to use of unguarded HAVE_TPCSHRD_H
* Fix -Wundef warnings due to use of unguarded MACOSX_COREAUDIO
* Fix -Wundef warnings due to use of unguarded SDL_HAPTIC_DINPUT
* Fix -Wundef warnings due to use of unguarded SDL_HAPTIC_IOKIT
* Fix -Wundef warnings due to use of unguarded SDL_HAPTIC_XINPUT
* Fix -Wundef warnings due to use of unguarded SDL_IPHONE_KEYBOARD
* Fix -Wundef warnings due to use of unguarded SDL_JOYSTICK_RAWINPUT
* Fix -Wundef warnings due to use of unguarded SDL_POWER_ANDROID
* Fix -Wundef warnings due to use of unguarded SDL_POWER_EMSCRIPTEN
* Fix -Wundef warnings due to use of unguarded SDL_POWER_HAIKU
* Fix -Wundef warnings due to use of unguarded SDL_POWER_LINUX
* Fix -Wundef warnings due to use of unguarded SDL_POWER_MACOSX
* Fix -Wundef warnings due to use of unguarded SDL_POWER_PSP
* Fix -Wundef warnings due to use of unguarded SDL_POWER_UIKIT
* Fix -Wundef warnings due to use of unguarded SDL_POWER_VITA
* Fix -Wundef warnings due to use of unguarded SDL_POWER_WINDOWS
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_PTHREAD_RECURSIVE_MUTEX
* Fix -Wundef warnings due to use of unguarded SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_VIVANTE_VDK
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_WAYLAND
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_CGL
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_EGL
* Fix -Wundef warnings due to use of unguarded __MACOS__
* Fix -Wundef warnings due to use of unguarded __OpenBSD__
* Fix -Wundef warnings due to use of unguarded __FreeBSD__
* Fix -Wundef warnings due to use of unguarded __MWERKS__
* Fix -Wundef warnings due to use of unguarded __WIN32__
* Fix -Wundef warnings due to use of unguarded SDL_IPHONE_LAUNCHSCREEN
* Fix -Wundef warnings due to use of unguarded SDL_VIDEO_OPENGL_ES2
* Remove unused HAVE_CONST, HAVE_INLINE and HAVE_VOLATILE
* Revert "Use SDL alloc functions in libusb/hid.c"
This reverts commit 847c64b00d
.
* Handle FAKE_RECURSIVE_MUTEX in similar way as SDL2
* Don't use defined in macro
This commit is contained in:
parent
c3d3c2c672
commit
3472dc11d6
|
@ -16,6 +16,10 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
apk add cmake gmp mpc1 mpfr4 make pkgconf
|
apk add cmake gmp mpc1 mpfr4 make pkgconf
|
||||||
|
- name: Patch the pspdev toolchain to use -isystem instead of -I
|
||||||
|
run: |
|
||||||
|
# https://github.com/pspdev/pspsdk/issues/123
|
||||||
|
sed -E s/-I/-isystem/g -i $PSPDEV/psp/share/pspdev.cmake
|
||||||
- name: Configure (CMake)
|
- name: Configure (CMake)
|
||||||
run: |
|
run: |
|
||||||
cmake -S . -B build \
|
cmake -S . -B build \
|
||||||
|
|
|
@ -561,6 +561,11 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
check_c_compiler_flag(-Wundef HAVE_GCC_WUNDEF)
|
||||||
|
if(HAVE_GCC_WUNDEF)
|
||||||
|
target_compile_options(sdl-global-options INTERFACE "-Wundef")
|
||||||
|
endif()
|
||||||
|
|
||||||
check_c_compiler_flag(-fno-strict-aliasing HAVE_GCC_NO_STRICT_ALIASING)
|
check_c_compiler_flag(-fno-strict-aliasing HAVE_GCC_NO_STRICT_ALIASING)
|
||||||
if(HAVE_GCC_NO_STRICT_ALIASING)
|
if(HAVE_GCC_NO_STRICT_ALIASING)
|
||||||
target_compile_options(sdl-global-options INTERFACE "-fno-strict-aliasing")
|
target_compile_options(sdl-global-options INTERFACE "-fno-strict-aliasing")
|
||||||
|
@ -641,13 +646,15 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC)
|
||||||
__sync_fetch_and_add(&a, 1);
|
__sync_fetch_and_add(&a, 1);
|
||||||
__sync_bool_compare_and_swap(&a, 5, 10);
|
__sync_bool_compare_and_swap(&a, 5, 10);
|
||||||
__sync_bool_compare_and_swap(&x, y, z);
|
__sync_bool_compare_and_swap(&x, y, z);
|
||||||
return 0; }" HAVE_GCC_ATOMICS)
|
return 0; }" COMPILER_SUPPORTS_GCC_ATOMICS)
|
||||||
|
set(HAVE_GCC_ATOMICS ${COMPILER_SUPPORTS_GCC_ATOMICS})
|
||||||
if(NOT HAVE_GCC_ATOMICS)
|
if(NOT HAVE_GCC_ATOMICS)
|
||||||
check_c_source_compiles("int main(int argc, char **argv) {
|
check_c_source_compiles("int main(int argc, char **argv) {
|
||||||
int a;
|
int a;
|
||||||
__sync_lock_test_and_set(&a, 1);
|
__sync_lock_test_and_set(&a, 1);
|
||||||
__sync_lock_release(&a);
|
__sync_lock_release(&a);
|
||||||
return 0; }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
return 0; }" COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET)
|
||||||
|
set(HAVE_GCC_SYNC_LOCK_TEST_AND_SET ${COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -1177,7 +1184,8 @@ if(SDL_LIBC)
|
||||||
|
|
||||||
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
||||||
check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP)
|
check_symbol_exists(setjmp "setjmp.h" HAVE_SETJMP)
|
||||||
check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP)
|
check_symbol_exists(nanosleep "time.h" FOUND_NANOSLEEP)
|
||||||
|
set(HAVE_NANOSLEEP ${FOUND_NANOSLEEP})
|
||||||
check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF)
|
check_symbol_exists(sysconf "unistd.h" HAVE_SYSCONF)
|
||||||
check_symbol_exists(sysctlbyname "sys/types.h;sys/sysctl.h" HAVE_SYSCTLBYNAME)
|
check_symbol_exists(sysctlbyname "sys/types.h;sys/sysctl.h" HAVE_SYSCTLBYNAME)
|
||||||
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
||||||
|
@ -2974,7 +2982,7 @@ if(SDL_WERROR)
|
||||||
if(HAVE_WX)
|
if(HAVE_WX)
|
||||||
target_compile_options(sdl-global-options INTERFACE "/WX")
|
target_compile_options(sdl-global-options INTERFACE "/WX")
|
||||||
endif()
|
endif()
|
||||||
elseif(USE_GCC OR USE_CLANG OR USE_INTELCC)
|
elseif(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QNX)
|
||||||
check_c_compiler_flag(-Werror HAVE_WERROR)
|
check_c_compiler_flag(-Werror HAVE_WERROR)
|
||||||
if(HAVE_WERROR)
|
if(HAVE_WERROR)
|
||||||
target_compile_options(sdl-global-options INTERFACE "-Werror")
|
target_compile_options(sdl-global-options INTERFACE "-Werror")
|
||||||
|
|
|
@ -879,7 +879,8 @@ macro(CheckPTHREAD)
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
sem_timedwait(NULL, NULL);
|
sem_timedwait(NULL, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}" HAVE_SEM_TIMEDWAIT)
|
}" COMPILER_HAS_SEM_TIMEDWAIT)
|
||||||
|
set(HAVE_SEM_TIMEDWAIT ${COMPILER_HAS_SEM_TIMEDWAIT})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -163,6 +163,12 @@
|
||||||
#define WINAPI_FAMILY_WINRT 0
|
#define WINAPI_FAMILY_WINRT 0
|
||||||
#endif /* HAVE_WINAPIFAMILY_H */
|
#endif /* HAVE_WINAPIFAMILY_H */
|
||||||
|
|
||||||
|
#if HAVE_WINAPIFAMILY_H && HAVE_WINAPIFAMILY_H
|
||||||
|
#define SDL_WINAPI_FAMILY_PHONE (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
|
||||||
|
#else
|
||||||
|
#define SDL_WINAPI_FAMILY_PHONE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WINAPI_FAMILY_WINRT
|
#if WINAPI_FAMILY_WINRT
|
||||||
#undef __WINRT__
|
#undef __WINRT__
|
||||||
#define __WINRT__ 1
|
#define __WINRT__ 1
|
||||||
|
|
|
@ -31,11 +31,6 @@
|
||||||
/* General platform specific identifiers */
|
/* General platform specific identifiers */
|
||||||
#include <SDL3/SDL_platform_defines.h>
|
#include <SDL3/SDL_platform_defines.h>
|
||||||
|
|
||||||
/* C language features */
|
|
||||||
#cmakedefine const @HAVE_CONST@
|
|
||||||
#cmakedefine inline @HAVE_INLINE@
|
|
||||||
#cmakedefine volatile @HAVE_VOLATILE@
|
|
||||||
|
|
||||||
/* C datatypes */
|
/* C datatypes */
|
||||||
/* Define SIZEOF_VOIDP for 64/32 architectures */
|
/* Define SIZEOF_VOIDP for 64/32 architectures */
|
||||||
#if defined(__LP64__) || defined(_LP64) || defined(_WIN64)
|
#if defined(__LP64__) || defined(_LP64) || defined(_WIN64)
|
||||||
|
@ -49,7 +44,7 @@
|
||||||
|
|
||||||
/* Comment this if you want to build without any C library requirements */
|
/* Comment this if you want to build without any C library requirements */
|
||||||
#cmakedefine HAVE_LIBC 1
|
#cmakedefine HAVE_LIBC 1
|
||||||
#if HAVE_LIBC
|
#ifdef HAVE_LIBC
|
||||||
|
|
||||||
/* Useful headers */
|
/* Useful headers */
|
||||||
#cmakedefine HAVE_ALLOCA_H 1
|
#cmakedefine HAVE_ALLOCA_H 1
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
/* Useful headers */
|
/* Useful headers */
|
||||||
#define HAVE_DXGI_H 1
|
#define HAVE_DXGI_H 1
|
||||||
#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
|
#if !SDL_WINAPI_FAMILY_PHONE
|
||||||
#define HAVE_XINPUT_H 1
|
#define HAVE_XINPUT_H 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@
|
||||||
#define SDL_AUDIO_DRIVER_DUMMY 1
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
/* Enable various input drivers */
|
/* Enable various input drivers */
|
||||||
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#if SDL_WINAPI_FAMILY_PHONE
|
||||||
#define SDL_JOYSTICK_DISABLED 1
|
#define SDL_JOYSTICK_DISABLED 1
|
||||||
#define SDL_HAPTIC_DISABLED 1
|
#define SDL_HAPTIC_DISABLED 1
|
||||||
#else
|
#else
|
||||||
|
@ -205,9 +205,9 @@
|
||||||
#define SDL_VIDEO_RENDER_D3D11 1
|
#define SDL_VIDEO_RENDER_D3D11 1
|
||||||
|
|
||||||
/* Disable D3D12 as it's not implemented for WinRT */
|
/* Disable D3D12 as it's not implemented for WinRT */
|
||||||
#define SDL_VIDEO_RENDER_D3D12 0
|
/* #undef SDL_VIDEO_RENDER_D3D12 */
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL_ES2
|
#ifdef SDL_VIDEO_OPENGL_ES2
|
||||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
50
src/SDL.c
50
src/SDL.c
|
@ -47,10 +47,10 @@
|
||||||
#include "sensor/SDL_sensor_c.h"
|
#include "sensor/SDL_sensor_c.h"
|
||||||
|
|
||||||
/* Initialization/Cleanup routines */
|
/* Initialization/Cleanup routines */
|
||||||
#if !SDL_TIMERS_DISABLED
|
#ifndef SDL_TIMERS_DISABLED
|
||||||
#include "timer/SDL_timer_c.h"
|
#include "timer/SDL_timer_c.h"
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_DRIVER_WINDOWS
|
#ifdef SDL_VIDEO_DRIVER_WINDOWS
|
||||||
extern int SDL_HelperWindowCreate(void);
|
extern int SDL_HelperWindowCreate(void);
|
||||||
extern int SDL_HelperWindowDestroy(void);
|
extern int SDL_HelperWindowDestroy(void);
|
||||||
#endif
|
#endif
|
||||||
|
@ -171,7 +171,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
/* Clear the error message */
|
/* Clear the error message */
|
||||||
SDL_ClearError();
|
SDL_ClearError();
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
SDL_DBus_Init();
|
SDL_DBus_Init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
flags |= SDL_INIT_EVENTS;
|
flags |= SDL_INIT_EVENTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_VIDEO_DRIVER_WINDOWS
|
#ifdef SDL_VIDEO_DRIVER_WINDOWS
|
||||||
if (flags & (SDL_INIT_HAPTIC | SDL_INIT_JOYSTICK)) {
|
if (flags & (SDL_INIT_HAPTIC | SDL_INIT_JOYSTICK)) {
|
||||||
if (SDL_HelperWindowCreate() < 0) {
|
if (SDL_HelperWindowCreate() < 0) {
|
||||||
goto quit_and_error;
|
goto quit_and_error;
|
||||||
|
@ -193,13 +193,13 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_TIMERS_DISABLED
|
#ifndef SDL_TIMERS_DISABLED
|
||||||
SDL_InitTicks();
|
SDL_InitTicks();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Initialize the event subsystem */
|
/* Initialize the event subsystem */
|
||||||
if (flags & SDL_INIT_EVENTS) {
|
if (flags & SDL_INIT_EVENTS) {
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_EVENTS)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_EVENTS)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_EVENTS);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_EVENTS);
|
||||||
if (SDL_InitEvents() < 0) {
|
if (SDL_InitEvents() < 0) {
|
||||||
|
@ -218,7 +218,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the timer subsystem */
|
/* Initialize the timer subsystem */
|
||||||
if (flags & SDL_INIT_TIMER) {
|
if (flags & SDL_INIT_TIMER) {
|
||||||
#if !SDL_TIMERS_DISABLED && !SDL_TIMER_DUMMY
|
#if !defined(SDL_TIMERS_DISABLED) && !defined(SDL_TIMER_DUMMY)
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_TIMER)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_TIMER)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_TIMER);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_TIMER);
|
||||||
if (SDL_InitTimers() < 0) {
|
if (SDL_InitTimers() < 0) {
|
||||||
|
@ -237,7 +237,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the video subsystem */
|
/* Initialize the video subsystem */
|
||||||
if (flags & SDL_INIT_VIDEO) {
|
if (flags & SDL_INIT_VIDEO) {
|
||||||
#if !SDL_VIDEO_DISABLED
|
#ifndef SDL_VIDEO_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_VIDEO)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_VIDEO)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_VIDEO);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_VIDEO);
|
||||||
if (SDL_VideoInit(NULL) < 0) {
|
if (SDL_VideoInit(NULL) < 0) {
|
||||||
|
@ -256,7 +256,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the audio subsystem */
|
/* Initialize the audio subsystem */
|
||||||
if (flags & SDL_INIT_AUDIO) {
|
if (flags & SDL_INIT_AUDIO) {
|
||||||
#if !SDL_AUDIO_DISABLED
|
#ifndef SDL_AUDIO_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_AUDIO)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_AUDIO)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_AUDIO);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_AUDIO);
|
||||||
if (SDL_InitAudio(NULL) < 0) {
|
if (SDL_InitAudio(NULL) < 0) {
|
||||||
|
@ -275,7 +275,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the joystick subsystem */
|
/* Initialize the joystick subsystem */
|
||||||
if (flags & SDL_INIT_JOYSTICK) {
|
if (flags & SDL_INIT_JOYSTICK) {
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_JOYSTICK)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_JOYSTICK)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_JOYSTICK);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_JOYSTICK);
|
||||||
if (SDL_InitJoysticks() < 0) {
|
if (SDL_InitJoysticks() < 0) {
|
||||||
|
@ -293,7 +293,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SDL_INIT_GAMEPAD) {
|
if (flags & SDL_INIT_GAMEPAD) {
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_GAMEPAD)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_GAMEPAD)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_GAMEPAD);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_GAMEPAD);
|
||||||
if (SDL_InitGamepads() < 0) {
|
if (SDL_InitGamepads() < 0) {
|
||||||
|
@ -312,7 +312,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the haptic subsystem */
|
/* Initialize the haptic subsystem */
|
||||||
if (flags & SDL_INIT_HAPTIC) {
|
if (flags & SDL_INIT_HAPTIC) {
|
||||||
#if !SDL_HAPTIC_DISABLED
|
#ifndef SDL_HAPTIC_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_HAPTIC)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_HAPTIC)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_HAPTIC);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_HAPTIC);
|
||||||
if (SDL_InitHaptics() < 0) {
|
if (SDL_InitHaptics() < 0) {
|
||||||
|
@ -331,7 +331,7 @@ int SDL_InitSubSystem(Uint32 flags)
|
||||||
|
|
||||||
/* Initialize the sensor subsystem */
|
/* Initialize the sensor subsystem */
|
||||||
if (flags & SDL_INIT_SENSOR) {
|
if (flags & SDL_INIT_SENSOR) {
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
if (SDL_ShouldInitSubsystem(SDL_INIT_SENSOR)) {
|
if (SDL_ShouldInitSubsystem(SDL_INIT_SENSOR)) {
|
||||||
SDL_IncrementSubsystemRefCount(SDL_INIT_SENSOR);
|
SDL_IncrementSubsystemRefCount(SDL_INIT_SENSOR);
|
||||||
if (SDL_InitSensors() < 0) {
|
if (SDL_InitSensors() < 0) {
|
||||||
|
@ -365,7 +365,7 @@ int SDL_Init(Uint32 flags)
|
||||||
void SDL_QuitSubSystem(Uint32 flags)
|
void SDL_QuitSubSystem(Uint32 flags)
|
||||||
{
|
{
|
||||||
/* Shut down requested initialized subsystems */
|
/* Shut down requested initialized subsystems */
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
if (flags & SDL_INIT_SENSOR) {
|
if (flags & SDL_INIT_SENSOR) {
|
||||||
if (SDL_ShouldQuitSubsystem(SDL_INIT_SENSOR)) {
|
if (SDL_ShouldQuitSubsystem(SDL_INIT_SENSOR)) {
|
||||||
SDL_QuitSensors();
|
SDL_QuitSensors();
|
||||||
|
@ -374,7 +374,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
if (flags & SDL_INIT_GAMEPAD) {
|
if (flags & SDL_INIT_GAMEPAD) {
|
||||||
/* game controller implies joystick */
|
/* game controller implies joystick */
|
||||||
flags |= SDL_INIT_JOYSTICK;
|
flags |= SDL_INIT_JOYSTICK;
|
||||||
|
@ -396,7 +396,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_HAPTIC_DISABLED
|
#ifndef SDL_HAPTIC_DISABLED
|
||||||
if (flags & SDL_INIT_HAPTIC) {
|
if (flags & SDL_INIT_HAPTIC) {
|
||||||
if (SDL_ShouldQuitSubsystem(SDL_INIT_HAPTIC)) {
|
if (SDL_ShouldQuitSubsystem(SDL_INIT_HAPTIC)) {
|
||||||
SDL_QuitHaptics();
|
SDL_QuitHaptics();
|
||||||
|
@ -405,7 +405,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_AUDIO_DISABLED
|
#ifndef SDL_AUDIO_DISABLED
|
||||||
if (flags & SDL_INIT_AUDIO) {
|
if (flags & SDL_INIT_AUDIO) {
|
||||||
/* audio implies events */
|
/* audio implies events */
|
||||||
flags |= SDL_INIT_EVENTS;
|
flags |= SDL_INIT_EVENTS;
|
||||||
|
@ -417,7 +417,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_VIDEO_DISABLED
|
#ifndef SDL_VIDEO_DISABLED
|
||||||
if (flags & SDL_INIT_VIDEO) {
|
if (flags & SDL_INIT_VIDEO) {
|
||||||
/* video implies events */
|
/* video implies events */
|
||||||
flags |= SDL_INIT_EVENTS;
|
flags |= SDL_INIT_EVENTS;
|
||||||
|
@ -429,7 +429,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_TIMERS_DISABLED && !SDL_TIMER_DUMMY
|
#if !defined(SDL_TIMERS_DISABLED) && !defined(SDL_TIMER_DUMMY)
|
||||||
if (flags & SDL_INIT_TIMER) {
|
if (flags & SDL_INIT_TIMER) {
|
||||||
if (SDL_ShouldQuitSubsystem(SDL_INIT_TIMER)) {
|
if (SDL_ShouldQuitSubsystem(SDL_INIT_TIMER)) {
|
||||||
SDL_QuitTimers();
|
SDL_QuitTimers();
|
||||||
|
@ -438,7 +438,7 @@ void SDL_QuitSubSystem(Uint32 flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (flags & SDL_INIT_EVENTS) {
|
if (flags & SDL_INIT_EVENTS) {
|
||||||
if (SDL_ShouldQuitSubsystem(SDL_INIT_EVENTS)) {
|
if (SDL_ShouldQuitSubsystem(SDL_INIT_EVENTS)) {
|
||||||
SDL_QuitEvents();
|
SDL_QuitEvents();
|
||||||
|
@ -484,19 +484,19 @@ void SDL_Quit(void)
|
||||||
SDL_bInMainQuit = SDL_TRUE;
|
SDL_bInMainQuit = SDL_TRUE;
|
||||||
|
|
||||||
/* Quit all subsystems */
|
/* Quit all subsystems */
|
||||||
#if SDL_VIDEO_DRIVER_WINDOWS
|
#ifdef SDL_VIDEO_DRIVER_WINDOWS
|
||||||
SDL_HelperWindowDestroy();
|
SDL_HelperWindowDestroy();
|
||||||
#endif
|
#endif
|
||||||
SDL_QuitSubSystem(SDL_INIT_EVERYTHING);
|
SDL_QuitSubSystem(SDL_INIT_EVERYTHING);
|
||||||
|
|
||||||
#if !SDL_TIMERS_DISABLED
|
#ifndef SDL_TIMERS_DISABLED
|
||||||
SDL_QuitTicks();
|
SDL_QuitTicks();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDL_ClearHints();
|
SDL_ClearHints();
|
||||||
SDL_AssertionsQuit();
|
SDL_AssertionsQuit();
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
SDL_DBus_Quit();
|
SDL_DBus_Quit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -620,10 +620,10 @@ SDL_GetPlatform(void)
|
||||||
SDL_bool
|
SDL_bool
|
||||||
SDL_IsTablet(void)
|
SDL_IsTablet(void)
|
||||||
{
|
{
|
||||||
#if __ANDROID__
|
#if defined(__ANDROID__)
|
||||||
extern SDL_bool SDL_IsAndroidTablet(void);
|
extern SDL_bool SDL_IsAndroidTablet(void);
|
||||||
return SDL_IsAndroidTablet();
|
return SDL_IsAndroidTablet();
|
||||||
#elif __IOS__
|
#elif defined(__IOS__)
|
||||||
extern SDL_bool SDL_IsIPad(void);
|
extern SDL_bool SDL_IsIPad(void);
|
||||||
return SDL_IsIPad();
|
return SDL_IsIPad();
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
#include "SDL_log_c.h"
|
#include "SDL_log_c.h"
|
||||||
|
|
||||||
#if HAVE_STDIO_H
|
#ifdef HAVE_STDIO_H
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -484,7 +484,7 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_STDIO_H && \
|
#if defined(HAVE_STDIO_H) && \
|
||||||
!(defined(__APPLE__) && (defined(SDL_VIDEO_DRIVER_COCOA) || defined(SDL_VIDEO_DRIVER_UIKIT)))
|
!(defined(__APPLE__) && (defined(SDL_VIDEO_DRIVER_COCOA) || defined(SDL_VIDEO_DRIVER_UIKIT)))
|
||||||
(void)fprintf(stderr, "%s: %s\n", SDL_priority_prefixes[priority], message);
|
(void)fprintf(stderr, "%s: %s\n", SDL_priority_prefixes[priority], message);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -104,7 +104,7 @@ extern __inline int _SDL_xadd_watcom(volatile int *a, int v);
|
||||||
#define EMULATE_CAS 1
|
#define EMULATE_CAS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EMULATE_CAS
|
#ifdef EMULATE_CAS
|
||||||
static SDL_SpinLock locks[32];
|
static SDL_SpinLock locks[32];
|
||||||
|
|
||||||
static SDL_INLINE void enterLock(void *a)
|
static SDL_INLINE void enterLock(void *a)
|
||||||
|
@ -136,7 +136,7 @@ SDL_AtomicCAS(SDL_AtomicInt *a, int oldval, int newval)
|
||||||
return (SDL_bool)OSAtomicCompareAndSwap32Barrier(oldval, newval, &a->value);
|
return (SDL_bool)OSAtomicCompareAndSwap32Barrier(oldval, newval, &a->value);
|
||||||
#elif defined(__SOLARIS__)
|
#elif defined(__SOLARIS__)
|
||||||
return (SDL_bool)((int)atomic_cas_uint((volatile uint_t *)&a->value, (uint_t)oldval, (uint_t)newval) == oldval);
|
return (SDL_bool)((int)atomic_cas_uint((volatile uint_t *)&a->value, (uint_t)oldval, (uint_t)newval) == oldval);
|
||||||
#elif EMULATE_CAS
|
#elif defined(EMULATE_CAS)
|
||||||
SDL_bool retval = SDL_FALSE;
|
SDL_bool retval = SDL_FALSE;
|
||||||
|
|
||||||
enterLock(a);
|
enterLock(a);
|
||||||
|
@ -167,7 +167,7 @@ SDL_AtomicCASPtr(void **a, void *oldval, void *newval)
|
||||||
return (SDL_bool)OSAtomicCompareAndSwap32Barrier((int32_t)oldval, (int32_t)newval, (int32_t *)a);
|
return (SDL_bool)OSAtomicCompareAndSwap32Barrier((int32_t)oldval, (int32_t)newval, (int32_t *)a);
|
||||||
#elif defined(__SOLARIS__)
|
#elif defined(__SOLARIS__)
|
||||||
return (SDL_bool)(atomic_cas_ptr(a, oldval, newval) == oldval);
|
return (SDL_bool)(atomic_cas_ptr(a, oldval, newval) == oldval);
|
||||||
#elif EMULATE_CAS
|
#elif defined(EMULATE_CAS)
|
||||||
SDL_bool retval = SDL_FALSE;
|
SDL_bool retval = SDL_FALSE;
|
||||||
|
|
||||||
enterLock(a);
|
enterLock(a);
|
||||||
|
|
|
@ -60,7 +60,7 @@ extern __inline int _SDL_xchg_watcom(volatile int *a, int v);
|
||||||
SDL_bool
|
SDL_bool
|
||||||
SDL_AtomicTryLock(SDL_SpinLock *lock)
|
SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||||
{
|
{
|
||||||
#if SDL_ATOMIC_DISABLED
|
#if defined(SDL_ATOMIC_DISABLED)
|
||||||
/* Terrible terrible damage */
|
/* Terrible terrible damage */
|
||||||
static SDL_mutex *_spinlock_mutex;
|
static SDL_mutex *_spinlock_mutex;
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif HAVE_GCC_ATOMICS || HAVE_GCC_SYNC_LOCK_TEST_AND_SET
|
#elif defined(HAVE_GCC_ATOMICS) || defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||||
return __sync_lock_test_and_set(lock, 1) == 0;
|
return __sync_lock_test_and_set(lock, 1) == 0;
|
||||||
|
|
||||||
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
|
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
|
||||||
|
@ -183,7 +183,7 @@ void SDL_AtomicLock(SDL_SpinLock *lock)
|
||||||
|
|
||||||
void SDL_AtomicUnlock(SDL_SpinLock *lock)
|
void SDL_AtomicUnlock(SDL_SpinLock *lock)
|
||||||
{
|
{
|
||||||
#if HAVE_GCC_ATOMICS || HAVE_GCC_SYNC_LOCK_TEST_AND_SET
|
#if defined(HAVE_GCC_ATOMICS) || defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||||
__sync_lock_release(lock);
|
__sync_lock_release(lock);
|
||||||
|
|
||||||
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
|
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
|
||||||
|
|
|
@ -34,70 +34,70 @@ static SDL_AudioDevice *open_devices[16];
|
||||||
|
|
||||||
/* Available audio drivers */
|
/* Available audio drivers */
|
||||||
static const AudioBootStrap *const bootstrap[] = {
|
static const AudioBootStrap *const bootstrap[] = {
|
||||||
#if SDL_AUDIO_DRIVER_PULSEAUDIO
|
#ifdef SDL_AUDIO_DRIVER_PULSEAUDIO
|
||||||
&PULSEAUDIO_bootstrap,
|
&PULSEAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_ALSA
|
#ifdef SDL_AUDIO_DRIVER_ALSA
|
||||||
&ALSA_bootstrap,
|
&ALSA_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_SNDIO
|
#ifdef SDL_AUDIO_DRIVER_SNDIO
|
||||||
&SNDIO_bootstrap,
|
&SNDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_NETBSD
|
#ifdef SDL_AUDIO_DRIVER_NETBSD
|
||||||
&NETBSDAUDIO_bootstrap,
|
&NETBSDAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_WASAPI
|
#ifdef SDL_AUDIO_DRIVER_WASAPI
|
||||||
&WASAPI_bootstrap,
|
&WASAPI_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_DSOUND
|
#ifdef SDL_AUDIO_DRIVER_DSOUND
|
||||||
&DSOUND_bootstrap,
|
&DSOUND_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_HAIKU
|
#ifdef SDL_AUDIO_DRIVER_HAIKU
|
||||||
&HAIKUAUDIO_bootstrap,
|
&HAIKUAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_COREAUDIO
|
#ifdef SDL_AUDIO_DRIVER_COREAUDIO
|
||||||
&COREAUDIO_bootstrap,
|
&COREAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_AAUDIO
|
#ifdef SDL_AUDIO_DRIVER_AAUDIO
|
||||||
&aaudio_bootstrap,
|
&aaudio_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_OPENSLES
|
#ifdef SDL_AUDIO_DRIVER_OPENSLES
|
||||||
&openslES_bootstrap,
|
&openslES_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_ANDROID
|
#ifdef SDL_AUDIO_DRIVER_ANDROID
|
||||||
&ANDROIDAUDIO_bootstrap,
|
&ANDROIDAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_PS2
|
#ifdef SDL_AUDIO_DRIVER_PS2
|
||||||
&PS2AUDIO_bootstrap,
|
&PS2AUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_PSP
|
#ifdef SDL_AUDIO_DRIVER_PSP
|
||||||
&PSPAUDIO_bootstrap,
|
&PSPAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_VITA
|
#ifdef SDL_AUDIO_DRIVER_VITA
|
||||||
&VITAAUD_bootstrap,
|
&VITAAUD_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_N3DS
|
#ifdef SDL_AUDIO_DRIVER_N3DS
|
||||||
&N3DSAUDIO_bootstrap,
|
&N3DSAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_EMSCRIPTEN
|
#ifdef SDL_AUDIO_DRIVER_EMSCRIPTEN
|
||||||
&EMSCRIPTENAUDIO_bootstrap,
|
&EMSCRIPTENAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_JACK
|
#ifdef SDL_AUDIO_DRIVER_JACK
|
||||||
&JACK_bootstrap,
|
&JACK_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_PIPEWIRE
|
#ifdef SDL_AUDIO_DRIVER_PIPEWIRE
|
||||||
&PIPEWIRE_bootstrap,
|
&PIPEWIRE_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_OSS
|
#ifdef SDL_AUDIO_DRIVER_OSS
|
||||||
&DSP_bootstrap,
|
&DSP_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_QNX
|
#ifdef SDL_AUDIO_DRIVER_QNX
|
||||||
&QSAAUDIO_bootstrap,
|
&QSAAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_DISK
|
#ifdef SDL_AUDIO_DRIVER_DISK
|
||||||
&DISKAUDIO_bootstrap,
|
&DISKAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_AUDIO_DRIVER_DUMMY
|
#ifdef SDL_AUDIO_DRIVER_DUMMY
|
||||||
&DUMMYAUDIO_bootstrap,
|
&DUMMYAUDIO_bootstrap,
|
||||||
#endif
|
#endif
|
||||||
NULL
|
NULL
|
||||||
|
@ -631,7 +631,7 @@ int SDL_ClearQueuedAudio(SDL_AudioDeviceID devid)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_ANDROID
|
#ifdef SDL_AUDIO_DRIVER_ANDROID
|
||||||
extern void Android_JNI_AudioSetThreadPriority(int, int);
|
extern void Android_JNI_AudioSetThreadPriority(int, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -646,7 +646,7 @@ static int SDLCALL SDL_RunAudio(void *devicep)
|
||||||
|
|
||||||
SDL_assert(!device->iscapture);
|
SDL_assert(!device->iscapture);
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_ANDROID
|
#if defined(SDL_AUDIO_DRIVER_ANDROID)
|
||||||
{
|
{
|
||||||
/* Set thread priority to THREAD_PRIORITY_AUDIO */
|
/* Set thread priority to THREAD_PRIORITY_AUDIO */
|
||||||
Android_JNI_AudioSetThreadPriority(device->iscapture, device->id);
|
Android_JNI_AudioSetThreadPriority(device->iscapture, device->id);
|
||||||
|
@ -746,7 +746,7 @@ static int SDLCALL SDL_CaptureAudio(void *devicep)
|
||||||
|
|
||||||
SDL_assert(device->iscapture);
|
SDL_assert(device->iscapture);
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_ANDROID
|
#if defined(SDL_AUDIO_DRIVER_ANDROID)
|
||||||
{
|
{
|
||||||
/* Set thread priority to THREAD_PRIORITY_AUDIO */
|
/* Set thread priority to THREAD_PRIORITY_AUDIO */
|
||||||
Android_JNI_AudioSetThreadPriority(device->iscapture, device->id);
|
Android_JNI_AudioSetThreadPriority(device->iscapture, device->id);
|
||||||
|
@ -901,7 +901,7 @@ int SDL_InitAudio(const char *driver_name)
|
||||||
const char *driver_attempt_end = SDL_strchr(driver_attempt, ',');
|
const char *driver_attempt_end = SDL_strchr(driver_attempt, ',');
|
||||||
size_t driver_attempt_len = (driver_attempt_end != NULL) ? (driver_attempt_end - driver_attempt)
|
size_t driver_attempt_len = (driver_attempt_end != NULL) ? (driver_attempt_end - driver_attempt)
|
||||||
: SDL_strlen(driver_attempt);
|
: SDL_strlen(driver_attempt);
|
||||||
#if SDL_AUDIO_DRIVER_DSOUND
|
#ifdef SDL_AUDIO_DRIVER_DSOUND
|
||||||
/* SDL 1.2 uses the name "dsound", so we'll support both. */
|
/* SDL 1.2 uses the name "dsound", so we'll support both. */
|
||||||
if (driver_attempt_len == SDL_strlen("dsound") &&
|
if (driver_attempt_len == SDL_strlen("dsound") &&
|
||||||
(SDL_strncasecmp(driver_attempt, "dsound", driver_attempt_len) == 0)) {
|
(SDL_strncasecmp(driver_attempt, "dsound", driver_attempt_len) == 0)) {
|
||||||
|
@ -910,7 +910,7 @@ int SDL_InitAudio(const char *driver_name)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_PULSEAUDIO
|
#ifdef SDL_AUDIO_DRIVER_PULSEAUDIO
|
||||||
/* SDL 1.2 uses the name "pulse", so we'll support both. */
|
/* SDL 1.2 uses the name "pulse", so we'll support both. */
|
||||||
if (driver_attempt_len == SDL_strlen("pulse") &&
|
if (driver_attempt_len == SDL_strlen("pulse") &&
|
||||||
(SDL_strncasecmp(driver_attempt, "pulse", driver_attempt_len) == 0)) {
|
(SDL_strncasecmp(driver_attempt, "pulse", driver_attempt_len) == 0)) {
|
||||||
|
|
|
@ -144,7 +144,7 @@ static int SDL_ConvertAudio(SDL_AudioCVT * cvt);
|
||||||
* 8 channels (7.1) layout: FL+FR+FC+LFE+BL+BR+SL+SR
|
* 8 channels (7.1) layout: FL+FR+FC+LFE+BL+BR+SL+SR
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if SDL_SSE3_INTRINSICS
|
#if defined(SDL_SSE3_INTRINSICS)
|
||||||
/* Convert from stereo to mono. Average left and right. */
|
/* Convert from stereo to mono. Average left and right. */
|
||||||
static void SDLCALL SDL_TARGETING("sse3") SDL_ConvertStereoToMono_SSE3(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
static void SDLCALL SDL_TARGETING("sse3") SDL_ConvertStereoToMono_SSE3(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
||||||
{
|
{
|
||||||
|
@ -181,7 +181,7 @@ static void SDLCALL SDL_TARGETING("sse3") SDL_ConvertStereoToMono_SSE3(SDL_Audio
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_SSE_INTRINSICS
|
#if defined(SDL_SSE_INTRINSICS)
|
||||||
/* Convert from mono to stereo. Duplicate to stereo left and right. */
|
/* Convert from mono to stereo. Duplicate to stereo left and right. */
|
||||||
static void SDLCALL SDL_TARGETING("sse") SDL_ConvertMonoToStereo_SSE(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
static void SDLCALL SDL_TARGETING("sse") SDL_ConvertMonoToStereo_SSE(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
||||||
{
|
{
|
||||||
|
@ -518,10 +518,12 @@ static void SDL_ResampleCVT_SRC(SDL_AudioCVT *cvt, const int chans, const SDL_Au
|
||||||
|
|
||||||
result = SRC_src_simple(&data, SRC_converter, chans); /* Simple API converts the whole buffer at once. No need for initialization. */
|
result = SRC_src_simple(&data, SRC_converter, chans); /* Simple API converts the whole buffer at once. No need for initialization. */
|
||||||
/* !!! FIXME: Handle library failures? */
|
/* !!! FIXME: Handle library failures? */
|
||||||
#ifdef DEBUG_CONVERT
|
#if DEBUG_CONVERT
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
SDL_Log("src_simple() failed: %s", SRC_src_strerror(result));
|
SDL_Log("src_simple() failed: %s", SRC_src_strerror(result));
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
(void)result;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cvt->len_cvt = data.output_frames_gen * framelen;
|
cvt->len_cvt = data.output_frames_gen * framelen;
|
||||||
|
@ -832,7 +834,7 @@ static int SDL_BuildAudioCVT(SDL_AudioCVT *cvt,
|
||||||
/* swap in some SIMD versions for a few of these. */
|
/* swap in some SIMD versions for a few of these. */
|
||||||
if (channel_converter == SDL_ConvertStereoToMono) {
|
if (channel_converter == SDL_ConvertStereoToMono) {
|
||||||
SDL_AudioFilter filter = NULL;
|
SDL_AudioFilter filter = NULL;
|
||||||
#if SDL_SSE3_INTRINSICS
|
#if defined(SDL_SSE3_INTRINSICS)
|
||||||
if (!filter && SDL_HasSSE3()) {
|
if (!filter && SDL_HasSSE3()) {
|
||||||
filter = SDL_ConvertStereoToMono_SSE3;
|
filter = SDL_ConvertStereoToMono_SSE3;
|
||||||
}
|
}
|
||||||
|
@ -842,7 +844,7 @@ static int SDL_BuildAudioCVT(SDL_AudioCVT *cvt,
|
||||||
}
|
}
|
||||||
} else if (channel_converter == SDL_ConvertMonoToStereo) {
|
} else if (channel_converter == SDL_ConvertMonoToStereo) {
|
||||||
SDL_AudioFilter filter = NULL;
|
SDL_AudioFilter filter = NULL;
|
||||||
#if SDL_SSE_INTRINSICS
|
#if defined(SDL_SSE_INTRINSICS)
|
||||||
if (!filter && SDL_HasSSE()) {
|
if (!filter && SDL_HasSSE()) {
|
||||||
filter = SDL_ConvertMonoToStereo_SSE;
|
filter = SDL_ConvertMonoToStereo_SSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
/* Get the name of the audio device we use for output */
|
/* Get the name of the audio device we use for output */
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_NETBSD || SDL_AUDIO_DRIVER_OSS || SDL_AUDIO_DRIVER_SUNAUDIO
|
#if defined(SDL_AUDIO_DRIVER_NETBSD) || defined(SDL_AUDIO_DRIVER_OSS)
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
|
@ -23,21 +23,20 @@
|
||||||
#include "SDL_audio_c.h"
|
#include "SDL_audio_c.h"
|
||||||
#include "SDL_audiocvt_c.h"
|
#include "SDL_audiocvt_c.h"
|
||||||
|
|
||||||
|
|
||||||
#ifndef SDL_CPUINFO_DISABLED
|
#ifndef SDL_CPUINFO_DISABLED
|
||||||
#if defined(__x86_64__) && SDL_SSE2_INTRINSICS
|
#if defined(__x86_64__) && defined(SDL_SSE2_INTRINSICS)
|
||||||
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* x86_64 guarantees SSE2. */
|
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* x86_64 guarantees SSE2. */
|
||||||
#elif __MACOS__ && SDL_SSE2_INTRINSICS
|
#elif defined(__MACOS__) && defined(SDL_SSE2_INTRINSICS)
|
||||||
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* macOS/Intel guarantees SSE2. */
|
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* macOS/Intel guarantees SSE2. */
|
||||||
#elif defined(__ARM_ARCH) && (__ARM_ARCH >= 8) && SDL_NEON_INTRINSICS
|
#elif defined(__ARM_ARCH) && (__ARM_ARCH >= 8) && defined(SDL_NEON_INTRINSICS)
|
||||||
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* ARMv8+ promise NEON. */
|
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* ARMv8+ promise NEON. */
|
||||||
#elif defined(__APPLE__) && defined(__ARM_ARCH) && (__ARM_ARCH >= 7) && SDL_NEON_INTRINSICS
|
#elif defined(__APPLE__) && defined(__ARM_ARCH) && (__ARM_ARCH >= 7) && defined(SDL_NEON_INTRINSICS)
|
||||||
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* All Apple ARMv7 chips promise NEON support. */
|
#define NEED_SCALAR_CONVERTER_FALLBACKS 0 /* All Apple ARMv7 chips promise NEON support. */
|
||||||
#endif
|
#endif
|
||||||
#endif /* !SDL_CPUINFO_DISABLED */
|
#endif /* !SDL_CPUINFO_DISABLED */
|
||||||
|
|
||||||
/* Set to zero if platform is guaranteed to use a SIMD codepath here. */
|
/* Set to zero if platform is guaranteed to use a SIMD codepath here. */
|
||||||
#if !defined(NEED_SCALAR_CONVERTER_FALLBACKS) || SDL_CPUINFO_DISABLED
|
#if !defined(NEED_SCALAR_CONVERTER_FALLBACKS) || defined(SDL_CPUINFO_DISABLED)
|
||||||
#define NEED_SCALAR_CONVERTER_FALLBACKS 1
|
#define NEED_SCALAR_CONVERTER_FALLBACKS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -227,7 +226,7 @@ static void SDLCALL SDL_Convert_F32_to_S32_Scalar(SDL_AudioCVT *cvt, SDL_AudioFo
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_SSE2_INTRINSICS
|
#if defined(SDL_SSE2_INTRINSICS)
|
||||||
static void SDLCALL SDL_TARGETING("sse2") SDL_Convert_S8_to_F32_SSE2(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
static void SDLCALL SDL_TARGETING("sse2") SDL_Convert_S8_to_F32_SSE2(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
||||||
{
|
{
|
||||||
const Sint8 *src = ((const Sint8 *)(cvt->buf + cvt->len_cvt)) - 1;
|
const Sint8 *src = ((const Sint8 *)(cvt->buf + cvt->len_cvt)) - 1;
|
||||||
|
@ -700,7 +699,7 @@ static void SDLCALL SDL_TARGETING("sse2") SDL_Convert_F32_to_S32_SSE2(SDL_AudioC
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_NEON_INTRINSICS
|
#ifdef SDL_NEON_INTRINSICS
|
||||||
static void SDLCALL SDL_Convert_S8_to_F32_NEON(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
static void SDLCALL SDL_Convert_S8_to_F32_NEON(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
||||||
{
|
{
|
||||||
const Sint8 *src = ((const Sint8 *)(cvt->buf + cvt->len_cvt)) - 1;
|
const Sint8 *src = ((const Sint8 *)(cvt->buf + cvt->len_cvt)) - 1;
|
||||||
|
@ -1176,14 +1175,14 @@ void SDL_ChooseAudioConverters(void)
|
||||||
SDL_Convert_F32_to_S32 = SDL_Convert_F32_to_S32_##fntype; \
|
SDL_Convert_F32_to_S32 = SDL_Convert_F32_to_S32_##fntype; \
|
||||||
converters_chosen = SDL_TRUE
|
converters_chosen = SDL_TRUE
|
||||||
|
|
||||||
#if SDL_SSE2_INTRINSICS
|
#if defined(SDL_SSE2_INTRINSICS)
|
||||||
if (SDL_HasSSE2()) {
|
if (SDL_HasSSE2()) {
|
||||||
SET_CONVERTER_FUNCS(SSE2);
|
SET_CONVERTER_FUNCS(SSE2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_NEON_INTRINSICS
|
#ifdef SDL_NEON_INTRINSICS
|
||||||
if (SDL_HasNEON()) {
|
if (SDL_HasNEON()) {
|
||||||
SET_CONVERTER_FUNCS(NEON);
|
SET_CONVERTER_FUNCS(NEON);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_AAUDIO
|
#ifdef SDL_AUDIO_DRIVER_AAUDIO
|
||||||
|
|
||||||
#include "../SDL_audio_c.h"
|
#include "../SDL_audio_c.h"
|
||||||
#include "../../core/android/SDL_android.h"
|
#include "../../core/android/SDL_android.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_ALSA
|
#ifdef SDL_AUDIO_DRIVER_ALSA
|
||||||
|
|
||||||
#ifndef SDL_ALSA_NON_BLOCKING
|
#ifndef SDL_ALSA_NON_BLOCKING
|
||||||
#define SDL_ALSA_NON_BLOCKING 0
|
#define SDL_ALSA_NON_BLOCKING 0
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_ANDROID
|
#ifdef SDL_AUDIO_DRIVER_ANDROID
|
||||||
|
|
||||||
/* Output audio to Android */
|
/* Output audio to Android */
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,10 @@
|
||||||
#include "../SDL_sysaudio.h"
|
#include "../SDL_sysaudio.h"
|
||||||
|
|
||||||
#if !defined(__IOS__)
|
#if !defined(__IOS__)
|
||||||
#define MACOSX_COREAUDIO 1
|
#define MACOSX_COREAUDIO
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
#include <CoreAudio/CoreAudio.h>
|
#include <CoreAudio/CoreAudio.h>
|
||||||
#else
|
#else
|
||||||
#import <AVFoundation/AVFoundation.h>
|
#import <AVFoundation/AVFoundation.h>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#include <AudioUnit/AudioUnit.h>
|
#include <AudioUnit/AudioUnit.h>
|
||||||
|
|
||||||
/* Things named "Master" were renamed to "Main" in macOS 12.0's SDK. */
|
/* Things named "Master" were renamed to "Main" in macOS 12.0's SDK. */
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
#include <AvailabilityMacros.h>
|
#include <AvailabilityMacros.h>
|
||||||
#ifndef MAC_OS_VERSION_12_0
|
#ifndef MAC_OS_VERSION_12_0
|
||||||
#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
|
#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
|
||||||
|
@ -62,7 +62,7 @@ struct SDL_PrivateAudioData
|
||||||
AudioStreamBasicDescription strdesc;
|
AudioStreamBasicDescription strdesc;
|
||||||
SDL_sem *ready_semaphore;
|
SDL_sem *ready_semaphore;
|
||||||
char *thread_error;
|
char *thread_error;
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
AudioDeviceID deviceID;
|
AudioDeviceID deviceID;
|
||||||
SDL_AtomicInt device_change_flag;
|
SDL_AtomicInt device_change_flag;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_COREAUDIO
|
#ifdef SDL_AUDIO_DRIVER_COREAUDIO
|
||||||
|
|
||||||
/* !!! FIXME: clean out some of the macro salsa in here. */
|
/* !!! FIXME: clean out some of the macro salsa in here. */
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
static const AudioObjectPropertyAddress devlist_address = {
|
static const AudioObjectPropertyAddress devlist_address = {
|
||||||
kAudioHardwarePropertyDevices,
|
kAudioHardwarePropertyDevices,
|
||||||
kAudioObjectPropertyScopeGlobal,
|
kAudioObjectPropertyScopeGlobal,
|
||||||
|
@ -287,7 +287,7 @@ static int open_capture_devices;
|
||||||
static int num_open_devices;
|
static int num_open_devices;
|
||||||
static SDL_AudioDevice **open_devices;
|
static SDL_AudioDevice **open_devices;
|
||||||
|
|
||||||
#if !MACOSX_COREAUDIO
|
#ifndef MACOSX_COREAUDIO
|
||||||
|
|
||||||
static BOOL session_active = NO;
|
static BOOL session_active = NO;
|
||||||
|
|
||||||
|
@ -625,7 +625,7 @@ static void inputCallback(void *inUserData, AudioQueueRef inAQ, AudioQueueBuffer
|
||||||
AudioQueueEnqueueBuffer(this->hidden->audioQueue, inBuffer, 0, NULL);
|
AudioQueueEnqueueBuffer(this->hidden->audioQueue, inBuffer, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
static const AudioObjectPropertyAddress alive_address = {
|
static const AudioObjectPropertyAddress alive_address = {
|
||||||
kAudioDevicePropertyDeviceIsAlive,
|
kAudioDevicePropertyDeviceIsAlive,
|
||||||
kAudioObjectPropertyScopeGlobal,
|
kAudioObjectPropertyScopeGlobal,
|
||||||
|
@ -679,7 +679,7 @@ static void COREAUDIO_CloseDevice(_THIS)
|
||||||
|
|
||||||
/* !!! FIXME: what does iOS do when a bluetooth audio device vanishes? Headphones unplugged? */
|
/* !!! FIXME: what does iOS do when a bluetooth audio device vanishes? Headphones unplugged? */
|
||||||
/* !!! FIXME: (we only do a "default" device on iOS right now...can we do more?) */
|
/* !!! FIXME: (we only do a "default" device on iOS right now...can we do more?) */
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
if (this->handle != NULL) { /* we don't register this listener for default devices. */
|
if (this->handle != NULL) { /* we don't register this listener for default devices. */
|
||||||
AudioObjectRemovePropertyListener(this->hidden->deviceID, &alive_address, device_unplugged, this);
|
AudioObjectRemovePropertyListener(this->hidden->deviceID, &alive_address, device_unplugged, this);
|
||||||
}
|
}
|
||||||
|
@ -704,7 +704,7 @@ static void COREAUDIO_CloseDevice(_THIS)
|
||||||
open_playback_devices--;
|
open_playback_devices--;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !MACOSX_COREAUDIO
|
#ifndef MACOSX_COREAUDIO
|
||||||
update_audio_session(this, SDL_FALSE, SDL_TRUE);
|
update_audio_session(this, SDL_FALSE, SDL_TRUE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -733,7 +733,7 @@ static void COREAUDIO_CloseDevice(_THIS)
|
||||||
SDL_free(this->hidden);
|
SDL_free(this->hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
static int prepare_device(_THIS)
|
static int prepare_device(_THIS)
|
||||||
{
|
{
|
||||||
void *handle = this->handle;
|
void *handle = this->handle;
|
||||||
|
@ -826,7 +826,7 @@ static int prepare_audioqueue(_THIS)
|
||||||
CHECK_RESULT("AudioQueueNewOutput");
|
CHECK_RESULT("AudioQueueNewOutput");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
if (!assign_device_to_audioqueue(this)) {
|
if (!assign_device_to_audioqueue(this)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -934,7 +934,7 @@ static int audioqueue_thread(void *arg)
|
||||||
SDL_AudioDevice *this = (SDL_AudioDevice *)arg;
|
SDL_AudioDevice *this = (SDL_AudioDevice *)arg;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
const AudioObjectPropertyAddress default_device_address = {
|
const AudioObjectPropertyAddress default_device_address = {
|
||||||
this->iscapture ? kAudioHardwarePropertyDefaultInputDevice : kAudioHardwarePropertyDefaultOutputDevice,
|
this->iscapture ? kAudioHardwarePropertyDefaultInputDevice : kAudioHardwarePropertyDefaultOutputDevice,
|
||||||
kAudioObjectPropertyScopeGlobal,
|
kAudioObjectPropertyScopeGlobal,
|
||||||
|
@ -962,7 +962,7 @@ static int audioqueue_thread(void *arg)
|
||||||
while (!SDL_AtomicGet(&this->shutdown)) {
|
while (!SDL_AtomicGet(&this->shutdown)) {
|
||||||
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.10, 1);
|
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.10, 1);
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
if ((this->handle == NULL) && SDL_AtomicGet(&this->hidden->device_change_flag)) {
|
if ((this->handle == NULL) && SDL_AtomicGet(&this->hidden->device_change_flag)) {
|
||||||
const AudioDeviceID prev_devid = this->hidden->deviceID;
|
const AudioDeviceID prev_devid = this->hidden->deviceID;
|
||||||
SDL_AtomicSet(&this->hidden->device_change_flag, 0);
|
SDL_AtomicSet(&this->hidden->device_change_flag, 0);
|
||||||
|
@ -995,7 +995,7 @@ static int audioqueue_thread(void *arg)
|
||||||
CFRunLoopRunInMode(kCFRunLoopDefaultMode, secs, 0);
|
CFRunLoopRunInMode(kCFRunLoopDefaultMode, secs, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
if (this->handle == NULL) {
|
if (this->handle == NULL) {
|
||||||
/* we don't care if this fails; we just won't change to new default devices, but we still otherwise function in this case. */
|
/* we don't care if this fails; we just won't change to new default devices, but we still otherwise function in this case. */
|
||||||
AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &default_device_address, default_device_changed, this);
|
AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &default_device_address, default_device_changed, this);
|
||||||
|
@ -1033,7 +1033,7 @@ static int COREAUDIO_OpenDevice(_THIS, const char *devname)
|
||||||
open_devices[num_open_devices++] = this;
|
open_devices[num_open_devices++] = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !MACOSX_COREAUDIO
|
#ifndef MACOSX_COREAUDIO
|
||||||
if (!update_audio_session(this, SDL_TRUE, SDL_TRUE)) {
|
if (!update_audio_session(this, SDL_TRUE, SDL_TRUE)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1102,7 +1102,7 @@ static int COREAUDIO_OpenDevice(_THIS, const char *devname)
|
||||||
strdesc->mBytesPerFrame = strdesc->mChannelsPerFrame * strdesc->mBitsPerChannel / 8;
|
strdesc->mBytesPerFrame = strdesc->mChannelsPerFrame * strdesc->mBitsPerChannel / 8;
|
||||||
strdesc->mBytesPerPacket = strdesc->mBytesPerFrame * strdesc->mFramesPerPacket;
|
strdesc->mBytesPerPacket = strdesc->mBytesPerFrame * strdesc->mFramesPerPacket;
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
if (!prepare_device(this)) {
|
if (!prepare_device(this)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1130,7 +1130,7 @@ static int COREAUDIO_OpenDevice(_THIS, const char *devname)
|
||||||
return (this->hidden->thread != NULL) ? 0 : -1;
|
return (this->hidden->thread != NULL) ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !MACOSX_COREAUDIO
|
#ifndef MACOSX_COREAUDIO
|
||||||
static int COREAUDIO_GetDefaultAudioInfo(char **name, SDL_AudioSpec *spec, int iscapture)
|
static int COREAUDIO_GetDefaultAudioInfo(char **name, SDL_AudioSpec *spec, int iscapture)
|
||||||
{
|
{
|
||||||
AVAudioSession *session = [AVAudioSession sharedInstance];
|
AVAudioSession *session = [AVAudioSession sharedInstance];
|
||||||
|
@ -1268,7 +1268,7 @@ static int COREAUDIO_GetDefaultAudioInfo(char **name, SDL_AudioSpec *spec, int i
|
||||||
|
|
||||||
static void COREAUDIO_Deinitialize(void)
|
static void COREAUDIO_Deinitialize(void)
|
||||||
{
|
{
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &devlist_address, device_list_changed, NULL);
|
AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &devlist_address, device_list_changed, NULL);
|
||||||
free_audio_device_list(&capture_devs);
|
free_audio_device_list(&capture_devs);
|
||||||
free_audio_device_list(&output_devs);
|
free_audio_device_list(&output_devs);
|
||||||
|
@ -1283,7 +1283,7 @@ static SDL_bool COREAUDIO_Init(SDL_AudioDriverImpl *impl)
|
||||||
impl->Deinitialize = COREAUDIO_Deinitialize;
|
impl->Deinitialize = COREAUDIO_Deinitialize;
|
||||||
impl->GetDefaultAudioInfo = COREAUDIO_GetDefaultAudioInfo;
|
impl->GetDefaultAudioInfo = COREAUDIO_GetDefaultAudioInfo;
|
||||||
|
|
||||||
#if MACOSX_COREAUDIO
|
#ifdef MACOSX_COREAUDIO
|
||||||
impl->DetectDevices = COREAUDIO_DetectDevices;
|
impl->DetectDevices = COREAUDIO_DetectDevices;
|
||||||
AudioObjectAddPropertyListener(kAudioObjectSystemObject, &devlist_address, device_list_changed, NULL);
|
AudioObjectAddPropertyListener(kAudioObjectSystemObject, &devlist_address, device_list_changed, NULL);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -20,14 +20,14 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_DSOUND
|
#ifdef SDL_AUDIO_DRIVER_DSOUND
|
||||||
|
|
||||||
/* Allow access to a raw mixing buffer */
|
/* Allow access to a raw mixing buffer */
|
||||||
|
|
||||||
#include "../SDL_audio_c.h"
|
#include "../SDL_audio_c.h"
|
||||||
#include "SDL_directsound.h"
|
#include "SDL_directsound.h"
|
||||||
#include <mmreg.h>
|
#include <mmreg.h>
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#ifdef HAVE_MMDEVICEAPI_H
|
||||||
#include "../../core/windows/SDL_immdevice.h"
|
#include "../../core/windows/SDL_immdevice.h"
|
||||||
#endif /* HAVE_MMDEVICEAPI_H */
|
#endif /* HAVE_MMDEVICEAPI_H */
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* For Vista+, we can enumerate DSound devices with IMMDevice */
|
/* For Vista+, we can enumerate DSound devices with IMMDevice */
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#ifdef HAVE_MMDEVICEAPI_H
|
||||||
static SDL_bool SupportsIMMDevice = SDL_FALSE;
|
static SDL_bool SupportsIMMDevice = SDL_FALSE;
|
||||||
#endif /* HAVE_MMDEVICEAPI_H */
|
#endif /* HAVE_MMDEVICEAPI_H */
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ static void DSOUND_FreeDeviceHandle(void *handle)
|
||||||
|
|
||||||
static int DSOUND_GetDefaultAudioInfo(char **name, SDL_AudioSpec *spec, int iscapture)
|
static int DSOUND_GetDefaultAudioInfo(char **name, SDL_AudioSpec *spec, int iscapture)
|
||||||
{
|
{
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#ifdef HAVE_MMDEVICEAPI_H
|
||||||
if (SupportsIMMDevice) {
|
if (SupportsIMMDevice) {
|
||||||
return SDL_IMMDevice_GetDefaultAudioInfo(name, spec, iscapture);
|
return SDL_IMMDevice_GetDefaultAudioInfo(name, spec, iscapture);
|
||||||
}
|
}
|
||||||
|
@ -186,14 +186,14 @@ static BOOL CALLBACK FindAllDevs(LPGUID guid, LPCWSTR desc, LPCWSTR module, LPVO
|
||||||
|
|
||||||
static void DSOUND_DetectDevices(void)
|
static void DSOUND_DetectDevices(void)
|
||||||
{
|
{
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#if defined(HAVE_MMDEVICEAPI_H)
|
||||||
if (SupportsIMMDevice) {
|
if (SupportsIMMDevice) {
|
||||||
SDL_IMMDevice_EnumerateEndpoints(SDL_TRUE);
|
SDL_IMMDevice_EnumerateEndpoints(SDL_TRUE);
|
||||||
} else {
|
} else {
|
||||||
#endif /* HAVE_MMDEVICEAPI_H */
|
#endif /* HAVE_MMDEVICEAPI_H */
|
||||||
pDirectSoundCaptureEnumerateW(FindAllDevs, (void *)((size_t)1));
|
pDirectSoundCaptureEnumerateW(FindAllDevs, (void *)((size_t)1));
|
||||||
pDirectSoundEnumerateW(FindAllDevs, (void *)((size_t)0));
|
pDirectSoundEnumerateW(FindAllDevs, (void *)((size_t)0));
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#if defined(HAVE_MMDEVICEAPI_H)
|
||||||
}
|
}
|
||||||
#endif /* HAVE_MMDEVICEAPI_H*/
|
#endif /* HAVE_MMDEVICEAPI_H*/
|
||||||
}
|
}
|
||||||
|
@ -609,7 +609,7 @@ static int DSOUND_OpenDevice(_THIS, const char *devname)
|
||||||
|
|
||||||
static void DSOUND_Deinitialize(void)
|
static void DSOUND_Deinitialize(void)
|
||||||
{
|
{
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#if defined(HAVE_MMDEVICEAPI_H)
|
||||||
if (SupportsIMMDevice) {
|
if (SupportsIMMDevice) {
|
||||||
SDL_IMMDevice_Quit();
|
SDL_IMMDevice_Quit();
|
||||||
SupportsIMMDevice = SDL_FALSE;
|
SupportsIMMDevice = SDL_FALSE;
|
||||||
|
@ -624,7 +624,7 @@ static SDL_bool DSOUND_Init(SDL_AudioDriverImpl *impl)
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_MMDEVICEAPI_H
|
#if defined(HAVE_MMDEVICEAPI_H)
|
||||||
SupportsIMMDevice = !(SDL_IMMDevice_Init() < 0);
|
SupportsIMMDevice = !(SDL_IMMDevice_Init() < 0);
|
||||||
#endif /* HAVE_MMDEVICEAPI_H */
|
#endif /* HAVE_MMDEVICEAPI_H */
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_DISK
|
#ifdef SDL_AUDIO_DRIVER_DISK
|
||||||
|
|
||||||
/* Output raw audio data to a file. */
|
/* Output raw audio data to a file. */
|
||||||
|
|
||||||
#if HAVE_STDIO_H
|
#ifdef HAVE_STDIO_H
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_OSS
|
#ifdef SDL_AUDIO_DRIVER_OSS
|
||||||
|
|
||||||
/* Allow access to a raw mixing buffer */
|
/* Allow access to a raw mixing buffer */
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_EMSCRIPTEN
|
#ifdef SDL_AUDIO_DRIVER_EMSCRIPTEN
|
||||||
|
|
||||||
#include "../SDL_audio_c.h"
|
#include "../SDL_audio_c.h"
|
||||||
#include "SDL_emscriptenaudio.h"
|
#include "SDL_emscriptenaudio.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_HAIKU
|
#ifdef SDL_AUDIO_DRIVER_HAIKU
|
||||||
|
|
||||||
/* Allow access to the audio stream on Haiku */
|
/* Allow access to the audio stream on Haiku */
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_JACK
|
#ifdef SDL_AUDIO_DRIVER_JACK
|
||||||
|
|
||||||
#include "../SDL_audio_c.h"
|
#include "../SDL_audio_c.h"
|
||||||
#include "SDL_jackaudio.h"
|
#include "SDL_jackaudio.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_NETBSD
|
#if defined(SDL_AUDIO_DRIVER_NETBSD)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Driver for native NetBSD audio(4).
|
* Driver for native NetBSD audio(4).
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_OPENSLES
|
#ifdef SDL_AUDIO_DRIVER_OPENSLES
|
||||||
|
|
||||||
/* For more discussion of low latency audio on Android, see this:
|
/* For more discussion of low latency audio on Android, see this:
|
||||||
https://googlesamples.github.io/android-audio-high-performance/guides/opensl_es.html
|
https://googlesamples.github.io/android-audio-high-performance/guides/opensl_es.html
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_PIPEWIRE
|
#ifdef SDL_AUDIO_DRIVER_PIPEWIRE
|
||||||
|
|
||||||
#include "SDL_pipewire.h"
|
#include "SDL_pipewire.h"
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_PSP
|
#ifdef SDL_AUDIO_DRIVER_PSP
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_PULSEAUDIO
|
#ifdef SDL_AUDIO_DRIVER_PULSEAUDIO
|
||||||
|
|
||||||
/* Allow access to a raw mixing buffer */
|
/* Allow access to a raw mixing buffer */
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_QNX
|
#ifdef SDL_AUDIO_DRIVER_QNX
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
|
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_SNDIO
|
#ifdef SDL_AUDIO_DRIVER_SNDIO
|
||||||
|
|
||||||
/* OpenBSD sndio target */
|
/* OpenBSD sndio target */
|
||||||
|
|
||||||
#if HAVE_STDIO_H
|
#ifdef HAVE_STDIO_H
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_VITA
|
#ifdef SDL_AUDIO_DRIVER_VITA
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_WASAPI
|
#ifdef SDL_AUDIO_DRIVER_WASAPI
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
#include "../../core/windows/SDL_immdevice.h"
|
#include "../../core/windows/SDL_immdevice.h"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
The code in SDL_wasapi.c is used by both standard Windows and WinRT builds
|
The code in SDL_wasapi.c is used by both standard Windows and WinRT builds
|
||||||
to deal with audio and calls into these functions. */
|
to deal with audio and calls into these functions. */
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_WASAPI && !defined(__WINRT__)
|
#if defined(SDL_AUDIO_DRIVER_WASAPI) && !defined(__WINRT__)
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
#include "../../core/windows/SDL_immdevice.h"
|
#include "../../core/windows/SDL_immdevice.h"
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
// is in SDL_wasapi_win32.c. The code in SDL_wasapi.c is used by both standard
|
// is in SDL_wasapi_win32.c. The code in SDL_wasapi.c is used by both standard
|
||||||
// Windows and WinRT builds to deal with audio and calls into these functions.
|
// Windows and WinRT builds to deal with audio and calls into these functions.
|
||||||
|
|
||||||
#if SDL_AUDIO_DRIVER_WASAPI && defined(__WINRT__)
|
#if defined(SDL_AUDIO_DRIVER_WASAPI) && defined(__WINRT__)
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <windows.ui.core.h>
|
#include <windows.ui.core.h>
|
||||||
|
|
|
@ -1050,7 +1050,7 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeSurfaceChanged)(JNIEnv *env, j
|
||||||
{
|
{
|
||||||
SDL_LockMutex(Android_ActivityMutex);
|
SDL_LockMutex(Android_ActivityMutex);
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL_EGL
|
#ifdef SDL_VIDEO_OPENGL_EGL
|
||||||
if (Android_Window) {
|
if (Android_Window) {
|
||||||
SDL_VideoDevice *_this = SDL_GetVideoDevice();
|
SDL_VideoDevice *_this = SDL_GetVideoDevice();
|
||||||
SDL_WindowData *data = Android_Window->driverdata;
|
SDL_WindowData *data = Android_Window->driverdata;
|
||||||
|
@ -1092,7 +1092,7 @@ retry:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL_EGL
|
#ifdef SDL_VIDEO_OPENGL_EGL
|
||||||
if (data->egl_surface != EGL_NO_SURFACE) {
|
if (data->egl_surface != EGL_NO_SURFACE) {
|
||||||
SDL_EGL_DestroySurface(_this, data->egl_surface);
|
SDL_EGL_DestroySurface(_this, data->egl_surface);
|
||||||
data->egl_surface = EGL_NO_SURFACE;
|
data->egl_surface = EGL_NO_SURFACE;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
#include <InterfaceKit.h>
|
#include <InterfaceKit.h>
|
||||||
#include <LocaleRoster.h>
|
#include <LocaleRoster.h>
|
||||||
#if SDL_VIDEO_OPENGL
|
#ifdef SDL_VIDEO_OPENGL
|
||||||
#include <OpenGLKit.h>
|
#include <OpenGLKit.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ class SDL_BApp : public BApplication
|
||||||
public:
|
public:
|
||||||
SDL_BApp(const char *signature) : BApplication(signature)
|
SDL_BApp(const char *signature) : BApplication(signature)
|
||||||
{
|
{
|
||||||
#if SDL_VIDEO_OPENGL
|
#ifdef SDL_VIDEO_OPENGL
|
||||||
_current_context = NULL;
|
_current_context = NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,7 @@ class SDL_BApp : public BApplication
|
||||||
return _window_map[winID];
|
return _window_map[winID];
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL
|
#ifdef SDL_VIDEO_OPENGL
|
||||||
BGLView *GetCurrentContext()
|
BGLView *GetCurrentContext()
|
||||||
{
|
{
|
||||||
return _current_context;
|
return _current_context;
|
||||||
|
@ -422,7 +422,7 @@ class SDL_BApp : public BApplication
|
||||||
/* Members */
|
/* Members */
|
||||||
std::vector<SDL_Window *> _window_map; /* Keeps track of SDL_Windows by index-id */
|
std::vector<SDL_Window *> _window_map; /* Keeps track of SDL_Windows by index-id */
|
||||||
|
|
||||||
#if SDL_VIDEO_OPENGL
|
#ifdef SDL_VIDEO_OPENGL
|
||||||
BGLView *_current_context;
|
BGLView *_current_context;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "SDL_sandbox.h"
|
#include "SDL_sandbox.h"
|
||||||
#include "../../stdlib/SDL_vacopy.h"
|
#include "../../stdlib/SDL_vacopy.h"
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
/* we never link directly to libdbus. */
|
/* we never link directly to libdbus. */
|
||||||
static const char *dbus_library = "libdbus-1.so.3";
|
static const char *dbus_library = "libdbus-1.so.3";
|
||||||
static void *dbus_handle = NULL;
|
static void *dbus_handle = NULL;
|
||||||
|
|
|
@ -124,7 +124,7 @@ static void SDL_EVDEV_sync_device(SDL_evdevlist_item *item);
|
||||||
static int SDL_EVDEV_device_removed(const char *dev_path);
|
static int SDL_EVDEV_device_removed(const char *dev_path);
|
||||||
|
|
||||||
static int SDL_EVDEV_device_added(const char *dev_path, int udev_class);
|
static int SDL_EVDEV_device_added(const char *dev_path, int udev_class);
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static void SDL_EVDEV_udev_callback(SDL_UDEV_deviceevent udev_event, int udev_class, const char *dev_path);
|
static void SDL_EVDEV_udev_callback(SDL_UDEV_deviceevent udev_event, int udev_class, const char *dev_path);
|
||||||
#endif /* SDL_USE_LIBUDEV */
|
#endif /* SDL_USE_LIBUDEV */
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ int SDL_EVDEV_Init(void)
|
||||||
return SDL_OutOfMemory();
|
return SDL_OutOfMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
if (SDL_UDEV_Init() < 0) {
|
if (SDL_UDEV_Init() < 0) {
|
||||||
SDL_free(_this);
|
SDL_free(_this);
|
||||||
_this = NULL;
|
_this = NULL;
|
||||||
|
@ -216,7 +216,7 @@ void SDL_EVDEV_Quit(void)
|
||||||
_this->ref_count -= 1;
|
_this->ref_count -= 1;
|
||||||
|
|
||||||
if (_this->ref_count < 1) {
|
if (_this->ref_count < 1) {
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
SDL_UDEV_DelCallback(SDL_EVDEV_udev_callback);
|
SDL_UDEV_DelCallback(SDL_EVDEV_udev_callback);
|
||||||
SDL_UDEV_Quit();
|
SDL_UDEV_Quit();
|
||||||
#endif /* SDL_USE_LIBUDEV */
|
#endif /* SDL_USE_LIBUDEV */
|
||||||
|
@ -237,7 +237,7 @@ void SDL_EVDEV_Quit(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static void SDL_EVDEV_udev_callback(SDL_UDEV_deviceevent udev_event, int udev_class,
|
static void SDL_EVDEV_udev_callback(SDL_UDEV_deviceevent udev_event, int udev_class,
|
||||||
const char *dev_path)
|
const char *dev_path)
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ void SDL_EVDEV_Poll(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
SDL_UDEV_Poll();
|
SDL_UDEV_Poll();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "SDL_evdev_capabilities.h"
|
#include "SDL_evdev_capabilities.h"
|
||||||
|
|
||||||
#if HAVE_LINUX_INPUT_H
|
#ifdef HAVE_LINUX_INPUT_H
|
||||||
|
|
||||||
/* missing defines in older Linux kernel headers */
|
/* missing defines in older Linux kernel headers */
|
||||||
#ifndef BTN_TRIGGER_HAPPY
|
#ifndef BTN_TRIGGER_HAPPY
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef SDL_evdev_capabilities_h_
|
#ifndef SDL_evdev_capabilities_h_
|
||||||
#define SDL_evdev_capabilities_h_
|
#define SDL_evdev_capabilities_h_
|
||||||
|
|
||||||
#if HAVE_LINUX_INPUT_H
|
#ifdef HAVE_LINUX_INPUT_H
|
||||||
|
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
#ifdef HAVE_IBUS_IBUS_H
|
#ifdef HAVE_IBUS_IBUS_H
|
||||||
#include "SDL_ibus.h"
|
#include "SDL_ibus.h"
|
||||||
#include "SDL_dbus.h"
|
#include "SDL_dbus.h"
|
||||||
|
|
||||||
|
#ifdef SDL_USE_LIBDBUS
|
||||||
|
|
||||||
#include "../../video/SDL_sysvideo.h"
|
#include "../../video/SDL_sysvideo.h"
|
||||||
#include "../../events/SDL_keyboard_c.h"
|
#include "../../events/SDL_keyboard_c.h"
|
||||||
|
|
||||||
|
@ -748,4 +751,6 @@ void SDL_IBus_PumpEvents(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // SDL_USE_LIBDBUS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#ifdef __LINUX__
|
#ifdef __LINUX__
|
||||||
|
|
||||||
#if !SDL_THREADS_DISABLED
|
#ifndef SDL_THREADS_DISABLED
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
#include "SDL_dbus.h"
|
#include "SDL_dbus.h"
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
|
|
||||||
/* d-bus queries to org.freedesktop.RealtimeKit1. */
|
/* d-bus queries to org.freedesktop.RealtimeKit1. */
|
||||||
#define RTKIT_DBUS_NODE "org.freedesktop.RealtimeKit1"
|
#define RTKIT_DBUS_NODE "org.freedesktop.RealtimeKit1"
|
||||||
|
@ -251,14 +251,14 @@ static SDL_bool rtkit_setpriority_realtime(pid_t thread, int rt_priority)
|
||||||
/* this is a public symbol, so it has to exist even if threads are disabled. */
|
/* this is a public symbol, so it has to exist even if threads are disabled. */
|
||||||
int SDL_LinuxSetThreadPriority(Sint64 threadID, int priority)
|
int SDL_LinuxSetThreadPriority(Sint64 threadID, int priority)
|
||||||
{
|
{
|
||||||
#if SDL_THREADS_DISABLED
|
#ifdef SDL_THREADS_DISABLED
|
||||||
return SDL_Unsupported();
|
return SDL_Unsupported();
|
||||||
#else
|
#else
|
||||||
if (setpriority(PRIO_PROCESS, (id_t)threadID, priority) == 0) {
|
if (setpriority(PRIO_PROCESS, (id_t)threadID, priority) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
/* Note that this fails you most likely:
|
/* Note that this fails you most likely:
|
||||||
* Have your process's scheduler incorrectly configured.
|
* Have your process's scheduler incorrectly configured.
|
||||||
See the requirements at:
|
See the requirements at:
|
||||||
|
@ -283,7 +283,7 @@ int SDL_LinuxSetThreadPriority(Sint64 threadID, int priority)
|
||||||
/* this is a public symbol, so it has to exist even if threads are disabled. */
|
/* this is a public symbol, so it has to exist even if threads are disabled. */
|
||||||
int SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy)
|
int SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy)
|
||||||
{
|
{
|
||||||
#if SDL_THREADS_DISABLED
|
#ifdef SDL_THREADS_DISABLED
|
||||||
return SDL_Unsupported();
|
return SDL_Unsupported();
|
||||||
#else
|
#else
|
||||||
int osPriority;
|
int osPriority;
|
||||||
|
@ -314,7 +314,7 @@ int SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int sc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
/* Note that this fails you most likely:
|
/* Note that this fails you most likely:
|
||||||
* Have your process's scheduler incorrectly configured.
|
* Have your process's scheduler incorrectly configured.
|
||||||
See the requirements at:
|
See the requirements at:
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef SDL_udev_h_
|
#ifndef SDL_udev_h_
|
||||||
#define SDL_udev_h_
|
#define SDL_udev_h_
|
||||||
|
|
||||||
#if HAVE_LIBUDEV_H && HAVE_LINUX_INPUT_H
|
#if defined(HAVE_LIBUDEV_H) && defined(HAVE_LINUX_INPUT_H)
|
||||||
|
|
||||||
#ifndef SDL_USE_LIBUDEV
|
#ifndef SDL_USE_LIBUDEV
|
||||||
#define SDL_USE_LIBUDEV 1
|
#define SDL_USE_LIBUDEV 1
|
||||||
|
|
|
@ -39,7 +39,7 @@ using namespace Windows::System;
|
||||||
using namespace Windows::UI::Core;
|
using namespace Windows::UI::Core;
|
||||||
using namespace Windows::UI::Input;
|
using namespace Windows::UI::Input;
|
||||||
|
|
||||||
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#if SDL_WINAPI_FAMILY_PHONE
|
||||||
using namespace Windows::Phone::UI::Input;
|
using namespace Windows::Phone::UI::Input;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ extern "C" {
|
||||||
#include "SDL_winrtapp_common.h"
|
#include "SDL_winrtapp_common.h"
|
||||||
#include "SDL_winrtapp_direct3d.h"
|
#include "SDL_winrtapp_direct3d.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED
|
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
||||||
/* Calling IDXGIDevice3::Trim on the active Direct3D 11.x device is necessary
|
/* Calling IDXGIDevice3::Trim on the active Direct3D 11.x device is necessary
|
||||||
* when Windows 8.1 apps are about to get suspended.
|
* when Windows 8.1 apps are about to get suspended.
|
||||||
*/
|
*/
|
||||||
|
@ -121,7 +121,7 @@ static void WINRT_ProcessWindowSizeChange() // TODO: Pass an SDL_Window-identify
|
||||||
int w = (int)SDL_floorf(data->coreWindow->Bounds.Width);
|
int w = (int)SDL_floorf(data->coreWindow->Bounds.Width);
|
||||||
int h = (int)SDL_floorf(data->coreWindow->Bounds.Height);
|
int h = (int)SDL_floorf(data->coreWindow->Bounds.Height);
|
||||||
|
|
||||||
#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) && (NTDDI_VERSION == NTDDI_WIN8)
|
#if SDL_WINAPI_FAMILY_PHONE && NTDDI_VERSION == NTDDI_WIN8
|
||||||
/* WinPhone 8.0 always keeps its native window size in portrait,
|
/* WinPhone 8.0 always keeps its native window size in portrait,
|
||||||
regardless of orientation. This changes in WinPhone 8.1,
|
regardless of orientation. This changes in WinPhone 8.1,
|
||||||
in which the native window's size changes along with
|
in which the native window's size changes along with
|
||||||
|
@ -222,7 +222,7 @@ void SDL_WinRTApp::OnOrientationChanged(Object ^ sender)
|
||||||
|
|
||||||
WINRT_ProcessWindowSizeChange();
|
WINRT_ProcessWindowSizeChange();
|
||||||
|
|
||||||
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#if SDL_WINAPI_FAMILY_PHONE
|
||||||
// HACK: Make sure that orientation changes
|
// HACK: Make sure that orientation changes
|
||||||
// lead to the Direct3D renderer's viewport getting updated:
|
// lead to the Direct3D renderer's viewport getting updated:
|
||||||
//
|
//
|
||||||
|
@ -268,7 +268,7 @@ void SDL_WinRTApp::SetWindow(CoreWindow ^ window)
|
||||||
window->Closed +=
|
window->Closed +=
|
||||||
ref new TypedEventHandler<CoreWindow ^, CoreWindowEventArgs ^>(this, &SDL_WinRTApp::OnWindowClosed);
|
ref new TypedEventHandler<CoreWindow ^, CoreWindowEventArgs ^>(this, &SDL_WinRTApp::OnWindowClosed);
|
||||||
|
|
||||||
#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
|
#if !SDL_WINAPI_FAMILY_PHONE
|
||||||
window->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0);
|
window->PointerCursor = ref new CoreCursor(CoreCursorType::Arrow, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ void SDL_WinRTApp::SetWindow(CoreWindow ^ window)
|
||||||
window->PointerWheelChanged +=
|
window->PointerWheelChanged +=
|
||||||
ref new TypedEventHandler<CoreWindow ^, PointerEventArgs ^>(this, &SDL_WinRTApp::OnPointerWheelChanged);
|
ref new TypedEventHandler<CoreWindow ^, PointerEventArgs ^>(this, &SDL_WinRTApp::OnPointerWheelChanged);
|
||||||
|
|
||||||
#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
|
#if !SDL_WINAPI_FAMILY_PHONE
|
||||||
// Retrieves relative-only mouse movements:
|
// Retrieves relative-only mouse movements:
|
||||||
Windows::Devices::Input::MouseDevice::GetForCurrentView()->MouseMoved +=
|
Windows::Devices::Input::MouseDevice::GetForCurrentView()->MouseMoved +=
|
||||||
ref new TypedEventHandler<MouseDevice ^, MouseEventArgs ^>(this, &SDL_WinRTApp::OnMouseMoved);
|
ref new TypedEventHandler<MouseDevice ^, MouseEventArgs ^>(this, &SDL_WinRTApp::OnMouseMoved);
|
||||||
|
@ -308,7 +308,7 @@ void SDL_WinRTApp::SetWindow(CoreWindow ^ window)
|
||||||
#if NTDDI_VERSION >= NTDDI_WIN10
|
#if NTDDI_VERSION >= NTDDI_WIN10
|
||||||
Windows::UI::Core::SystemNavigationManager::GetForCurrentView()->BackRequested +=
|
Windows::UI::Core::SystemNavigationManager::GetForCurrentView()->BackRequested +=
|
||||||
ref new EventHandler<BackRequestedEventArgs ^>(this, &SDL_WinRTApp::OnBackButtonPressed);
|
ref new EventHandler<BackRequestedEventArgs ^>(this, &SDL_WinRTApp::OnBackButtonPressed);
|
||||||
#elif WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#elif SDL_WINAPI_FAMILY_PHONE
|
||||||
HardwareButtons::BackPressed +=
|
HardwareButtons::BackPressed +=
|
||||||
ref new EventHandler<BackPressedEventArgs ^>(this, &SDL_WinRTApp::OnBackButtonPressed);
|
ref new EventHandler<BackPressedEventArgs ^>(this, &SDL_WinRTApp::OnBackButtonPressed);
|
||||||
#endif
|
#endif
|
||||||
|
@ -545,7 +545,7 @@ void SDL_WinRTApp::OnWindowActivated(CoreWindow ^ sender, WindowActivatedEventAr
|
||||||
Don't do it on WinPhone 8.0 though, as CoreWindow's 'PointerPosition'
|
Don't do it on WinPhone 8.0 though, as CoreWindow's 'PointerPosition'
|
||||||
property isn't available.
|
property isn't available.
|
||||||
*/
|
*/
|
||||||
#if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (NTDDI_VERSION >= NTDDI_WINBLUE)
|
#if !SDL_WINAPI_FAMILY_PHONE || NTDDI_VERSION >= NTDDI_WINBLUE
|
||||||
Point cursorPos = WINRT_TransformCursorPosition(window, sender->PointerPosition, TransformToSDLWindowSize);
|
Point cursorPos = WINRT_TransformCursorPosition(window, sender->PointerPosition, TransformToSDLWindowSize);
|
||||||
SDL_SendMouseMotion(0, window, 0, 0, cursorPos.X, cursorPos.Y);
|
SDL_SendMouseMotion(0, window, 0, 0, cursorPos.X, cursorPos.Y);
|
||||||
#endif
|
#endif
|
||||||
|
@ -618,7 +618,7 @@ void SDL_WinRTApp::OnSuspending(Platform::Object ^ sender, SuspendingEventArgs ^
|
||||||
// Let the Direct3D 11 renderer prepare for the app to be backgrounded.
|
// Let the Direct3D 11 renderer prepare for the app to be backgrounded.
|
||||||
// This is necessary for Windows 8.1, possibly elsewhere in the future.
|
// This is necessary for Windows 8.1, possibly elsewhere in the future.
|
||||||
// More details at: http://msdn.microsoft.com/en-us/library/windows/apps/Hh994929.aspx
|
// More details at: http://msdn.microsoft.com/en-us/library/windows/apps/Hh994929.aspx
|
||||||
#if SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED
|
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
||||||
if (WINRT_GlobalSDLWindow) {
|
if (WINRT_GlobalSDLWindow) {
|
||||||
SDL_Renderer *renderer = SDL_GetRenderer(WINRT_GlobalSDLWindow);
|
SDL_Renderer *renderer = SDL_GetRenderer(WINRT_GlobalSDLWindow);
|
||||||
if (renderer && (SDL_strcmp(renderer->info.name, "direct3d11") == 0)) {
|
if (renderer && (SDL_strcmp(renderer->info.name, "direct3d11") == 0)) {
|
||||||
|
@ -752,7 +752,7 @@ void SDL_WinRTApp::OnBackButtonPressed(Platform::Object ^ sender, Windows::UI::C
|
||||||
{
|
{
|
||||||
WINRT_OnBackButtonPressed(args);
|
WINRT_OnBackButtonPressed(args);
|
||||||
}
|
}
|
||||||
#elif WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#elif SDL_WINAPI_FAMILY_PHONE
|
||||||
void SDL_WinRTApp::OnBackButtonPressed(Platform::Object ^ sender, Windows::Phone::UI::Input::BackPressedEventArgs ^ args)
|
void SDL_WinRTApp::OnBackButtonPressed(Platform::Object ^ sender, Windows::Phone::UI::Input::BackPressedEventArgs ^ args)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,7 +77,7 @@ ref class SDL_WinRTApp sealed : public Windows::ApplicationModel::Core::IFramewo
|
||||||
|
|
||||||
#if NTDDI_VERSION >= NTDDI_WIN10
|
#if NTDDI_VERSION >= NTDDI_WIN10
|
||||||
void OnBackButtonPressed(Platform::Object ^ sender, Windows::UI::Core::BackRequestedEventArgs ^ args);
|
void OnBackButtonPressed(Platform::Object ^ sender, Windows::UI::Core::BackRequestedEventArgs ^ args);
|
||||||
#elif WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#elif SDL_WINAPI_FAMILY_PHONE
|
||||||
void OnBackButtonPressed(Platform::Object ^ sender, Windows::Phone::UI::Input::BackPressedEventArgs ^ args);
|
void OnBackButtonPressed(Platform::Object ^ sender, Windows::Phone::UI::Input::BackPressedEventArgs ^ args);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ static void WINRT_OnRenderViaXAML(_In_ Platform::Object ^ sender, _In_ Platform:
|
||||||
|
|
||||||
int SDL_WinRTInitXAMLApp(int (*mainFunction)(int, char **), void *backgroundPanelAsIInspectable)
|
int SDL_WinRTInitXAMLApp(int (*mainFunction)(int, char **), void *backgroundPanelAsIInspectable)
|
||||||
{
|
{
|
||||||
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#if SDL_WINAPI_FAMILY_PHONE
|
||||||
return SDL_SetError("XAML support is not yet available in Windows Phone.");
|
return SDL_SetError("XAML support is not yet available in Windows Phone.");
|
||||||
#else
|
#else
|
||||||
// Declare C++/CX namespaces:
|
// Declare C++/CX namespaces:
|
||||||
|
@ -142,5 +142,5 @@ int SDL_WinRTInitXAMLApp(int (*mainFunction)(int, char **), void *backgroundPane
|
||||||
|
|
||||||
// All done, for now.
|
// All done, for now.
|
||||||
return 0;
|
return 0;
|
||||||
#endif // WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP / else
|
#endif // SDL_WINAPI_FAMILY_PHONE
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#elif defined(__FreeBSD__) && defined(__powerpc__)
|
#elif defined(__FreeBSD__) && defined(__powerpc__)
|
||||||
#include <machine/cpu.h>
|
#include <machine/cpu.h>
|
||||||
#include <sys/auxv.h>
|
#include <sys/auxv.h>
|
||||||
#elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP
|
#elif defined(SDL_ALTIVEC_BLITTERS) && defined(HAVE_SETJMP)
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
#define CPU_CFG2_LSX (1 << 6)
|
#define CPU_CFG2_LSX (1 << 6)
|
||||||
#define CPU_CFG2_LASX (1 << 7)
|
#define CPU_CFG2_LASX (1 << 7)
|
||||||
|
|
||||||
#if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOS__ && !__OpenBSD__ && !__FreeBSD__
|
#if defined(SDL_ALTIVEC_BLITTERS) && defined(HAVE_SETJMP) && !defined(__MACOS__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
|
||||||
/* This is the brute force way of detecting instruction sets...
|
/* This is the brute force way of detecting instruction sets...
|
||||||
the idea is borrowed from the libmpeg2 library - thanks!
|
the idea is borrowed from the libmpeg2 library - thanks!
|
||||||
*/
|
*/
|
||||||
|
@ -335,7 +335,7 @@ static int CPU_haveAltiVec(void)
|
||||||
elf_aux_info(AT_HWCAP, &cpufeatures, sizeof(cpufeatures));
|
elf_aux_info(AT_HWCAP, &cpufeatures, sizeof(cpufeatures));
|
||||||
altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC;
|
altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC;
|
||||||
return altivec;
|
return altivec;
|
||||||
#elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP
|
#elif defined(SDL_ALTIVEC_BLITTERS) && defined(HAVE_SETJMP)
|
||||||
void (*handler)(int sig);
|
void (*handler)(int sig);
|
||||||
handler = signal(SIGILL, illegal_instruction);
|
handler = signal(SIGILL, illegal_instruction);
|
||||||
if (setjmp(jmpbuf) == 0) {
|
if (setjmp(jmpbuf) == 0) {
|
||||||
|
@ -451,9 +451,9 @@ static int CPU_haveNEON(void)
|
||||||
return IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE) != 0;
|
return IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE) != 0;
|
||||||
#elif (defined(__ARM_ARCH) && (__ARM_ARCH >= 8)) || defined(__aarch64__)
|
#elif (defined(__ARM_ARCH) && (__ARM_ARCH >= 8)) || defined(__aarch64__)
|
||||||
return 1; /* ARMv8 always has non-optional NEON support. */
|
return 1; /* ARMv8 always has non-optional NEON support. */
|
||||||
#elif __VITA__
|
#elif defined(__VITA__)
|
||||||
return 1;
|
return 1;
|
||||||
#elif __3DS__
|
#elif defined(__3DS__)
|
||||||
return 0;
|
return 0;
|
||||||
#elif defined(__APPLE__) && defined(__ARM_ARCH) && (__ARM_ARCH >= 7)
|
#elif defined(__APPLE__) && defined(__ARM_ARCH) && (__ARM_ARCH >= 7)
|
||||||
/* (note that sysctlbyname("hw.optional.neon") doesn't work!) */
|
/* (note that sysctlbyname("hw.optional.neon") doesn't work!) */
|
||||||
|
|
|
@ -408,6 +408,7 @@ static SDL_INLINE void *get_sdlapi_entry(const char *fname, const char *sym)
|
||||||
static void dynapi_warn(const char *msg)
|
static void dynapi_warn(const char *msg)
|
||||||
{
|
{
|
||||||
const char *caption = "SDL Dynamic API Failure!";
|
const char *caption = "SDL Dynamic API Failure!";
|
||||||
|
(void)caption;
|
||||||
/* SDL_ShowSimpleMessageBox() is a too heavy for here. */
|
/* SDL_ShowSimpleMessageBox() is a too heavy for here. */
|
||||||
#if (defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)) && !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
#if (defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)) && !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||||
MessageBoxA(NULL, msg, caption, MB_OK | MB_ICONERROR);
|
MessageBoxA(NULL, msg, caption, MB_OK | MB_ICONERROR);
|
||||||
|
@ -484,7 +485,7 @@ static void SDL_InitDynamicAPI(void)
|
||||||
/* SDL_AtomicLock calls SDL mutex functions to emulate if
|
/* SDL_AtomicLock calls SDL mutex functions to emulate if
|
||||||
SDL_ATOMIC_DISABLED, which we can't do here, so in such a
|
SDL_ATOMIC_DISABLED, which we can't do here, so in such a
|
||||||
configuration, you're on your own. */
|
configuration, you're on your own. */
|
||||||
#if !SDL_ATOMIC_DISABLED
|
#ifndef SDL_ATOMIC_DISABLED
|
||||||
static SDL_SpinLock lock = 0;
|
static SDL_SpinLock lock = 0;
|
||||||
SDL_AtomicLock_REAL(&lock);
|
SDL_AtomicLock_REAL(&lock);
|
||||||
#endif
|
#endif
|
||||||
|
@ -494,7 +495,7 @@ static void SDL_InitDynamicAPI(void)
|
||||||
already_initialized = SDL_TRUE;
|
already_initialized = SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_ATOMIC_DISABLED
|
#ifndef SDL_ATOMIC_DISABLED
|
||||||
SDL_AtomicUnlock_REAL(&lock);
|
SDL_AtomicUnlock_REAL(&lock);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* direct jump magic can use these, the rest needs special code. */
|
/* direct jump magic can use these, the rest needs special code. */
|
||||||
#if !SDL_DYNAPI_PROC_NO_VARARGS
|
#ifndef SDL_DYNAPI_PROC_NO_VARARGS
|
||||||
SDL_DYNAPI_PROC(void,SDL_Log,(SDL_PRINTF_FORMAT_STRING const char *a, ...),(a),)
|
SDL_DYNAPI_PROC(void,SDL_Log,(SDL_PRINTF_FORMAT_STRING const char *a, ...),(a),)
|
||||||
SDL_DYNAPI_PROC(void,SDL_LogCritical,(int a, SDL_PRINTF_FORMAT_STRING const char *b, ...),(a,b),)
|
SDL_DYNAPI_PROC(void,SDL_LogCritical,(int a, SDL_PRINTF_FORMAT_STRING const char *b, ...),(a,b),)
|
||||||
SDL_DYNAPI_PROC(void,SDL_LogDebug,(int a, SDL_PRINTF_FORMAT_STRING const char *b, ...),(a,b),)
|
SDL_DYNAPI_PROC(void,SDL_LogDebug,(int a, SDL_PRINTF_FORMAT_STRING const char *b, ...),(a,b),)
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
#include "SDL_events_c.h"
|
#include "SDL_events_c.h"
|
||||||
#include "../SDL_hints_c.h"
|
#include "../SDL_hints_c.h"
|
||||||
#include "../timer/SDL_timer_c.h"
|
#include "../timer/SDL_timer_c.h"
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
#include "../joystick/SDL_joystick_c.h"
|
#include "../joystick/SDL_joystick_c.h"
|
||||||
#endif
|
#endif
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
#include "../sensor/SDL_sensor_c.h"
|
#include "../sensor/SDL_sensor_c.h"
|
||||||
#endif
|
#endif
|
||||||
#include "../video/SDL_sysvideo.h"
|
#include "../video/SDL_sysvideo.h"
|
||||||
|
@ -98,7 +98,7 @@ static struct
|
||||||
SDL_SysWMEntry *wmmsg_free;
|
SDL_SysWMEntry *wmmsg_free;
|
||||||
} SDL_EventQ = { NULL, SDL_FALSE, { 0 }, 0, NULL, NULL, NULL, NULL, NULL };
|
} SDL_EventQ = { NULL, SDL_FALSE, { 0 }, 0, NULL, NULL, NULL, NULL, NULL };
|
||||||
|
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
|
|
||||||
static SDL_bool SDL_update_joysticks = SDL_TRUE;
|
static SDL_bool SDL_update_joysticks = SDL_TRUE;
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ static void SDLCALL SDL_AutoUpdateJoysticksChanged(void *userdata, const char *n
|
||||||
|
|
||||||
#endif /* !SDL_JOYSTICK_DISABLED */
|
#endif /* !SDL_JOYSTICK_DISABLED */
|
||||||
|
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
|
|
||||||
static SDL_bool SDL_update_sensors = SDL_TRUE;
|
static SDL_bool SDL_update_sensors = SDL_TRUE;
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ int SDL_StartEventLoop(void)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Create the lock and set ourselves active */
|
/* Create the lock and set ourselves active */
|
||||||
#if !SDL_THREADS_DISABLED
|
#ifndef SDL_THREADS_DISABLED
|
||||||
if (!SDL_EventQ.lock) {
|
if (!SDL_EventQ.lock) {
|
||||||
SDL_EventQ.lock = SDL_CreateMutex();
|
SDL_EventQ.lock = SDL_CreateMutex();
|
||||||
if (SDL_EventQ.lock == NULL) {
|
if (SDL_EventQ.lock == NULL) {
|
||||||
|
@ -852,14 +852,14 @@ static void SDL_PumpEventsInternal(SDL_bool push_sentinel)
|
||||||
_this->PumpEvents(_this);
|
_this->PumpEvents(_this);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
/* Check for joystick state change */
|
/* Check for joystick state change */
|
||||||
if (SDL_update_joysticks) {
|
if (SDL_update_joysticks) {
|
||||||
SDL_UpdateJoysticks();
|
SDL_UpdateJoysticks();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
/* Check for sensor state change */
|
/* Check for sensor state change */
|
||||||
if (SDL_update_sensors) {
|
if (SDL_update_sensors) {
|
||||||
SDL_UpdateSensors();
|
SDL_UpdateSensors();
|
||||||
|
@ -893,7 +893,7 @@ static SDL_bool SDL_events_need_periodic_poll(void)
|
||||||
{
|
{
|
||||||
SDL_bool need_periodic_poll = SDL_FALSE;
|
SDL_bool need_periodic_poll = SDL_FALSE;
|
||||||
|
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
need_periodic_poll = SDL_WasInit(SDL_INIT_JOYSTICK) && SDL_update_joysticks;
|
need_periodic_poll = SDL_WasInit(SDL_INIT_JOYSTICK) && SDL_update_joysticks;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -976,11 +976,11 @@ static SDL_bool SDL_events_need_polling(void)
|
||||||
{
|
{
|
||||||
SDL_bool need_polling = SDL_FALSE;
|
SDL_bool need_polling = SDL_FALSE;
|
||||||
|
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
need_polling = SDL_WasInit(SDL_INIT_JOYSTICK) && SDL_update_joysticks && SDL_JoysticksOpened();
|
need_polling = SDL_WasInit(SDL_INIT_JOYSTICK) && SDL_update_joysticks && SDL_JoysticksOpened();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
need_polling = need_polling ||
|
need_polling = need_polling ||
|
||||||
(SDL_WasInit(SDL_INIT_SENSOR) && SDL_update_sensors && SDL_SensorsOpened());
|
(SDL_WasInit(SDL_INIT_SENSOR) && SDL_update_sensors && SDL_SensorsOpened());
|
||||||
#endif
|
#endif
|
||||||
|
@ -1355,10 +1355,10 @@ int SDL_SendSystemThemeChangedEvent(void)
|
||||||
|
|
||||||
int SDL_InitEvents(void)
|
int SDL_InitEvents(void)
|
||||||
{
|
{
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
SDL_AddHintCallback(SDL_HINT_AUTO_UPDATE_JOYSTICKS, SDL_AutoUpdateJoysticksChanged, NULL);
|
SDL_AddHintCallback(SDL_HINT_AUTO_UPDATE_JOYSTICKS, SDL_AutoUpdateJoysticksChanged, NULL);
|
||||||
#endif
|
#endif
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
SDL_AddHintCallback(SDL_HINT_AUTO_UPDATE_SENSORS, SDL_AutoUpdateSensorsChanged, NULL);
|
SDL_AddHintCallback(SDL_HINT_AUTO_UPDATE_SENSORS, SDL_AutoUpdateSensorsChanged, NULL);
|
||||||
#endif
|
#endif
|
||||||
SDL_AddHintCallback(SDL_HINT_EVENT_LOGGING, SDL_EventLoggingChanged, NULL);
|
SDL_AddHintCallback(SDL_HINT_EVENT_LOGGING, SDL_EventLoggingChanged, NULL);
|
||||||
|
@ -1379,10 +1379,10 @@ void SDL_QuitEvents(void)
|
||||||
SDL_StopEventLoop();
|
SDL_StopEventLoop();
|
||||||
SDL_DelHintCallback(SDL_HINT_POLL_SENTINEL, SDL_PollSentinelChanged, NULL);
|
SDL_DelHintCallback(SDL_HINT_POLL_SENTINEL, SDL_PollSentinelChanged, NULL);
|
||||||
SDL_DelHintCallback(SDL_HINT_EVENT_LOGGING, SDL_EventLoggingChanged, NULL);
|
SDL_DelHintCallback(SDL_HINT_EVENT_LOGGING, SDL_EventLoggingChanged, NULL);
|
||||||
#if !SDL_JOYSTICK_DISABLED
|
#ifndef SDL_JOYSTICK_DISABLED
|
||||||
SDL_DelHintCallback(SDL_HINT_AUTO_UPDATE_JOYSTICKS, SDL_AutoUpdateJoysticksChanged, NULL);
|
SDL_DelHintCallback(SDL_HINT_AUTO_UPDATE_JOYSTICKS, SDL_AutoUpdateJoysticksChanged, NULL);
|
||||||
#endif
|
#endif
|
||||||
#if !SDL_SENSOR_DISABLED
|
#ifndef SDL_SENSOR_DISABLED
|
||||||
SDL_DelHintCallback(SDL_HINT_AUTO_UPDATE_SENSORS, SDL_AutoUpdateSensorsChanged, NULL);
|
SDL_DelHintCallback(SDL_HINT_AUTO_UPDATE_SENSORS, SDL_AutoUpdateSensorsChanged, NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_DRIVER_WAYLAND || SDL_VIDEO_DRIVER_X11
|
#if defined(SDL_VIDEO_DRIVER_WAYLAND) || defined(SDL_VIDEO_DRIVER_X11)
|
||||||
|
|
||||||
#include "SDL_keyboard_c.h"
|
#include "SDL_keyboard_c.h"
|
||||||
#include "SDL_scancode_tables_c.h"
|
#include "SDL_scancode_tables_c.h"
|
||||||
|
|
|
@ -82,7 +82,7 @@ static void SDL_EventSignal_Init(const int sig)
|
||||||
action.sa_handler = SDL_HandleSIG;
|
action.sa_handler = SDL_HandleSIG;
|
||||||
sigaction(sig, &action, NULL);
|
sigaction(sig, &action, NULL);
|
||||||
}
|
}
|
||||||
#elif HAVE_SIGNAL_H
|
#elif defined(HAVE_SIGNAL_H)
|
||||||
void (*ohandler)(int) = signal(sig, SDL_HandleSIG);
|
void (*ohandler)(int) = signal(sig, SDL_HandleSIG);
|
||||||
if (ohandler != SIG_DFL) {
|
if (ohandler != SIG_DFL) {
|
||||||
signal(sig, ohandler);
|
signal(sig, ohandler);
|
||||||
|
@ -99,7 +99,7 @@ static void SDL_EventSignal_Quit(const int sig)
|
||||||
action.sa_handler = SIG_DFL;
|
action.sa_handler = SIG_DFL;
|
||||||
sigaction(sig, &action, NULL);
|
sigaction(sig, &action, NULL);
|
||||||
}
|
}
|
||||||
#elif HAVE_SIGNAL_H
|
#elif defined(HAVE_SIGNAL_H)
|
||||||
void (*ohandler)(int) = signal(sig, SIG_DFL);
|
void (*ohandler)(int) = signal(sig, SIG_DFL);
|
||||||
if (ohandler != SDL_HandleSIG) {
|
if (ohandler != SDL_HandleSIG) {
|
||||||
signal(sig, ohandler);
|
signal(sig, ohandler);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_INPUT_LINUXEV || SDL_VIDEO_DRIVER_WAYLAND || SDL_VIDEO_DRIVER_X11
|
#if defined(SDL_INPUT_LINUXEV) || defined(SDL_VIDEO_DRIVER_WAYLAND) || defined(SDL_VIDEO_DRIVER_X11)
|
||||||
|
|
||||||
#include "SDL_scancode_tables_c.h"
|
#include "SDL_scancode_tables_c.h"
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_DRIVER_X11 || SDL_VIDEO_DRIVER_WAYLAND
|
#if defined(SDL_VIDEO_DRIVER_X11) || defined(SDL_VIDEO_DRIVER_WAYLAND)
|
||||||
#include "imKStoUCS.h"
|
#include "imKStoUCS.h"
|
||||||
|
|
||||||
static unsigned short const keysym_to_unicode_1a1_1ff[] = {
|
static unsigned short const keysym_to_unicode_1a1_1ff[] = {
|
||||||
|
|
|
@ -568,14 +568,14 @@ SDL_RWFromFile(const char *file, const char *mode)
|
||||||
rwops->write = windows_file_write;
|
rwops->write = windows_file_write;
|
||||||
rwops->close = windows_file_close;
|
rwops->close = windows_file_close;
|
||||||
rwops->type = SDL_RWOPS_WINFILE;
|
rwops->type = SDL_RWOPS_WINFILE;
|
||||||
#elif HAVE_STDIO_H
|
#elif defined(HAVE_STDIO_H)
|
||||||
{
|
{
|
||||||
#if __APPLE__ && !SDL_FILE_DISABLED // TODO: add dummy?
|
#if defined(__APPLE__) && !defined(SDL_FILE_DISABLED) // TODO: add dummy?
|
||||||
FILE *fp = SDL_OpenFPFromBundleOrFallback(file, mode);
|
FILE *fp = SDL_OpenFPFromBundleOrFallback(file, mode);
|
||||||
#elif __WINRT__
|
#elif defined(__WINRT__)
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
fopen_s(&fp, file, mode);
|
fopen_s(&fp, file, mode);
|
||||||
#elif __3DS__
|
#elif defined(__3DS__)
|
||||||
FILE *fp = N3DS_FileOpen(file, mode);
|
FILE *fp = N3DS_FileOpen(file, mode);
|
||||||
#else
|
#else
|
||||||
FILE *fp = fopen(file, mode);
|
FILE *fp = fopen(file, mode);
|
||||||
|
|
|
@ -66,7 +66,7 @@ SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType)
|
||||||
return path.c_str();
|
return path.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (NTDDI_VERSION > NTDDI_WIN8)
|
#if !SDL_WINAPI_FAMILY_PHONE || NTDDI_VERSION > NTDDI_WIN8
|
||||||
case SDL_WINRT_PATH_ROAMING_FOLDER:
|
case SDL_WINRT_PATH_ROAMING_FOLDER:
|
||||||
{
|
{
|
||||||
static wstring path;
|
static wstring path;
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
#define MAX_HAPTICS 32 /* It's doubtful someone has more then 32 evdev */
|
#define MAX_HAPTICS 32 /* It's doubtful someone has more then 32 evdev */
|
||||||
|
|
||||||
static int MaybeAddDevice(const char *path);
|
static int MaybeAddDevice(const char *path);
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static int MaybeRemoveDevice(const char *path);
|
static int MaybeRemoveDevice(const char *path);
|
||||||
static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath);
|
static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath);
|
||||||
#endif /* SDL_USE_LIBUDEV */
|
#endif /* SDL_USE_LIBUDEV */
|
||||||
|
@ -156,7 +156,7 @@ int SDL_SYS_HapticInit(void)
|
||||||
MaybeAddDevice(path);
|
MaybeAddDevice(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
if (SDL_UDEV_Init() < 0) {
|
if (SDL_UDEV_Init() < 0) {
|
||||||
return SDL_SetError("Could not initialize UDEV");
|
return SDL_SetError("Could not initialize UDEV");
|
||||||
}
|
}
|
||||||
|
@ -195,7 +195,7 @@ static SDL_hapticlist_item *HapticByDevIndex(int device_index)
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath)
|
static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath)
|
||||||
{
|
{
|
||||||
if (devpath == NULL || !(udev_class & SDL_UDEV_DEVICE_JOYSTICK)) {
|
if (devpath == NULL || !(udev_class & SDL_UDEV_DEVICE_JOYSTICK)) {
|
||||||
|
@ -285,7 +285,7 @@ static int MaybeAddDevice(const char *path)
|
||||||
return numhaptics;
|
return numhaptics;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static int MaybeRemoveDevice(const char *path)
|
static int MaybeRemoveDevice(const char *path)
|
||||||
{
|
{
|
||||||
SDL_hapticlist_item *item;
|
SDL_hapticlist_item *item;
|
||||||
|
@ -601,7 +601,7 @@ void SDL_SYS_HapticQuit(void)
|
||||||
SDL_free(item);
|
SDL_free(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
SDL_UDEV_DelCallback(haptic_udev_callback);
|
SDL_UDEV_DelCallback(haptic_udev_callback);
|
||||||
SDL_UDEV_Quit();
|
SDL_UDEV_Quit();
|
||||||
#endif /* SDL_USE_LIBUDEV */
|
#endif /* SDL_USE_LIBUDEV */
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "../SDL_syshaptic.h"
|
#include "../SDL_syshaptic.h"
|
||||||
|
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
|
|
||||||
#include "SDL_windowshaptic_c.h"
|
#include "SDL_windowshaptic_c.h"
|
||||||
#include "SDL_dinputhaptic_c.h"
|
#include "SDL_dinputhaptic_c.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_HAPTIC_DINPUT || SDL_HAPTIC_XINPUT
|
#if defined(SDL_HAPTIC_DINPUT) || defined(SDL_HAPTIC_XINPUT)
|
||||||
|
|
||||||
#include "../SDL_syshaptic.h"
|
#include "../SDL_syshaptic.h"
|
||||||
#include "../../joystick/SDL_sysjoystick.h" /* For the real SDL_Joystick */
|
#include "../../joystick/SDL_sysjoystick.h" /* For the real SDL_Joystick */
|
||||||
|
@ -155,7 +155,7 @@ int SDL_SYS_HapticOpen(SDL_Haptic *haptic)
|
||||||
*/
|
*/
|
||||||
int SDL_SYS_HapticMouse(void)
|
int SDL_SYS_HapticMouse(void)
|
||||||
{
|
{
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
SDL_hapticlist_item *item;
|
SDL_hapticlist_item *item;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
|
||||||
|
@ -178,12 +178,12 @@ int SDL_SYS_JoystickIsHaptic(SDL_Joystick *joystick)
|
||||||
if (joystick->driver != &SDL_WINDOWS_JoystickDriver) {
|
if (joystick->driver != &SDL_WINDOWS_JoystickDriver) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#if SDL_HAPTIC_XINPUT
|
#ifdef SDL_HAPTIC_XINPUT
|
||||||
if (joystick->hwdata->bXInputHaptic) {
|
if (joystick->hwdata->bXInputHaptic) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
if (joystick->hwdata->Capabilities.dwFlags & DIDC_FORCEFEEDBACK) {
|
if (joystick->hwdata->Capabilities.dwFlags & DIDC_FORCEFEEDBACK) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
struct haptic_hwdata
|
struct haptic_hwdata
|
||||||
{
|
{
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
LPDIRECTINPUTDEVICE8 device;
|
LPDIRECTINPUTDEVICE8 device;
|
||||||
#endif
|
#endif
|
||||||
DWORD axes[3]; /* Axes to use. */
|
DWORD axes[3]; /* Axes to use. */
|
||||||
|
@ -53,14 +53,14 @@ struct haptic_hwdata
|
||||||
/*
|
/*
|
||||||
* Haptic system effect data.
|
* Haptic system effect data.
|
||||||
*/
|
*/
|
||||||
#if SDL_HAPTIC_DINPUT || SDL_HAPTIC_XINPUT
|
#if defined(SDL_HAPTIC_DINPUT) || defined(SDL_HAPTIC_XINPUT)
|
||||||
struct haptic_hweffect
|
struct haptic_hweffect
|
||||||
{
|
{
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
DIEFFECT effect;
|
DIEFFECT effect;
|
||||||
LPDIRECTINPUTEFFECT ref;
|
LPDIRECTINPUTEFFECT ref;
|
||||||
#endif
|
#endif
|
||||||
#if SDL_HAPTIC_XINPUT
|
#ifdef SDL_HAPTIC_XINPUT
|
||||||
XINPUT_VIBRATION vibration;
|
XINPUT_VIBRATION vibration;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -73,7 +73,7 @@ typedef struct SDL_hapticlist_item
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
SDL_Haptic *haptic;
|
SDL_Haptic *haptic;
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
DIDEVICEINSTANCE instance;
|
DIDEVICEINSTANCE instance;
|
||||||
DIDEVCAPS capabilities;
|
DIDEVCAPS capabilities;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "../SDL_syshaptic.h"
|
#include "../SDL_syshaptic.h"
|
||||||
|
|
||||||
#if SDL_HAPTIC_XINPUT
|
#ifdef SDL_HAPTIC_XINPUT
|
||||||
|
|
||||||
#include "SDL_windowshaptic_c.h"
|
#include "SDL_windowshaptic_c.h"
|
||||||
#include "SDL_xinputhaptic_c.h"
|
#include "SDL_xinputhaptic_c.h"
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
#include "SDL_hidapi_c.h"
|
#include "SDL_hidapi_c.h"
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(__WINGDK__)
|
#if defined(__WIN32__) || defined(__WINGDK__)
|
||||||
#include "../core/windows/SDL_windows.h"
|
#include "../core/windows/SDL_windows.h"
|
||||||
|
@ -557,9 +557,9 @@ HIDAPI_ShutdownDiscovery()
|
||||||
#define read_thread PLATFORM_read_thread
|
#define read_thread PLATFORM_read_thread
|
||||||
|
|
||||||
#undef HIDAPI_H__
|
#undef HIDAPI_H__
|
||||||
#if __LINUX__
|
#ifdef __LINUX__
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static const SDL_UDEV_Symbols *udev_ctx = NULL;
|
static const SDL_UDEV_Symbols *udev_ctx = NULL;
|
||||||
|
|
||||||
#define udev_device_get_sysattr_value udev_ctx->udev_device_get_sysattr_value
|
#define udev_device_get_sysattr_value udev_ctx->udev_device_get_sysattr_value
|
||||||
|
@ -582,20 +582,20 @@ static const SDL_UDEV_Symbols *udev_ctx = NULL;
|
||||||
#define HAVE_PLATFORM_BACKEND 1
|
#define HAVE_PLATFORM_BACKEND 1
|
||||||
#endif /* SDL_USE_LIBUDEV */
|
#endif /* SDL_USE_LIBUDEV */
|
||||||
|
|
||||||
#elif __MACOS__
|
#elif defined(__MACOS__)
|
||||||
#include "mac/hid.c"
|
#include "mac/hid.c"
|
||||||
#define HAVE_PLATFORM_BACKEND 1
|
#define HAVE_PLATFORM_BACKEND 1
|
||||||
#define udev_ctx 1
|
#define udev_ctx 1
|
||||||
#elif __WINDOWS__ || __WINGDK__
|
#elif defined(__WINDOWS__) || defined(__WINGDK__)
|
||||||
#include "windows/hid.c"
|
#include "windows/hid.c"
|
||||||
#define HAVE_PLATFORM_BACKEND 1
|
#define HAVE_PLATFORM_BACKEND 1
|
||||||
#define udev_ctx 1
|
#define udev_ctx 1
|
||||||
#elif __ANDROID__
|
#elif defined(__ANDROID__)
|
||||||
/* The implementation for Android is in a separate .cpp file */
|
/* The implementation for Android is in a separate .cpp file */
|
||||||
#include "hidapi/hidapi.h"
|
#include "hidapi/hidapi.h"
|
||||||
#define HAVE_PLATFORM_BACKEND 1
|
#define HAVE_PLATFORM_BACKEND 1
|
||||||
#define udev_ctx 1
|
#define udev_ctx 1
|
||||||
#elif __IOS__ || __TVOS__
|
#elif defined(__IOS__) || defined(__TVOS__)
|
||||||
/* The implementation for iOS and tvOS is in a separate .m file */
|
/* The implementation for iOS and tvOS is in a separate .m file */
|
||||||
#include "hidapi/hidapi.h"
|
#include "hidapi/hidapi.h"
|
||||||
#define HAVE_PLATFORM_BACKEND 1
|
#define HAVE_PLATFORM_BACKEND 1
|
||||||
|
@ -899,7 +899,7 @@ struct hidapi_backend
|
||||||
const wchar_t *(*hid_error)(void *device);
|
const wchar_t *(*hid_error)(void *device);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#ifdef HAVE_PLATFORM_BACKEND
|
||||||
static const struct hidapi_backend PLATFORM_Backend = {
|
static const struct hidapi_backend PLATFORM_Backend = {
|
||||||
(void *)PLATFORM_hid_write,
|
(void *)PLATFORM_hid_write,
|
||||||
(void *)PLATFORM_hid_read_timeout,
|
(void *)PLATFORM_hid_read_timeout,
|
||||||
|
@ -916,7 +916,7 @@ static const struct hidapi_backend PLATFORM_Backend = {
|
||||||
};
|
};
|
||||||
#endif /* HAVE_PLATFORM_BACKEND */
|
#endif /* HAVE_PLATFORM_BACKEND */
|
||||||
|
|
||||||
#if HAVE_DRIVER_BACKEND
|
#ifdef HAVE_DRIVER_BACKEND
|
||||||
static const struct hidapi_backend DRIVER_Backend = {
|
static const struct hidapi_backend DRIVER_Backend = {
|
||||||
(void *)DRIVER_hid_write,
|
(void *)DRIVER_hid_write,
|
||||||
(void *)DRIVER_hid_read_timeout,
|
(void *)DRIVER_hid_read_timeout,
|
||||||
|
@ -958,7 +958,7 @@ struct SDL_hid_device_
|
||||||
};
|
};
|
||||||
static char device_magic;
|
static char device_magic;
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND || defined(HAVE_LIBUSB)
|
#if defined(HAVE_PLATFORM_BACKEND) || defined(HAVE_DRIVER_BACKEND) || defined(HAVE_LIBUSB)
|
||||||
|
|
||||||
static SDL_hid_device *
|
static SDL_hid_device *
|
||||||
CreateHIDDeviceWrapper(void *device, const struct hidapi_backend *backend)
|
CreateHIDDeviceWrapper(void *device, const struct hidapi_backend *backend)
|
||||||
|
@ -985,8 +985,8 @@ DeleteHIDDeviceWrapper(SDL_hid_device *device)
|
||||||
return retval; \
|
return retval; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
#if HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND || defined(HAVE_LIBUSB)
|
#if defined(HAVE_PLATFORM_BACKEND) || defined(HAVE_DRIVER_BACKEND) || defined(HAVE_LIBUSB)
|
||||||
|
|
||||||
#define COPY_IF_EXISTS(var) \
|
#define COPY_IF_EXISTS(var) \
|
||||||
if (pSrc->var != NULL) { \
|
if (pSrc->var != NULL) { \
|
||||||
|
@ -1134,9 +1134,9 @@ int SDL_hid_init(void)
|
||||||
}
|
}
|
||||||
#endif /* HAVE_LIBUSB */
|
#endif /* HAVE_LIBUSB */
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#ifdef HAVE_PLATFORM_BACKEND
|
||||||
++attempts;
|
++attempts;
|
||||||
#if __LINUX__
|
#ifdef __LINUX__
|
||||||
udev_ctx = SDL_UDEV_GetUdevSyms();
|
udev_ctx = SDL_UDEV_GetUdevSyms();
|
||||||
#endif /* __LINUX __ */
|
#endif /* __LINUX __ */
|
||||||
if (udev_ctx && PLATFORM_hid_init() == 0) {
|
if (udev_ctx && PLATFORM_hid_init() == 0) {
|
||||||
|
@ -1165,15 +1165,15 @@ int SDL_hid_exit(void)
|
||||||
}
|
}
|
||||||
SDL_hidapi_refcount = 0;
|
SDL_hidapi_refcount = 0;
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
HIDAPI_ShutdownDiscovery();
|
HIDAPI_ShutdownDiscovery();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#ifdef HAVE_PLATFORM_BACKEND
|
||||||
if (udev_ctx) {
|
if (udev_ctx) {
|
||||||
result |= PLATFORM_hid_exit();
|
result |= PLATFORM_hid_exit();
|
||||||
}
|
}
|
||||||
#if __LINUX__
|
#ifdef __LINUX__
|
||||||
SDL_UDEV_ReleaseUdevSyms();
|
SDL_UDEV_ReleaseUdevSyms();
|
||||||
#endif /* __LINUX __ */
|
#endif /* __LINUX __ */
|
||||||
#endif /* HAVE_PLATFORM_BACKEND */
|
#endif /* HAVE_PLATFORM_BACKEND */
|
||||||
|
@ -1195,7 +1195,7 @@ Uint32 SDL_hid_device_change_count(void)
|
||||||
{
|
{
|
||||||
Uint32 counter = 0;
|
Uint32 counter = 0;
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1215,16 +1215,16 @@ Uint32 SDL_hid_device_change_count(void)
|
||||||
|
|
||||||
struct SDL_hid_device_info *SDL_hid_enumerate(unsigned short vendor_id, unsigned short product_id)
|
struct SDL_hid_device_info *SDL_hid_enumerate(unsigned short vendor_id, unsigned short product_id)
|
||||||
{
|
{
|
||||||
#if HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND || defined(HAVE_LIBUSB)
|
#if defined(HAVE_PLATFORM_BACKEND) || defined(HAVE_DRIVER_BACKEND) || defined(HAVE_LIBUSB)
|
||||||
#ifdef HAVE_LIBUSB
|
#ifdef HAVE_LIBUSB
|
||||||
struct SDL_hid_device_info *usb_devs = NULL;
|
struct SDL_hid_device_info *usb_devs = NULL;
|
||||||
struct SDL_hid_device_info *usb_dev;
|
struct SDL_hid_device_info *usb_dev;
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_DRIVER_BACKEND
|
#ifdef HAVE_DRIVER_BACKEND
|
||||||
struct SDL_hid_device_info *driver_devs = NULL;
|
struct SDL_hid_device_info *driver_devs = NULL;
|
||||||
struct SDL_hid_device_info *driver_dev;
|
struct SDL_hid_device_info *driver_dev;
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#ifdef HAVE_PLATFORM_BACKEND
|
||||||
struct SDL_hid_device_info *raw_devs = NULL;
|
struct SDL_hid_device_info *raw_devs = NULL;
|
||||||
struct SDL_hid_device_info *raw_dev;
|
struct SDL_hid_device_info *raw_dev;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1280,7 +1280,7 @@ struct SDL_hid_device_info *SDL_hid_enumerate(unsigned short vendor_id, unsigned
|
||||||
}
|
}
|
||||||
#endif /* HAVE_DRIVER_BACKEND */
|
#endif /* HAVE_DRIVER_BACKEND */
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#ifdef HAVE_PLATFORM_BACKEND
|
||||||
if (udev_ctx) {
|
if (udev_ctx) {
|
||||||
raw_devs = PLATFORM_hid_enumerate(vendor_id, product_id);
|
raw_devs = PLATFORM_hid_enumerate(vendor_id, product_id);
|
||||||
#ifdef DEBUG_HIDAPI
|
#ifdef DEBUG_HIDAPI
|
||||||
|
@ -1368,14 +1368,14 @@ void SDL_hid_free_enumeration(struct SDL_hid_device_info *devs)
|
||||||
|
|
||||||
SDL_hid_device *SDL_hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number)
|
SDL_hid_device *SDL_hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number)
|
||||||
{
|
{
|
||||||
#if HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND || defined(HAVE_LIBUSB)
|
#if defined(HAVE_PLATFORM_BACKEND) || defined(HAVE_DRIVER_BACKEND) || defined(HAVE_LIBUSB)
|
||||||
void *pDevice = NULL;
|
void *pDevice = NULL;
|
||||||
|
|
||||||
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#if defined(HAVE_PLATFORM_BACKEND)
|
||||||
if (udev_ctx) {
|
if (udev_ctx) {
|
||||||
pDevice = PLATFORM_hid_open(vendor_id, product_id, serial_number);
|
pDevice = PLATFORM_hid_open(vendor_id, product_id, serial_number);
|
||||||
if (pDevice != NULL) {
|
if (pDevice != NULL) {
|
||||||
|
@ -1384,7 +1384,7 @@ SDL_hid_device *SDL_hid_open(unsigned short vendor_id, unsigned short product_id
|
||||||
}
|
}
|
||||||
#endif /* HAVE_PLATFORM_BACKEND */
|
#endif /* HAVE_PLATFORM_BACKEND */
|
||||||
|
|
||||||
#if HAVE_DRIVER_BACKEND
|
#ifdef HAVE_DRIVER_BACKEND
|
||||||
pDevice = DRIVER_hid_open(vendor_id, product_id, serial_number);
|
pDevice = DRIVER_hid_open(vendor_id, product_id, serial_number);
|
||||||
if (pDevice != NULL) {
|
if (pDevice != NULL) {
|
||||||
return CreateHIDDeviceWrapper(pDevice, &DRIVER_Backend);
|
return CreateHIDDeviceWrapper(pDevice, &DRIVER_Backend);
|
||||||
|
@ -1407,14 +1407,14 @@ SDL_hid_device *SDL_hid_open(unsigned short vendor_id, unsigned short product_id
|
||||||
|
|
||||||
SDL_hid_device *SDL_hid_open_path(const char *path, int bExclusive /* = false */)
|
SDL_hid_device *SDL_hid_open_path(const char *path, int bExclusive /* = false */)
|
||||||
{
|
{
|
||||||
#if HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND || defined(HAVE_LIBUSB)
|
#if defined(HAVE_PLATFORM_BACKEND) || defined(HAVE_DRIVER_BACKEND) || defined(HAVE_LIBUSB)
|
||||||
void *pDevice = NULL;
|
void *pDevice = NULL;
|
||||||
|
|
||||||
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
if (SDL_hidapi_refcount == 0 && SDL_hid_init() != 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_PLATFORM_BACKEND
|
#if defined(HAVE_PLATFORM_BACKEND)
|
||||||
if (udev_ctx) {
|
if (udev_ctx) {
|
||||||
pDevice = PLATFORM_hid_open_path(path, bExclusive);
|
pDevice = PLATFORM_hid_open_path(path, bExclusive);
|
||||||
if (pDevice != NULL) {
|
if (pDevice != NULL) {
|
||||||
|
@ -1423,7 +1423,7 @@ SDL_hid_device *SDL_hid_open_path(const char *path, int bExclusive /* = false */
|
||||||
}
|
}
|
||||||
#endif /* HAVE_PLATFORM_BACKEND */
|
#endif /* HAVE_PLATFORM_BACKEND */
|
||||||
|
|
||||||
#if HAVE_DRIVER_BACKEND
|
#ifdef HAVE_DRIVER_BACKEND
|
||||||
pDevice = DRIVER_hid_open_path(path, bExclusive);
|
pDevice = DRIVER_hid_open_path(path, bExclusive);
|
||||||
if (pDevice != NULL) {
|
if (pDevice != NULL) {
|
||||||
return CreateHIDDeviceWrapper(pDevice, &DRIVER_Backend);
|
return CreateHIDDeviceWrapper(pDevice, &DRIVER_Backend);
|
||||||
|
@ -1585,7 +1585,7 @@ int SDL_hid_get_indexed_string(SDL_hid_device *device, int string_index, wchar_t
|
||||||
|
|
||||||
void SDL_hid_ble_scan(SDL_bool active)
|
void SDL_hid_ble_scan(SDL_bool active)
|
||||||
{
|
{
|
||||||
#if !SDL_HIDAPI_DISABLED && (__IOS__ || __TVOS__)
|
#if !defined(SDL_HIDAPI_DISABLED) && (defined(__IOS__) || defined(__TVOS__))
|
||||||
hid_ble_scan(active);
|
hid_ble_scan(active);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
#define HID_DEVICE_MANAGER_JAVA_INTERFACE(function) CONCAT1(SDL_JAVA_PREFIX, HIDDeviceManager, function)
|
#define HID_DEVICE_MANAGER_JAVA_INTERFACE(function) CONCAT1(SDL_JAVA_PREFIX, HIDDeviceManager, function)
|
||||||
|
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
|
|
||||||
#include "../../core/android/SDL_android.h"
|
#include "../../core/android/SDL_android.h"
|
||||||
|
|
||||||
|
@ -744,7 +744,7 @@ public:
|
||||||
env->CallVoidMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerClose, m_nId );
|
env->CallVoidMethod( g_HIDDeviceManagerCallbackHandler, g_midHIDDeviceManagerClose, m_nId );
|
||||||
ExceptionCheck( env, "Close" );
|
ExceptionCheck( env, "Close" );
|
||||||
}
|
}
|
||||||
|
|
||||||
hid_mutex_guard dataLock( &m_dataLock );
|
hid_mutex_guard dataLock( &m_dataLock );
|
||||||
m_vecData.clear();
|
m_vecData.clear();
|
||||||
|
|
||||||
|
@ -1139,7 +1139,7 @@ HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path, int bEx
|
||||||
hid_mutex_guard l( &g_DevicesMutex );
|
hid_mutex_guard l( &g_DevicesMutex );
|
||||||
for ( hid_device_ref<CHIDDevice> pCurr = g_Devices; pCurr; pCurr = pCurr->next )
|
for ( hid_device_ref<CHIDDevice> pCurr = g_Devices; pCurr; pCurr = pCurr->next )
|
||||||
{
|
{
|
||||||
if ( SDL_strcmp( pCurr->GetDeviceInfo()->path, path ) == 0 )
|
if ( SDL_strcmp( pCurr->GetDeviceInfo()->path, path ) == 0 )
|
||||||
{
|
{
|
||||||
hid_device *pValue = pCurr->GetDevice();
|
hid_device *pValue = pCurr->GetDevice();
|
||||||
if ( pValue )
|
if ( pValue )
|
||||||
|
|
|
@ -406,7 +406,7 @@ namespace NAMESPACE {
|
||||||
*/
|
*/
|
||||||
HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *dev);
|
HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *dev);
|
||||||
|
|
||||||
#if __IOS__ || __TVOS__
|
#if defined(__IOS__) || defined(__TVOS__)
|
||||||
HID_API_EXPORT void HID_API_CALL hid_ble_scan(int active);
|
HID_API_EXPORT void HID_API_CALL hid_ble_scan(int active);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if !SDL_HIDAPI_DISABLED
|
#ifndef SDL_HIDAPI_DISABLED
|
||||||
|
|
||||||
|
|
||||||
#define hid_init PLATFORM_hid_init
|
#define hid_init PLATFORM_hid_init
|
||||||
|
@ -130,7 +130,7 @@ static void RingBuffer_init( RingBuffer *this )
|
||||||
this->_last = 0;
|
this->_last = 0;
|
||||||
pthread_mutex_init( &this->accessLock, 0 );
|
pthread_mutex_init( &this->accessLock, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool RingBuffer_write( RingBuffer *this, const uint8_t *src )
|
static bool RingBuffer_write( RingBuffer *this, const uint8_t *src )
|
||||||
{
|
{
|
||||||
pthread_mutex_lock( &this->accessLock );
|
pthread_mutex_lock( &this->accessLock );
|
||||||
|
@ -289,7 +289,7 @@ typedef enum
|
||||||
{
|
{
|
||||||
static uint64_t s_unLastUpdateTick = 0;
|
static uint64_t s_unLastUpdateTick = 0;
|
||||||
static mach_timebase_info_data_t s_timebase_info;
|
static mach_timebase_info_data_t s_timebase_info;
|
||||||
|
|
||||||
if ( self.centralManager == nil )
|
if ( self.centralManager == nil )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -299,11 +299,11 @@ typedef enum
|
||||||
{
|
{
|
||||||
mach_timebase_info( &s_timebase_info );
|
mach_timebase_info( &s_timebase_info );
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t ticksNow = mach_approximate_time();
|
uint64_t ticksNow = mach_approximate_time();
|
||||||
if ( !bForce && ( ( (ticksNow - s_unLastUpdateTick) * s_timebase_info.numer ) / s_timebase_info.denom ) < (5ull * NSEC_PER_SEC) )
|
if ( !bForce && ( ( (ticksNow - s_unLastUpdateTick) * s_timebase_info.numer ) / s_timebase_info.denom ) < (5ull * NSEC_PER_SEC) )
|
||||||
return (int)self.deviceMap.count;
|
return (int)self.deviceMap.count;
|
||||||
|
|
||||||
// we can see previously connected BLE peripherals but can't connect until the CBCentralManager
|
// we can see previously connected BLE peripherals but can't connect until the CBCentralManager
|
||||||
// is fully powered up - only do work when we are in that state
|
// is fully powered up - only do work when we are in that state
|
||||||
if ( self.centralManager.state != CBManagerStatePoweredOn )
|
if ( self.centralManager.state != CBManagerStatePoweredOn )
|
||||||
|
@ -311,7 +311,7 @@ typedef enum
|
||||||
|
|
||||||
// only update our last-check-time if we actually did work, otherwise there can be a long delay during initial power-up
|
// only update our last-check-time if we actually did work, otherwise there can be a long delay during initial power-up
|
||||||
s_unLastUpdateTick = mach_approximate_time();
|
s_unLastUpdateTick = mach_approximate_time();
|
||||||
|
|
||||||
// if a pair is in-flight, the central manager may still give it back via retrieveConnected... and
|
// if a pair is in-flight, the central manager may still give it back via retrieveConnected... and
|
||||||
// cause the SDL layer to attempt to initialize it while some of its endpoints haven't yet been established
|
// cause the SDL layer to attempt to initialize it while some of its endpoints haven't yet been established
|
||||||
if ( self.nPendingPairs > 0 )
|
if ( self.nPendingPairs > 0 )
|
||||||
|
@ -323,7 +323,7 @@ typedef enum
|
||||||
// we already know this peripheral
|
// we already know this peripheral
|
||||||
if ( [self.deviceMap objectForKey: peripheral] != nil )
|
if ( [self.deviceMap objectForKey: peripheral] != nil )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
NSLog( @"connected peripheral: %@", peripheral );
|
NSLog( @"connected peripheral: %@", peripheral );
|
||||||
if ( [peripheral.name isEqualToString:@"SteamController"] )
|
if ( [peripheral.name isEqualToString:@"SteamController"] )
|
||||||
{
|
{
|
||||||
|
@ -391,7 +391,7 @@ typedef enum
|
||||||
case CBCentralManagerStatePoweredOn:
|
case CBCentralManagerStatePoweredOn:
|
||||||
{
|
{
|
||||||
NSLog( @"CoreBluetooth BLE hardware is powered on and ready" );
|
NSLog( @"CoreBluetooth BLE hardware is powered on and ready" );
|
||||||
|
|
||||||
// at startup, if we have no already attached peripherals, do a 20s scan for new unpaired devices,
|
// at startup, if we have no already attached peripherals, do a 20s scan for new unpaired devices,
|
||||||
// otherwise callers should occaisionally do additional scans. we don't want to continuously be
|
// otherwise callers should occaisionally do additional scans. we don't want to continuously be
|
||||||
// scanning because it drains battery, causes other nearby people to have a hard time pairing their
|
// scanning because it drains battery, causes other nearby people to have a hard time pairing their
|
||||||
|
@ -407,23 +407,23 @@ typedef enum
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CBCentralManagerStatePoweredOff:
|
case CBCentralManagerStatePoweredOff:
|
||||||
NSLog( @"CoreBluetooth BLE hardware is powered off" );
|
NSLog( @"CoreBluetooth BLE hardware is powered off" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CBCentralManagerStateUnauthorized:
|
case CBCentralManagerStateUnauthorized:
|
||||||
NSLog( @"CoreBluetooth BLE state is unauthorized" );
|
NSLog( @"CoreBluetooth BLE state is unauthorized" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CBCentralManagerStateUnknown:
|
case CBCentralManagerStateUnknown:
|
||||||
NSLog( @"CoreBluetooth BLE state is unknown" );
|
NSLog( @"CoreBluetooth BLE state is unknown" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CBCentralManagerStateUnsupported:
|
case CBCentralManagerStateUnsupported:
|
||||||
NSLog( @"CoreBluetooth BLE hardware is unsupported on this platform" );
|
NSLog( @"CoreBluetooth BLE hardware is unsupported on this platform" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CBCentralManagerStateResetting:
|
case CBCentralManagerStateResetting:
|
||||||
NSLog( @"CoreBluetooth BLE manager is resetting" );
|
NSLog( @"CoreBluetooth BLE manager is resetting" );
|
||||||
break;
|
break;
|
||||||
|
@ -448,7 +448,7 @@ typedef enum
|
||||||
{
|
{
|
||||||
NSString *localName = [advertisementData objectForKey:CBAdvertisementDataLocalNameKey];
|
NSString *localName = [advertisementData objectForKey:CBAdvertisementDataLocalNameKey];
|
||||||
NSString *log = [NSString stringWithFormat:@"Found '%@'", localName];
|
NSString *log = [NSString stringWithFormat:@"Found '%@'", localName];
|
||||||
|
|
||||||
if ( [localName isEqualToString:@"SteamController"] )
|
if ( [localName isEqualToString:@"SteamController"] )
|
||||||
{
|
{
|
||||||
NSLog( @"%@ : %@ - %@", log, peripheral, advertisementData );
|
NSLog( @"%@ : %@ - %@", log, peripheral, advertisementData );
|
||||||
|
@ -551,7 +551,7 @@ static void process_pending_events()
|
||||||
{
|
{
|
||||||
#if FEATURE_REPORT_LOGGING
|
#if FEATURE_REPORT_LOGGING
|
||||||
uint8_t *reportBytes = (uint8_t *)report;
|
uint8_t *reportBytes = (uint8_t *)report;
|
||||||
|
|
||||||
NSLog( @"HIDBLE:send_feature_report (%02zu/19) [%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x]", GetBluetoothSegmentSize( report->segment ),
|
NSLog( @"HIDBLE:send_feature_report (%02zu/19) [%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x]", GetBluetoothSegmentSize( report->segment ),
|
||||||
reportBytes[1], reportBytes[2], reportBytes[3], reportBytes[4], reportBytes[5], reportBytes[6],
|
reportBytes[1], reportBytes[2], reportBytes[3], reportBytes[4], reportBytes[5], reportBytes[6],
|
||||||
reportBytes[7], reportBytes[8], reportBytes[9], reportBytes[10], reportBytes[11], reportBytes[12],
|
reportBytes[7], reportBytes[8], reportBytes[9], reportBytes[10], reportBytes[11], reportBytes[12],
|
||||||
|
@ -567,7 +567,7 @@ static void process_pending_events()
|
||||||
// fire-and-forget - we are going to not wait for the response here because all Steam Controller BLE send_feature_report's are ignored,
|
// fire-and-forget - we are going to not wait for the response here because all Steam Controller BLE send_feature_report's are ignored,
|
||||||
// except errors.
|
// except errors.
|
||||||
[_bleSteamController writeValue:[NSData dataWithBytes:&report->segment length:sendSize] forCharacteristic:_bleCharacteristicReport type:CBCharacteristicWriteWithResponse];
|
[_bleSteamController writeValue:[NSData dataWithBytes:&report->segment length:sendSize] forCharacteristic:_bleCharacteristicReport type:CBCharacteristicWriteWithResponse];
|
||||||
|
|
||||||
// pretend we received a result anybody cares about
|
// pretend we received a result anybody cares about
|
||||||
return 19;
|
return 19;
|
||||||
|
|
||||||
|
@ -577,18 +577,18 @@ static void process_pending_events()
|
||||||
_waitStateForWriteFeatureReport = BLEDeviceWaitState_Waiting;
|
_waitStateForWriteFeatureReport = BLEDeviceWaitState_Waiting;
|
||||||
[_bleSteamController writeValue:[NSData dataWithBytes:&report->segment length:sendSize
|
[_bleSteamController writeValue:[NSData dataWithBytes:&report->segment length:sendSize
|
||||||
] forCharacteristic:_bleCharacteristicReport type:CBCharacteristicWriteWithResponse];
|
] forCharacteristic:_bleCharacteristicReport type:CBCharacteristicWriteWithResponse];
|
||||||
|
|
||||||
while ( _waitStateForWriteFeatureReport == BLEDeviceWaitState_Waiting )
|
while ( _waitStateForWriteFeatureReport == BLEDeviceWaitState_Waiting )
|
||||||
{
|
{
|
||||||
process_pending_events();
|
process_pending_events();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( _waitStateForWriteFeatureReport == BLEDeviceWaitState_Error )
|
if ( _waitStateForWriteFeatureReport == BLEDeviceWaitState_Error )
|
||||||
{
|
{
|
||||||
_waitStateForWriteFeatureReport = BLEDeviceWaitState_None;
|
_waitStateForWriteFeatureReport = BLEDeviceWaitState_None;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_waitStateForWriteFeatureReport = BLEDeviceWaitState_None;
|
_waitStateForWriteFeatureReport = BLEDeviceWaitState_None;
|
||||||
return 19;
|
return 19;
|
||||||
#endif
|
#endif
|
||||||
|
@ -598,20 +598,20 @@ static void process_pending_events()
|
||||||
{
|
{
|
||||||
_waitStateForReadFeatureReport = BLEDeviceWaitState_Waiting;
|
_waitStateForReadFeatureReport = BLEDeviceWaitState_Waiting;
|
||||||
[_bleSteamController readValueForCharacteristic:_bleCharacteristicReport];
|
[_bleSteamController readValueForCharacteristic:_bleCharacteristicReport];
|
||||||
|
|
||||||
while ( _waitStateForReadFeatureReport == BLEDeviceWaitState_Waiting )
|
while ( _waitStateForReadFeatureReport == BLEDeviceWaitState_Waiting )
|
||||||
process_pending_events();
|
process_pending_events();
|
||||||
|
|
||||||
if ( _waitStateForReadFeatureReport == BLEDeviceWaitState_Error )
|
if ( _waitStateForReadFeatureReport == BLEDeviceWaitState_Error )
|
||||||
{
|
{
|
||||||
_waitStateForReadFeatureReport = BLEDeviceWaitState_None;
|
_waitStateForReadFeatureReport = BLEDeviceWaitState_None;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy( buffer, _featureReport, sizeof(_featureReport) );
|
memcpy( buffer, _featureReport, sizeof(_featureReport) );
|
||||||
|
|
||||||
_waitStateForReadFeatureReport = BLEDeviceWaitState_None;
|
_waitStateForReadFeatureReport = BLEDeviceWaitState_None;
|
||||||
|
|
||||||
#if FEATURE_REPORT_LOGGING
|
#if FEATURE_REPORT_LOGGING
|
||||||
NSLog( @"HIDBLE:get_feature_report (19) [%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x]",
|
NSLog( @"HIDBLE:get_feature_report (19) [%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x]",
|
||||||
buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6],
|
buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6],
|
||||||
|
@ -656,7 +656,7 @@ static void process_pending_events()
|
||||||
for (CBCharacteristic *aChar in service.characteristics)
|
for (CBCharacteristic *aChar in service.characteristics)
|
||||||
{
|
{
|
||||||
NSLog( @"Found Characteristic %@", aChar );
|
NSLog( @"Found Characteristic %@", aChar );
|
||||||
|
|
||||||
if ( [aChar.UUID isEqual:[CBUUID UUIDWithString:VALVE_INPUT_CHAR]] )
|
if ( [aChar.UUID isEqual:[CBUUID UUIDWithString:VALVE_INPUT_CHAR]] )
|
||||||
{
|
{
|
||||||
self.bleCharacteristicInput = aChar;
|
self.bleCharacteristicInput = aChar;
|
||||||
|
@ -703,7 +703,7 @@ static void process_pending_events()
|
||||||
else if ( [characteristic.UUID isEqual:_bleCharacteristicReport.UUID] )
|
else if ( [characteristic.UUID isEqual:_bleCharacteristicReport.UUID] )
|
||||||
{
|
{
|
||||||
memset( _featureReport, 0, sizeof(_featureReport) );
|
memset( _featureReport, 0, sizeof(_featureReport) );
|
||||||
|
|
||||||
if ( error != nil )
|
if ( error != nil )
|
||||||
{
|
{
|
||||||
NSLog( @"HIDBLE: get_feature_report error: %@", error );
|
NSLog( @"HIDBLE: get_feature_report error: %@", error );
|
||||||
|
@ -788,13 +788,13 @@ HID_API_EXPORT hid_device * HID_API_CALL hid_open_path( const char *path, int bE
|
||||||
NSString *nssPath = [NSString stringWithUTF8String:path];
|
NSString *nssPath = [NSString stringWithUTF8String:path];
|
||||||
HIDBLEManager *bleManager = HIDBLEManager.sharedInstance;
|
HIDBLEManager *bleManager = HIDBLEManager.sharedInstance;
|
||||||
NSEnumerator<HIDBLEDevice *> *devices = [bleManager.deviceMap objectEnumerator];
|
NSEnumerator<HIDBLEDevice *> *devices = [bleManager.deviceMap objectEnumerator];
|
||||||
|
|
||||||
for ( HIDBLEDevice *device in devices )
|
for ( HIDBLEDevice *device in devices )
|
||||||
{
|
{
|
||||||
// we have the device but it hasn't found its service or characteristics until it is connected
|
// we have the device but it hasn't found its service or characteristics until it is connected
|
||||||
if ( !device.ready || !device.connected || !device.bleCharacteristicInput )
|
if ( !device.ready || !device.connected || !device.bleCharacteristicInput )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( [device.bleSteamController.identifier.UUIDString isEqualToString:nssPath] )
|
if ( [device.bleSteamController.identifier.UUIDString isEqualToString:nssPath] )
|
||||||
{
|
{
|
||||||
result = (hid_device *)malloc( sizeof( hid_device ) );
|
result = (hid_device *)malloc( sizeof( hid_device ) );
|
||||||
|
@ -828,7 +828,7 @@ int HID_API_EXPORT hid_set_nonblocking(hid_device *dev, int nonblock)
|
||||||
{
|
{
|
||||||
/* All Nonblocking operation is handled by the library. */
|
/* All Nonblocking operation is handled by the library. */
|
||||||
dev->blocking = !nonblock;
|
dev->blocking = !nonblock;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -952,7 +952,7 @@ int HID_API_EXPORT hid_get_feature_report(hid_device *dev, unsigned char *data,
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
size_t written = [device_handle get_feature_report:data[0] into:data];
|
size_t written = [device_handle get_feature_report:data[0] into:data];
|
||||||
|
|
||||||
return written == length-1 ? (int)length : (int)written;
|
return written == length-1 ? (int)length : (int)written;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -972,7 +972,7 @@ int HID_API_EXPORT hid_read_timeout(hid_device *dev, unsigned char *data, size_t
|
||||||
|
|
||||||
if ( !device_handle.connected )
|
if ( !device_handle.connected )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ( milliseconds != 0 )
|
if ( milliseconds != 0 )
|
||||||
{
|
{
|
||||||
NSLog( @"hid_read_timeout with non-zero wait" );
|
NSLog( @"hid_read_timeout with non-zero wait" );
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include "usb_ids.h"
|
#include "usb_ids.h"
|
||||||
#include "hidapi/SDL_hidapi_nintendo.h"
|
#include "hidapi/SDL_hidapi_nintendo.h"
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
#include "../events/SDL_events_c.h"
|
#include "../events/SDL_events_c.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -814,7 +814,7 @@ static GamepadMapping_t *SDL_PrivateGetGamepadMappingForGUID(SDL_JoystickGUID gu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_JOYSTICK_XINPUT
|
#ifdef SDL_JOYSTICK_XINPUT
|
||||||
if (SDL_IsJoystickXInput(guid)) {
|
if (SDL_IsJoystickXInput(guid)) {
|
||||||
/* This is an XInput device */
|
/* This is an XInput device */
|
||||||
return s_pXInputMapping;
|
return s_pXInputMapping;
|
||||||
|
@ -1135,7 +1135,7 @@ static char *SDL_PrivateGetGamepadGUIDFromMappingString(const char *pMapping)
|
||||||
SDL_memcpy(&pchGUID[8], &pchGUID[0], 4);
|
SDL_memcpy(&pchGUID[8], &pchGUID[0], 4);
|
||||||
SDL_memcpy(&pchGUID[0], "03000000", 8);
|
SDL_memcpy(&pchGUID[0], "03000000", 8);
|
||||||
}
|
}
|
||||||
#elif __MACOS__
|
#elif defined(__MACOS__)
|
||||||
if (SDL_strlen(pchGUID) == 32 &&
|
if (SDL_strlen(pchGUID) == 32 &&
|
||||||
SDL_memcmp(&pchGUID[4], "000000000000", 12) == 0 &&
|
SDL_memcmp(&pchGUID[4], "000000000000", 12) == 0 &&
|
||||||
SDL_memcmp(&pchGUID[20], "000000000000", 12) == 0) {
|
SDL_memcmp(&pchGUID[20], "000000000000", 12) == 0) {
|
||||||
|
@ -3056,7 +3056,7 @@ static int SDL_SendGamepadAxis(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_Gamep
|
||||||
|
|
||||||
/* translate the event, if desired */
|
/* translate the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_AXIS_MOTION)) {
|
if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_AXIS_MOTION)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_EVENT_GAMEPAD_AXIS_MOTION;
|
event.type = SDL_EVENT_GAMEPAD_AXIS_MOTION;
|
||||||
|
@ -3076,7 +3076,7 @@ static int SDL_SendGamepadAxis(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_Gamep
|
||||||
static int SDL_SendGamepadButton(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_GamepadButton button, Uint8 state)
|
static int SDL_SendGamepadButton(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_GamepadButton button, Uint8 state)
|
||||||
{
|
{
|
||||||
int posted;
|
int posted;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
|
|
||||||
SDL_AssertJoysticksLocked();
|
SDL_AssertJoysticksLocked();
|
||||||
|
@ -3118,7 +3118,7 @@ static int SDL_SendGamepadButton(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_Gam
|
||||||
|
|
||||||
/* translate the event, if desired */
|
/* translate the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(event.type)) {
|
if (SDL_EventEnabled(event.type)) {
|
||||||
event.common.timestamp = timestamp;
|
event.common.timestamp = timestamp;
|
||||||
event.gbutton.which = gamepad->joystick->instance_id;
|
event.gbutton.which = gamepad->joystick->instance_id;
|
||||||
|
@ -3130,6 +3130,7 @@ static int SDL_SendGamepadButton(Uint64 timestamp, SDL_Gamepad *gamepad, SDL_Gam
|
||||||
return posted;
|
return posted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
static const Uint32 SDL_gamepad_event_list[] = {
|
static const Uint32 SDL_gamepad_event_list[] = {
|
||||||
SDL_EVENT_GAMEPAD_AXIS_MOTION,
|
SDL_EVENT_GAMEPAD_AXIS_MOTION,
|
||||||
SDL_EVENT_GAMEPAD_BUTTON_DOWN,
|
SDL_EVENT_GAMEPAD_BUTTON_DOWN,
|
||||||
|
@ -3142,6 +3143,7 @@ static const Uint32 SDL_gamepad_event_list[] = {
|
||||||
SDL_EVENT_GAMEPAD_TOUCHPAD_UP,
|
SDL_EVENT_GAMEPAD_TOUCHPAD_UP,
|
||||||
SDL_EVENT_GAMEPAD_SENSOR_UPDATE,
|
SDL_EVENT_GAMEPAD_SENSOR_UPDATE,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
void SDL_SetGamepadEventsEnabled(SDL_bool enabled)
|
void SDL_SetGamepadEventsEnabled(SDL_bool enabled)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,10 +29,10 @@
|
||||||
Alternatively, you can use the app located in test/controllermap
|
Alternatively, you can use the app located in test/controllermap
|
||||||
*/
|
*/
|
||||||
static const char *s_GamepadMappings[] = {
|
static const char *s_GamepadMappings[] = {
|
||||||
#if SDL_JOYSTICK_XINPUT
|
#ifdef SDL_JOYSTICK_XINPUT
|
||||||
"xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
|
"xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_WGI
|
#ifdef SDL_JOYSTICK_WGI
|
||||||
"03000000491900001904000000007700,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,",
|
"03000000491900001904000000007700,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,",
|
||||||
"03000000d11800000094000000007700,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,",
|
"03000000d11800000094000000007700,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,",
|
||||||
"030000007e0500000920000000007701,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"030000007e0500000920000000007701,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
|
@ -42,7 +42,7 @@ static const char *s_GamepadMappings[] = {
|
||||||
"0300000032150000000a000000007703,Razer Atrox Arcade Stick,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b11,dpup:b10,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,x:b2,y:b3,",
|
"0300000032150000000a000000007703,Razer Atrox Arcade Stick,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b11,dpup:b10,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,x:b2,y:b3,",
|
||||||
"03000000de280000ff11000000007701,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:b12,dpleft:b13,dpright:b11,dpup:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a4,leftx:a1,lefty:a0~,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a2~,start:b7,x:b2,y:b3,",
|
"03000000de280000ff11000000007701,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:b12,dpleft:b13,dpright:b11,dpup:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a4,leftx:a1,lefty:a0~,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a2~,start:b7,x:b2,y:b3,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_DINPUT
|
#ifdef SDL_JOYSTICK_DINPUT
|
||||||
"03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,",
|
"03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,",
|
||||||
"03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
|
@ -524,7 +524,7 @@ static const char *s_GamepadMappings[] = {
|
||||||
"03000000830500006020000000010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000830500006020000000010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,",
|
"03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_LINUX
|
#ifdef SDL_JOYSTICK_LINUX
|
||||||
"xinput,*,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
|
"xinput,*,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,",
|
||||||
"03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
|
@ -956,7 +956,7 @@ static const char *s_GamepadMappings[] = {
|
||||||
"0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b2,y:b3,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b2,y:b3,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_MFI
|
#ifdef SDL_JOYSTICK_MFI
|
||||||
"05000000ac050000010000004f066d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,",
|
"05000000ac050000010000004f066d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,",
|
||||||
"05000000ac05000001000000cf076d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,",
|
"05000000ac05000001000000cf076d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,",
|
||||||
"05000000ac05000001000000df076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,",
|
"05000000ac05000001000000df076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,",
|
||||||
|
@ -992,19 +992,19 @@ static const char *s_GamepadMappings[] = {
|
||||||
"050000005e040000e0020000df070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,",
|
"050000005e040000e0020000df070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,",
|
||||||
"050000005e040000e0020000ff070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,",
|
"050000005e040000e0020000ff070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_EMSCRIPTEN
|
#ifdef SDL_JOYSTICK_EMSCRIPTEN
|
||||||
"default,Standard Gamepad,a:b0,b:b1,back:b8,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b16,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
"default,Standard Gamepad,a:b0,b:b1,back:b8,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b16,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_PS2
|
#ifdef SDL_JOYSTICK_PS2
|
||||||
"0000000050533220436f6e74726f6c00,PS2 Controller,crc:ed87,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,",
|
"0000000050533220436f6e74726f6c00,PS2 Controller,crc:ed87,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_PSP
|
#ifdef SDL_JOYSTICK_PSP
|
||||||
"00000000505350206275696c74696e00,PSP builtin joypad,crc:bb86,a:b2,b:b1,back:b10,dpdown:b6,dpleft:b7,dpright:b9,dpup:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
"00000000505350206275696c74696e00,PSP builtin joypad,crc:bb86,a:b2,b:b1,back:b10,dpdown:b6,dpleft:b7,dpright:b9,dpup:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_VITA
|
#ifdef SDL_JOYSTICK_VITA
|
||||||
"0000000050535669746120436f6e7400,PSVita Controller,crc:d598,a:b2,b:b1,back:b10,dpdown:b6,dpleft:b7,dpright:b9,dpup:b8,leftshoulder:b4,leftstick:b14,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
"0000000050535669746120436f6e7400,PSVita Controller,crc:d598,a:b2,b:b1,back:b10,dpdown:b6,dpleft:b7,dpright:b9,dpup:b8,leftshoulder:b4,leftstick:b14,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_N3DS
|
#ifdef SDL_JOYSTICK_N3DS
|
||||||
"000000004e696e74656e646f20334400,Nintendo 3DS,crc:3210,a:b0,b:b1,back:b2,dpdown:b7,dpleft:b5,dpright:b4,dpup:b6,leftshoulder:b9,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b8,righttrigger:b15,rightx:a2,righty:a3,start:b3,x:b10,y:b11,",
|
"000000004e696e74656e646f20334400,Nintendo 3DS,crc:3210,a:b0,b:b1,back:b2,dpdown:b7,dpleft:b5,dpright:b4,dpup:b6,leftshoulder:b9,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b8,righttrigger:b15,rightx:a2,righty:a3,start:b3,x:b10,y:b11,",
|
||||||
#endif
|
#endif
|
||||||
"hidapi,*,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,",
|
"hidapi,*,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,",
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "SDL_gamepad_c.h"
|
#include "SDL_gamepad_c.h"
|
||||||
#include "SDL_joystick_c.h"
|
#include "SDL_joystick_c.h"
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
#include "../events/SDL_events_c.h"
|
#include "../events/SDL_events_c.h"
|
||||||
#endif
|
#endif
|
||||||
#include "../video/SDL_sysvideo.h"
|
#include "../video/SDL_sysvideo.h"
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
#include <tlhelp32.h>
|
#include <tlhelp32.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#ifdef SDL_JOYSTICK_VIRTUAL
|
||||||
#include "./virtual/SDL_virtualjoystick_c.h"
|
#include "./virtual/SDL_virtualjoystick_c.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -301,7 +301,7 @@ int SDL_InitJoysticks(void)
|
||||||
SDL_joystick_lock = SDL_CreateMutex();
|
SDL_joystick_lock = SDL_CreateMutex();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_InitSubSystem(SDL_INIT_EVENTS) < 0) {
|
if (SDL_InitSubSystem(SDL_INIT_EVENTS) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -631,7 +631,7 @@ SDL_JoystickID SDL_AttachVirtualJoystick(SDL_JoystickType type, int naxes, int n
|
||||||
|
|
||||||
SDL_JoystickID SDL_AttachVirtualJoystickEx(const SDL_VirtualJoystickDesc *desc)
|
SDL_JoystickID SDL_AttachVirtualJoystickEx(const SDL_VirtualJoystickDesc *desc)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
SDL_JoystickID retval;
|
SDL_JoystickID retval;
|
||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
|
@ -645,7 +645,7 @@ SDL_JoystickID SDL_AttachVirtualJoystickEx(const SDL_VirtualJoystickDesc *desc)
|
||||||
|
|
||||||
int SDL_DetachVirtualJoystick(SDL_JoystickID instance_id)
|
int SDL_DetachVirtualJoystick(SDL_JoystickID instance_id)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
|
@ -659,7 +659,7 @@ int SDL_DetachVirtualJoystick(SDL_JoystickID instance_id)
|
||||||
|
|
||||||
SDL_bool SDL_IsJoystickVirtual(SDL_JoystickID instance_id)
|
SDL_bool SDL_IsJoystickVirtual(SDL_JoystickID instance_id)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
SDL_JoystickDriver *driver;
|
SDL_JoystickDriver *driver;
|
||||||
int device_index;
|
int device_index;
|
||||||
SDL_bool is_virtual = SDL_FALSE;
|
SDL_bool is_virtual = SDL_FALSE;
|
||||||
|
@ -686,7 +686,7 @@ int SDL_SetJoystickVirtualAxis(SDL_Joystick *joystick, int axis, Sint16 value)
|
||||||
{
|
{
|
||||||
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
retval = SDL_SetJoystickVirtualAxisInner(joystick, axis, value);
|
retval = SDL_SetJoystickVirtualAxisInner(joystick, axis, value);
|
||||||
#else
|
#else
|
||||||
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
||||||
|
@ -705,7 +705,7 @@ int SDL_SetJoystickVirtualButton(SDL_Joystick *joystick, int button, Uint8 value
|
||||||
{
|
{
|
||||||
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
retval = SDL_SetJoystickVirtualButtonInner(joystick, button, value);
|
retval = SDL_SetJoystickVirtualButtonInner(joystick, button, value);
|
||||||
#else
|
#else
|
||||||
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
||||||
|
@ -724,7 +724,7 @@ int SDL_SetJoystickVirtualHat(SDL_Joystick *joystick, int hat, Uint8 value)
|
||||||
{
|
{
|
||||||
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
CHECK_JOYSTICK_MAGIC(joystick, -1);
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#if defined(SDL_JOYSTICK_VIRTUAL)
|
||||||
retval = SDL_SetJoystickVirtualHatInner(joystick, hat, value);
|
retval = SDL_SetJoystickVirtualHatInner(joystick, hat, value);
|
||||||
#else
|
#else
|
||||||
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
retval = SDL_SetError("SDL not built with virtual-joystick support");
|
||||||
|
@ -1304,7 +1304,7 @@ void SDL_QuitJoysticks(void)
|
||||||
SDL_joystick_player_count = 0;
|
SDL_joystick_player_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
SDL_QuitSubSystem(SDL_INIT_EVENTS);
|
SDL_QuitSubSystem(SDL_INIT_EVENTS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1404,7 +1404,7 @@ void SDL_PrivateJoystickAdded(SDL_JoystickID instance_id)
|
||||||
SDL_SetJoystickIDForPlayerIndex(player_index, instance_id);
|
SDL_SetJoystickIDForPlayerIndex(player_index, instance_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
{
|
{
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
|
|
||||||
|
@ -1454,7 +1454,7 @@ void SDL_PrivateJoystickRemoved(SDL_JoystickID instance_id)
|
||||||
{
|
{
|
||||||
SDL_Joystick *joystick = NULL;
|
SDL_Joystick *joystick = NULL;
|
||||||
int player_index;
|
int player_index;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1469,7 +1469,7 @@ void SDL_PrivateJoystickRemoved(SDL_JoystickID instance_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
event.type = SDL_EVENT_JOYSTICK_REMOVED;
|
event.type = SDL_EVENT_JOYSTICK_REMOVED;
|
||||||
event.common.timestamp = 0;
|
event.common.timestamp = 0;
|
||||||
|
|
||||||
|
@ -1538,7 +1538,7 @@ int SDL_SendJoystickAxis(Uint64 timestamp, SDL_Joystick *joystick, Uint8 axis, S
|
||||||
|
|
||||||
/* Post the event, if desired */
|
/* Post the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_AXIS_MOTION)) {
|
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_AXIS_MOTION)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_EVENT_JOYSTICK_AXIS_MOTION;
|
event.type = SDL_EVENT_JOYSTICK_AXIS_MOTION;
|
||||||
|
@ -1580,7 +1580,7 @@ int SDL_SendJoystickHat(Uint64 timestamp, SDL_Joystick *joystick, Uint8 hat, Uin
|
||||||
|
|
||||||
/* Post the event, if desired */
|
/* Post the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_HAT_MOTION)) {
|
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_HAT_MOTION)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_EVENT_JOYSTICK_HAT_MOTION;
|
event.type = SDL_EVENT_JOYSTICK_HAT_MOTION;
|
||||||
|
@ -1597,7 +1597,7 @@ int SDL_SendJoystickHat(Uint64 timestamp, SDL_Joystick *joystick, Uint8 hat, Uin
|
||||||
int SDL_SendJoystickButton(Uint64 timestamp, SDL_Joystick *joystick, Uint8 button, Uint8 state)
|
int SDL_SendJoystickButton(Uint64 timestamp, SDL_Joystick *joystick, Uint8 button, Uint8 state)
|
||||||
{
|
{
|
||||||
int posted;
|
int posted;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
|
|
||||||
SDL_AssertJoysticksLocked();
|
SDL_AssertJoysticksLocked();
|
||||||
|
@ -1638,7 +1638,7 @@ int SDL_SendJoystickButton(Uint64 timestamp, SDL_Joystick *joystick, Uint8 butto
|
||||||
|
|
||||||
/* Post the event, if desired */
|
/* Post the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(event.type)) {
|
if (SDL_EventEnabled(event.type)) {
|
||||||
event.common.timestamp = timestamp;
|
event.common.timestamp = timestamp;
|
||||||
event.jbutton.which = joystick->instance_id;
|
event.jbutton.which = joystick->instance_id;
|
||||||
|
@ -1705,6 +1705,7 @@ void SDL_UpdateJoysticks(void)
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
static const Uint32 SDL_joystick_event_list[] = {
|
static const Uint32 SDL_joystick_event_list[] = {
|
||||||
SDL_EVENT_JOYSTICK_AXIS_MOTION,
|
SDL_EVENT_JOYSTICK_AXIS_MOTION,
|
||||||
SDL_EVENT_JOYSTICK_HAT_MOTION,
|
SDL_EVENT_JOYSTICK_HAT_MOTION,
|
||||||
|
@ -1714,6 +1715,7 @@ static const Uint32 SDL_joystick_event_list[] = {
|
||||||
SDL_EVENT_JOYSTICK_REMOVED,
|
SDL_EVENT_JOYSTICK_REMOVED,
|
||||||
SDL_EVENT_JOYSTICK_BATTERY_UPDATED
|
SDL_EVENT_JOYSTICK_BATTERY_UPDATED
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
void SDL_SetJoystickEventsEnabled(SDL_bool enabled)
|
void SDL_SetJoystickEventsEnabled(SDL_bool enabled)
|
||||||
{
|
{
|
||||||
|
@ -2850,7 +2852,7 @@ void SDL_SendJoystickBatteryLevel(SDL_Joystick *joystick, SDL_JoystickPowerLevel
|
||||||
|
|
||||||
SDL_assert(joystick->ref_count); /* make sure we are calling this only for update, not for initialization */
|
SDL_assert(joystick->ref_count); /* make sure we are calling this only for update, not for initialization */
|
||||||
if (ePowerLevel != joystick->epowerlevel) {
|
if (ePowerLevel != joystick->epowerlevel) {
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_BATTERY_UPDATED)) {
|
if (SDL_EventEnabled(SDL_EVENT_JOYSTICK_BATTERY_UPDATED)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_EVENT_JOYSTICK_BATTERY_UPDATED;
|
event.type = SDL_EVENT_JOYSTICK_BATTERY_UPDATED;
|
||||||
|
@ -2954,7 +2956,7 @@ int SDL_SendJoystickTouchpad(Uint64 timestamp, SDL_Joystick *joystick, int touch
|
||||||
|
|
||||||
/* Post the event, if desired */
|
/* Post the event, if desired */
|
||||||
posted = 0;
|
posted = 0;
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(event_type)) {
|
if (SDL_EventEnabled(event_type)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = event_type;
|
event.type = event_type;
|
||||||
|
@ -2994,7 +2996,7 @@ int SDL_SendJoystickSensor(Uint64 timestamp, SDL_Joystick *joystick, SDL_SensorT
|
||||||
SDL_memcpy(sensor->data, data, num_values * sizeof(*data));
|
SDL_memcpy(sensor->data, data, num_values * sizeof(*data));
|
||||||
|
|
||||||
/* Post the event, if desired */
|
/* Post the event, if desired */
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_SENSOR_UPDATE)) {
|
if (SDL_EventEnabled(SDL_EVENT_GAMEPAD_SENSOR_UPDATE)) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_EVENT_GAMEPAD_SENSOR_UPDATE;
|
event.type = SDL_EVENT_GAMEPAD_SENSOR_UPDATE;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
#include "SDL_mfijoystick_c.h"
|
#include "SDL_mfijoystick_c.h"
|
||||||
|
|
||||||
#if !SDL_EVENTS_DISABLED
|
#ifndef SDL_EVENTS_DISABLED
|
||||||
#include "../../events/SDL_events_c.h"
|
#include "../../events/SDL_events_c.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -55,6 +55,18 @@ static NSString *GCInputXboxShareButton = @"Button Share";
|
||||||
#include <Availability.h>
|
#include <Availability.h>
|
||||||
#include <objc/message.h>
|
#include <objc/message.h>
|
||||||
|
|
||||||
|
#ifndef __IPHONE_OS_VERSION_MAX_ALLOWED
|
||||||
|
#define __IPHONE_OS_VERSION_MAX_ALLOWED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __APPLETV_OS_VERSION_MAX_ALLOWED
|
||||||
|
#define __APPLETV_OS_VERSION_MAX_ALLOWED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MAC_OS_VERSION_MAX_ALLOWED
|
||||||
|
#define __MAC_OS_VERSION_MAX_ALLOWED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* remove compilation warnings for strict builds by defining these selectors, even though
|
/* remove compilation warnings for strict builds by defining these selectors, even though
|
||||||
* they are only ever used indirectly through objc_msgSend
|
* they are only ever used indirectly through objc_msgSend
|
||||||
*/
|
*/
|
||||||
|
@ -929,7 +941,7 @@ static Uint8 IOS_MFIJoystickHatStateForDPad(GCControllerDirectionPad *dpad)
|
||||||
|
|
||||||
static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
|
static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_MFI
|
#ifdef SDL_JOYSTICK_MFI
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
GCController *controller = joystick->hwdata->controller;
|
GCController *controller = joystick->hwdata->controller;
|
||||||
Uint8 hatstate = SDL_HAT_CENTERED;
|
Uint8 hatstate = SDL_HAT_CENTERED;
|
||||||
|
|
|
@ -235,7 +235,7 @@ static void JoystickDeviceWasRemovedCallback(void *ctx, IOReturn result, void *s
|
||||||
device->ffdevice = NULL;
|
device->ffdevice = NULL;
|
||||||
device->ff_initialized = SDL_FALSE;
|
device->ff_initialized = SDL_FALSE;
|
||||||
}
|
}
|
||||||
#if SDL_HAPTIC_IOKIT
|
#ifdef SDL_HAPTIC_IOKIT
|
||||||
MacHaptic_MaybeRemoveDevice(device->ffservice);
|
MacHaptic_MaybeRemoveDevice(device->ffservice);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -555,7 +555,7 @@ static void JoystickDeviceWasAddedCallback(void *ctx, IOReturn res, void *sender
|
||||||
ioservice = IOHIDDeviceGetService(ioHIDDeviceObject);
|
ioservice = IOHIDDeviceGetService(ioHIDDeviceObject);
|
||||||
if ((ioservice) && (FFIsForceFeedback(ioservice) == FF_OK)) {
|
if ((ioservice) && (FFIsForceFeedback(ioservice) == FF_OK)) {
|
||||||
device->ffservice = ioservice;
|
device->ffservice = ioservice;
|
||||||
#if SDL_HAPTIC_IOKIT
|
#ifdef SDL_HAPTIC_IOKIT
|
||||||
MacHaptic_MaybeAddDevice(ioservice);
|
MacHaptic_MaybeAddDevice(ioservice);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,7 @@ static int IsJoystick(const char *path, int fd, char **name_return, SDL_Joystick
|
||||||
|
|
||||||
if (ioctl(fd, JSIOCGNAME(sizeof(product_string)), product_string) >= 0) {
|
if (ioctl(fd, JSIOCGNAME(sizeof(product_string)), product_string) >= 0) {
|
||||||
SDL_zero(inpid);
|
SDL_zero(inpid);
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version);
|
SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
|
@ -237,7 +237,7 @@ static int IsJoystick(const char *path, int fd, char **name_return, SDL_Joystick
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
static void joystick_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath)
|
static void joystick_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath)
|
||||||
{
|
{
|
||||||
if (devpath == NULL) {
|
if (devpath == NULL) {
|
||||||
|
@ -677,7 +677,7 @@ static void LINUX_FallbackJoystickDetect(void)
|
||||||
|
|
||||||
static void LINUX_JoystickDetect(void)
|
static void LINUX_JoystickDetect(void)
|
||||||
{
|
{
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
||||||
SDL_UDEV_Poll();
|
SDL_UDEV_Poll();
|
||||||
} else
|
} else
|
||||||
|
@ -730,7 +730,7 @@ static int LINUX_JoystickInit(void)
|
||||||
/* Manually scan first, since we sort by device number and udev doesn't */
|
/* Manually scan first, since we sort by device number and udev doesn't */
|
||||||
LINUX_JoystickDetect();
|
LINUX_JoystickDetect();
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
if (enumeration_method == ENUMERATION_UNSET) {
|
if (enumeration_method == ENUMERATION_UNSET) {
|
||||||
if (SDL_GetHintBoolean("SDL_JOYSTICK_DISABLE_UDEV", SDL_FALSE)) {
|
if (SDL_GetHintBoolean("SDL_JOYSTICK_DISABLE_UDEV", SDL_FALSE)) {
|
||||||
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
|
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
|
||||||
|
@ -1594,7 +1594,7 @@ static void LINUX_JoystickQuit(void)
|
||||||
|
|
||||||
numjoysticks = 0;
|
numjoysticks = 0;
|
||||||
|
|
||||||
#if SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
||||||
SDL_UDEV_DelCallback(joystick_udev_callback);
|
SDL_UDEV_DelCallback(joystick_udev_callback);
|
||||||
SDL_UDEV_Quit();
|
SDL_UDEV_Quit();
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_PS2
|
#ifdef SDL_JOYSTICK_PS2
|
||||||
|
|
||||||
/* This is the PS2 implementation of the SDL joystick API */
|
/* This is the PS2 implementation of the SDL joystick API */
|
||||||
#include <libmtap.h>
|
#include <libmtap.h>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_PSP
|
#ifdef SDL_JOYSTICK_PSP
|
||||||
|
|
||||||
/* This is the PSP implementation of the SDL joystick API */
|
/* This is the PSP implementation of the SDL joystick API */
|
||||||
#include <pspctrl.h>
|
#include <pspctrl.h>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef SDL_VIRTUALJOYSTICK_C_H
|
#ifndef SDL_VIRTUALJOYSTICK_C_H
|
||||||
#define SDL_VIRTUALJOYSTICK_C_H
|
#define SDL_VIRTUALJOYSTICK_C_H
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VIRTUAL
|
#ifdef SDL_JOYSTICK_VIRTUAL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data for a virtual, software-only joystick.
|
* Data for a virtual, software-only joystick.
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_VITA
|
#ifdef SDL_JOYSTICK_VITA
|
||||||
|
|
||||||
/* This is the PSVita implementation of the SDL joystick API */
|
/* This is the PSVita implementation of the SDL joystick API */
|
||||||
#include <psp2/types.h>
|
#include <psp2/types.h>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "../SDL_sysjoystick.h"
|
#include "../SDL_sysjoystick.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_DINPUT
|
#ifdef SDL_JOYSTICK_DINPUT
|
||||||
|
|
||||||
#include "SDL_windowsjoystick_c.h"
|
#include "SDL_windowsjoystick_c.h"
|
||||||
#include "SDL_dinputjoystick_c.h"
|
#include "SDL_dinputjoystick_c.h"
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_RAWINPUT
|
#ifdef SDL_JOYSTICK_RAWINPUT
|
||||||
|
|
||||||
#include "../usb_ids.h"
|
#include "../usb_ids.h"
|
||||||
#include "../SDL_sysjoystick.h"
|
#include "../SDL_sysjoystick.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_DINPUT || SDL_JOYSTICK_XINPUT
|
#if defined(SDL_JOYSTICK_DINPUT) || SDL_JOYSTICK_XINPUT
|
||||||
|
|
||||||
/* DirectInput joystick driver; written by Glenn Maynard, based on Andrei de
|
/* DirectInput joystick driver; written by Glenn Maynard, based on Andrei de
|
||||||
* A. Formiga's WINMM driver.
|
* A. Formiga's WINMM driver.
|
||||||
|
@ -241,7 +241,7 @@ static LRESULT CALLBACK SDL_PrivateJoystickDetectProc(HWND hwnd, UINT msg, WPARA
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_JOYSTICK_RAWINPUT
|
#ifdef SDL_JOYSTICK_RAWINPUT
|
||||||
return CallWindowProc(RAWINPUT_WindowProc, hwnd, msg, wParam, lParam);
|
return CallWindowProc(RAWINPUT_WindowProc, hwnd, msg, wParam, lParam);
|
||||||
#else
|
#else
|
||||||
return CallWindowProc(DefWindowProc, hwnd, msg, wParam, lParam);
|
return CallWindowProc(DefWindowProc, hwnd, msg, wParam, lParam);
|
||||||
|
@ -250,7 +250,7 @@ static LRESULT CALLBACK SDL_PrivateJoystickDetectProc(HWND hwnd, UINT msg, WPARA
|
||||||
|
|
||||||
static void SDL_CleanupDeviceNotification(SDL_DeviceNotificationData *data)
|
static void SDL_CleanupDeviceNotification(SDL_DeviceNotificationData *data)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_RAWINPUT
|
#ifdef SDL_JOYSTICK_RAWINPUT
|
||||||
RAWINPUT_UnregisterNotifications();
|
RAWINPUT_UnregisterNotifications();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -307,7 +307,7 @@ static int SDL_CreateDeviceNotification(SDL_DeviceNotificationData *data)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SDL_JOYSTICK_RAWINPUT
|
#ifdef SDL_JOYSTICK_RAWINPUT
|
||||||
RAWINPUT_RegisterNotifications(data->messageWindow);
|
RAWINPUT_RegisterNotifications(data->messageWindow);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -345,7 +345,7 @@ static SDL_DeviceNotificationData s_notification_data;
|
||||||
/* Function/thread to scan the system for joysticks. */
|
/* Function/thread to scan the system for joysticks. */
|
||||||
static int SDLCALL SDL_JoystickThread(void *_data)
|
static int SDLCALL SDL_JoystickThread(void *_data)
|
||||||
{
|
{
|
||||||
#if SDL_JOYSTICK_XINPUT
|
#ifdef SDL_JOYSTICK_XINPUT
|
||||||
SDL_bool bOpenedXInputDevices[XUSER_MAX_COUNT];
|
SDL_bool bOpenedXInputDevices[XUSER_MAX_COUNT];
|
||||||
SDL_zeroa(bOpenedXInputDevices);
|
SDL_zeroa(bOpenedXInputDevices);
|
||||||
#endif
|
#endif
|
||||||
|
@ -363,7 +363,7 @@ static int SDLCALL SDL_JoystickThread(void *_data)
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
#if SDL_JOYSTICK_XINPUT
|
#ifdef SDL_JOYSTICK_XINPUT
|
||||||
/* WM_DEVICECHANGE not working, poll for new XINPUT controllers */
|
/* WM_DEVICECHANGE not working, poll for new XINPUT controllers */
|
||||||
SDL_CondWaitTimeout(s_condJoystickThread, s_mutexJoyStickEnum, 1000);
|
SDL_CondWaitTimeout(s_condJoystickThread, s_mutexJoyStickEnum, 1000);
|
||||||
if (SDL_XINPUT_Enabled() && XINPUTGETCAPABILITIES) {
|
if (SDL_XINPUT_Enabled() && XINPUTGETCAPABILITIES) {
|
||||||
|
@ -547,11 +547,11 @@ static void WINDOWS_JoystickDetect(void)
|
||||||
JoyStick_DeviceData *pListNext = NULL;
|
JoyStick_DeviceData *pListNext = NULL;
|
||||||
|
|
||||||
if (pCurList->bXInputDevice) {
|
if (pCurList->bXInputDevice) {
|
||||||
#if SDL_HAPTIC_XINPUT
|
#ifdef SDL_HAPTIC_XINPUT
|
||||||
SDL_XINPUT_HapticMaybeRemoveDevice(pCurList->XInputUserId);
|
SDL_XINPUT_HapticMaybeRemoveDevice(pCurList->XInputUserId);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
SDL_DINPUT_HapticMaybeRemoveDevice(&pCurList->dxdevice);
|
SDL_DINPUT_HapticMaybeRemoveDevice(&pCurList->dxdevice);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -567,11 +567,11 @@ static void WINDOWS_JoystickDetect(void)
|
||||||
for (pCurList = SYS_Joystick; pCurList; pCurList = pCurList->pNext) {
|
for (pCurList = SYS_Joystick; pCurList; pCurList = pCurList->pNext) {
|
||||||
if (pCurList->send_add_event) {
|
if (pCurList->send_add_event) {
|
||||||
if (pCurList->bXInputDevice) {
|
if (pCurList->bXInputDevice) {
|
||||||
#if SDL_HAPTIC_XINPUT
|
#ifdef SDL_HAPTIC_XINPUT
|
||||||
SDL_XINPUT_HapticMaybeAddDevice(pCurList->XInputUserId);
|
SDL_XINPUT_HapticMaybeAddDevice(pCurList->XInputUserId);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#if SDL_HAPTIC_DINPUT
|
#ifdef SDL_HAPTIC_DINPUT
|
||||||
SDL_DINPUT_HapticMaybeAddDevice(&pCurList->dxdevice);
|
SDL_DINPUT_HapticMaybeAddDevice(&pCurList->dxdevice);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -813,7 +813,7 @@ SDL_JoystickDriver SDL_WINDOWS_JoystickDriver = {
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if SDL_JOYSTICK_RAWINPUT
|
#ifdef SDL_JOYSTICK_RAWINPUT
|
||||||
/* The RAWINPUT driver needs the device notification setup above */
|
/* The RAWINPUT driver needs the device notification setup above */
|
||||||
#error SDL_JOYSTICK_RAWINPUT requires SDL_JOYSTICK_DINPUT || SDL_JOYSTICK_XINPUT
|
#error SDL_JOYSTICK_RAWINPUT requires SDL_JOYSTICK_DINPUT || SDL_JOYSTICK_XINPUT
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -71,7 +71,7 @@ struct joystick_hwdata
|
||||||
{
|
{
|
||||||
SDL_JoystickGUID guid;
|
SDL_JoystickGUID guid;
|
||||||
|
|
||||||
#if SDL_JOYSTICK_DINPUT
|
#ifdef SDL_JOYSTICK_DINPUT
|
||||||
LPDIRECTINPUTDEVICE8 InputDevice;
|
LPDIRECTINPUTDEVICE8 InputDevice;
|
||||||
DIDEVCAPS Capabilities;
|
DIDEVCAPS Capabilities;
|
||||||
SDL_bool buffered;
|
SDL_bool buffered;
|
||||||
|
@ -89,7 +89,7 @@ struct joystick_hwdata
|
||||||
DWORD dwPacketNumber;
|
DWORD dwPacketNumber;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if SDL_JOYSTICK_DINPUT
|
#ifdef SDL_JOYSTICK_DINPUT
|
||||||
extern const DIDATAFORMAT SDL_c_dfDIJoystick2;
|
extern const DIDATAFORMAT SDL_c_dfDIJoystick2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "../SDL_sysjoystick.h"
|
#include "../SDL_sysjoystick.h"
|
||||||
|
|
||||||
#if SDL_JOYSTICK_XINPUT
|
#ifdef SDL_JOYSTICK_XINPUT
|
||||||
|
|
||||||
#include "SDL_windowsjoystick_c.h"
|
#include "SDL_windowsjoystick_c.h"
|
||||||
#include "SDL_xinputjoystick_c.h"
|
#include "SDL_xinputjoystick_c.h"
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
#if SDL_VIDEO_DRIVER_UIKIT
|
#ifdef SDL_VIDEO_DRIVER_UIKIT
|
||||||
#include "../../video/uikit/SDL_uikitvideo.h"
|
#include "../../video/uikit/SDL_uikitvideo.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ void *SDL_LoadObject(const char *sofile)
|
||||||
void *handle;
|
void *handle;
|
||||||
const char *loaderror;
|
const char *loaderror;
|
||||||
|
|
||||||
#if SDL_VIDEO_DRIVER_UIKIT
|
#ifdef SDL_VIDEO_DRIVER_UIKIT
|
||||||
if (!UIKit_IsSystemVersionAtLeast(8.0)) {
|
if (!UIKit_IsSystemVersionAtLeast(8.0)) {
|
||||||
SDL_SetError("SDL_LoadObject requires iOS 8+");
|
SDL_SetError("SDL_LoadObject requires iOS 8+");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -33,7 +33,7 @@ int SDL_SYS_GetPreferredLocales(char *buf, size_t buflen)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* !!! FIXME: do we not have GetUserPreferredUILanguages on WinPhone or UWP? */
|
/* !!! FIXME: do we not have GetUserPreferredUILanguages on WinPhone or UWP? */
|
||||||
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
|
#if SDL_WINAPI_FAMILY_PHONE
|
||||||
ret = GetLocaleInfoEx(LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_SNAME, wbuffer, SDL_arraysize(wbuffer));
|
ret = GetLocaleInfoEx(LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_SNAME, wbuffer, SDL_arraysize(wbuffer));
|
||||||
#else
|
#else
|
||||||
ret = GetSystemDefaultLocaleName(wbuffer, SDL_arraysize(wbuffer));
|
ret = GetSystemDefaultLocaleName(wbuffer, SDL_arraysize(wbuffer));
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#if USE_POSIX_SPAWN
|
#ifdef USE_POSIX_SPAWN
|
||||||
#include <spawn.h>
|
#include <spawn.h>
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,7 +37,7 @@ int SDL_SYS_OpenURL(const char *url)
|
||||||
{
|
{
|
||||||
const pid_t pid1 = fork();
|
const pid_t pid1 = fork();
|
||||||
if (pid1 == 0) { /* child process */
|
if (pid1 == 0) { /* child process */
|
||||||
#if USE_POSIX_SPAWN
|
#if defined(USE_POSIX_SPAWN)
|
||||||
pid_t pid2;
|
pid_t pid2;
|
||||||
const char *args[] = { "xdg-open", url, NULL };
|
const char *args[] = { "xdg-open", url, NULL };
|
||||||
/* Clear LD_PRELOAD so Chrome opens correctly when this application is launched by Steam */
|
/* Clear LD_PRELOAD so Chrome opens correctly when this application is launched by Steam */
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_ANDROID
|
#ifdef SDL_POWER_ANDROID
|
||||||
|
|
||||||
#include "../SDL_syspower.h"
|
#include "../SDL_syspower.h"
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_EMSCRIPTEN
|
#ifdef SDL_POWER_EMSCRIPTEN
|
||||||
|
|
||||||
#include <emscripten/html5.h>
|
#include <emscripten/html5.h>
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
/* !!! FIXME: does this thing even work on Haiku? */
|
/* !!! FIXME: does this thing even work on Haiku? */
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_HAIKU
|
#ifdef SDL_POWER_HAIKU
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_LINUX
|
#ifdef SDL_POWER_LINUX
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -525,7 +525,7 @@ SDL_GetPowerInfo_Linux_sys_class_power_supply(SDL_PowerState *state, int *second
|
||||||
}
|
}
|
||||||
|
|
||||||
/* d-bus queries to org.freedesktop.UPower. */
|
/* d-bus queries to org.freedesktop.UPower. */
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
#define UPOWER_DBUS_NODE "org.freedesktop.UPower"
|
#define UPOWER_DBUS_NODE "org.freedesktop.UPower"
|
||||||
#define UPOWER_DBUS_PATH "/org/freedesktop/UPower"
|
#define UPOWER_DBUS_PATH "/org/freedesktop/UPower"
|
||||||
#define UPOWER_DBUS_INTERFACE "org.freedesktop.UPower"
|
#define UPOWER_DBUS_INTERFACE "org.freedesktop.UPower"
|
||||||
|
@ -616,7 +616,7 @@ SDL_GetPowerInfo_Linux_org_freedesktop_upower(SDL_PowerState *state, int *second
|
||||||
{
|
{
|
||||||
SDL_bool retval = SDL_FALSE;
|
SDL_bool retval = SDL_FALSE;
|
||||||
|
|
||||||
#if SDL_USE_LIBDBUS
|
#ifdef SDL_USE_LIBDBUS
|
||||||
SDL_DBusContext *dbus = SDL_DBus_GetContext();
|
SDL_DBusContext *dbus = SDL_DBus_GetContext();
|
||||||
char **paths = NULL;
|
char **paths = NULL;
|
||||||
int i, numpaths = 0;
|
int i, numpaths = 0;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_MACOSX
|
#ifdef SDL_POWER_MACOSX
|
||||||
|
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
#include <IOKit/ps/IOPowerSources.h>
|
#include <IOKit/ps/IOPowerSources.h>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_PSP
|
#ifdef SDL_POWER_PSP
|
||||||
|
|
||||||
#include <psppower.h>
|
#include <psppower.h>
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_POWER_UIKIT
|
#ifdef SDL_POWER_UIKIT
|
||||||
|
|
||||||
void SDL_UIKit_UpdateBatteryMonitoring(void);
|
void SDL_UIKit_UpdateBatteryMonitoring(void);
|
||||||
SDL_bool SDL_GetPowerInfo_UIKit(SDL_PowerState *state, int *seconds, int *percent);
|
SDL_bool SDL_GetPowerInfo_UIKit(SDL_PowerState *state, int *seconds, int *percent);
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_UIKIT
|
#ifdef SDL_POWER_UIKIT
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_VITA
|
#ifdef SDL_POWER_VITA
|
||||||
|
|
||||||
#include <psp2/power.h>
|
#include <psp2/power.h>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#ifndef SDL_POWER_DISABLED
|
#ifndef SDL_POWER_DISABLED
|
||||||
#if SDL_POWER_WINDOWS
|
#ifdef SDL_POWER_WINDOWS
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED
|
#if (defined(SDL_VIDEO_RENDER_D3D) || defined(SDL_VIDEO_RENDER_D3D11) || defined(SDL_VIDEO_RENDER_D3D12)) && !defined(SDL_RENDER_DISABLED)
|
||||||
|
|
||||||
#include "SDL_d3dmath.h"
|
#include "SDL_d3dmath.h"
|
||||||
|
|
||||||
|
@ -129,4 +129,4 @@ Float4X4 MatrixRotationZ(float r)
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED */
|
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !defined(SDL_RENDER_DISABLED) */
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED
|
#if (defined(SDL_VIDEO_RENDER_D3D) || defined(SDL_VIDEO_RENDER_D3D11) || defined(SDL_VIDEO_RENDER_D3D12)) && !defined(SDL_RENDER_DISABLED)
|
||||||
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
/* Set up for C function definitions, even when using C++ */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -78,4 +78,4 @@ Float4X4 MatrixRotationZ(float r);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED */
|
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !defined(SDL_RENDER_DISABLED) */
|
||||||
|
|
|
@ -87,33 +87,33 @@ this should probably be removed at some point in the future. --ryan. */
|
||||||
SDL_COMPOSE_BLENDMODE(SDL_BLENDFACTOR_DST_COLOR, SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA, SDL_BLENDOPERATION_ADD, \
|
SDL_COMPOSE_BLENDMODE(SDL_BLENDFACTOR_DST_COLOR, SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA, SDL_BLENDOPERATION_ADD, \
|
||||||
SDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_ADD)
|
SDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_ADD)
|
||||||
|
|
||||||
#if !SDL_RENDER_DISABLED
|
#ifndef SDL_RENDER_DISABLED
|
||||||
static const SDL_RenderDriver *render_drivers[] = {
|
static const SDL_RenderDriver *render_drivers[] = {
|
||||||
#if SDL_VIDEO_RENDER_D3D12
|
#ifdef SDL_VIDEO_RENDER_D3D12
|
||||||
&D3D12_RenderDriver,
|
&D3D12_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_D3D11
|
#ifdef SDL_VIDEO_RENDER_D3D11
|
||||||
&D3D11_RenderDriver,
|
&D3D11_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_D3D
|
#ifdef SDL_VIDEO_RENDER_D3D
|
||||||
&D3D_RenderDriver,
|
&D3D_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_METAL
|
#ifdef SDL_VIDEO_RENDER_METAL
|
||||||
&METAL_RenderDriver,
|
&METAL_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_OGL
|
#ifdef SDL_VIDEO_RENDER_OGL
|
||||||
&GL_RenderDriver,
|
&GL_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_OGL_ES2
|
#ifdef SDL_VIDEO_RENDER_OGL_ES2
|
||||||
&GLES2_RenderDriver,
|
&GLES2_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_PS2
|
#ifdef SDL_VIDEO_RENDER_PS2
|
||||||
&PS2_RenderDriver,
|
&PS2_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_PSP
|
#ifdef SDL_VIDEO_RENDER_PSP
|
||||||
&PSP_RenderDriver,
|
&PSP_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_VITA_GXM
|
#ifdef SDL_VIDEO_RENDER_VITA_GXM
|
||||||
&VITA_GXM_RenderDriver,
|
&VITA_GXM_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_SW
|
#if SDL_VIDEO_RENDER_SW
|
||||||
|
@ -668,7 +668,7 @@ static int UpdateLogicalPresentation(SDL_Renderer *renderer);
|
||||||
|
|
||||||
int SDL_GetNumRenderDrivers(void)
|
int SDL_GetNumRenderDrivers(void)
|
||||||
{
|
{
|
||||||
#if !SDL_RENDER_DISABLED
|
#if !defined(SDL_RENDER_DISABLED)
|
||||||
return SDL_arraysize(render_drivers);
|
return SDL_arraysize(render_drivers);
|
||||||
#else
|
#else
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -677,7 +677,7 @@ int SDL_GetNumRenderDrivers(void)
|
||||||
|
|
||||||
const char *SDL_GetRenderDriver(int index)
|
const char *SDL_GetRenderDriver(int index)
|
||||||
{
|
{
|
||||||
#if !SDL_RENDER_DISABLED
|
#if !defined(SDL_RENDER_DISABLED)
|
||||||
if (index < 0 || index >= SDL_GetNumRenderDrivers()) {
|
if (index < 0 || index >= SDL_GetNumRenderDrivers()) {
|
||||||
SDL_SetError("index must be in the range of 0 - %d",
|
SDL_SetError("index must be in the range of 0 - %d",
|
||||||
SDL_GetNumRenderDrivers() - 1);
|
SDL_GetNumRenderDrivers() - 1);
|
||||||
|
@ -741,7 +741,7 @@ int SDL_CreateWindowAndRenderer(int width, int height, Uint32 window_flags, SDL_
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SDL_RENDER_DISABLED
|
#if !defined(SDL_RENDER_DISABLED)
|
||||||
static SDL_INLINE void VerifyDrawQueueFunctions(const SDL_Renderer *renderer)
|
static SDL_INLINE void VerifyDrawQueueFunctions(const SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
/* all of these functions are required to be implemented, even as no-ops, so we don't
|
/* all of these functions are required to be implemented, even as no-ops, so we don't
|
||||||
|
@ -801,7 +801,7 @@ static void SDL_CalculateSimulatedVSyncInterval(SDL_Renderer *renderer, SDL_Wind
|
||||||
|
|
||||||
SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, const char *name, Uint32 flags)
|
SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, const char *name, Uint32 flags)
|
||||||
{
|
{
|
||||||
#if !SDL_RENDER_DISABLED
|
#if !defined(SDL_RENDER_DISABLED)
|
||||||
SDL_Renderer *renderer = NULL;
|
SDL_Renderer *renderer = NULL;
|
||||||
const int n = SDL_GetNumRenderDrivers();
|
const int n = SDL_GetNumRenderDrivers();
|
||||||
SDL_bool batching = SDL_TRUE;
|
SDL_bool batching = SDL_TRUE;
|
||||||
|
@ -948,7 +948,7 @@ error:
|
||||||
|
|
||||||
SDL_Renderer *SDL_CreateSoftwareRenderer(SDL_Surface *surface)
|
SDL_Renderer *SDL_CreateSoftwareRenderer(SDL_Surface *surface)
|
||||||
{
|
{
|
||||||
#if !SDL_RENDER_DISABLED && SDL_VIDEO_RENDER_SW
|
#if !defined(SDL_RENDER_DISABLED) && SDL_VIDEO_RENDER_SW
|
||||||
SDL_Renderer *renderer;
|
SDL_Renderer *renderer;
|
||||||
|
|
||||||
renderer = SW_CreateRendererForSurface(surface);
|
renderer = SW_CreateRendererForSurface(surface);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED
|
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
#include <SDL3/SDL_syswm.h>
|
#include <SDL3/SDL_syswm.h>
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D
|
#ifdef SDL_VIDEO_RENDER_D3D
|
||||||
#define D3D_DEBUG_INFO
|
#define D3D_DEBUG_INFO
|
||||||
#include <d3d9.h>
|
#include <d3d9.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -1735,7 +1735,7 @@ SDL_GetRenderD3D9Device(SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
IDirect3DDevice9 *device = NULL;
|
IDirect3DDevice9 *device = NULL;
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED
|
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
||||||
D3D_RenderData *data = (D3D_RenderData *)renderer->driverdata;
|
D3D_RenderData *data = (D3D_RenderData *)renderer->driverdata;
|
||||||
|
|
||||||
/* Make sure that this is a D3D renderer */
|
/* Make sure that this is a D3D renderer */
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
#include "SDL_internal.h"
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED
|
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue