From 261daef933910fa21d702e782755699f6dde06d2 Mon Sep 17 00:00:00 2001 From: Colby Klein Date: Fri, 8 Jan 2021 07:58:35 -0800 Subject: [PATCH] fix build and no audio out on macOS 11, closes issue #2080 --- src/arch/ArchHooks/ArchHooks_MacOSX.mm | 2 ++ src/arch/Sound/RageSoundDriver_AU.cpp | 7 ++++--- src/archutils/Darwin/HIDDevice.h | 2 +- src/archutils/Darwin/JoystickDevice.cpp | 6 +++--- src/archutils/Darwin/JoystickDevice.h | 2 +- src/archutils/Darwin/KeyboardDevice.cpp | 4 ++-- src/archutils/Darwin/KeyboardDevice.h | 2 +- src/archutils/Darwin/MouseDevice.cpp | 6 +++--- src/archutils/Darwin/MouseDevice.h | 2 +- 9 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/arch/ArchHooks/ArchHooks_MacOSX.mm b/src/arch/ArchHooks/ArchHooks_MacOSX.mm index e5a2014343..bf24354952 100644 --- a/src/arch/ArchHooks/ArchHooks_MacOSX.mm +++ b/src/arch/ArchHooks/ArchHooks_MacOSX.mm @@ -135,6 +135,8 @@ RString ArchHooks_MacOSX::GetArchName() const return "Mac OS X (i386)"; #elif defined(__x86_64__) return "Mac OS X (x86_64)"; +#elif defined(__aarch64__) + return "macOS (ARM64)"; #else #error What arch? #endif diff --git a/src/arch/Sound/RageSoundDriver_AU.cpp b/src/arch/Sound/RageSoundDriver_AU.cpp index 006f935a17..665f77a5c1 100644 --- a/src/arch/Sound/RageSoundDriver_AU.cpp +++ b/src/arch/Sound/RageSoundDriver_AU.cpp @@ -121,7 +121,7 @@ static void SetSampleRate( AudioUnit au, Float64 desiredRate ) RString RageSoundDriver_AU::Init() { - ComponentDescription desc; + AudioComponentDescription desc; desc.componentType = kAudioUnitType_Output; desc.componentSubType = kAudioUnitSubType_DefaultOutput; @@ -129,12 +129,13 @@ RString RageSoundDriver_AU::Init() desc.componentFlags = 0; desc.componentFlagsMask = 0; - Component comp = FindNextComponent( NULL, &desc ); + AudioComponent comp = AudioComponentFindNext(NULL, &desc); + //Component comp = FindNextComponent( NULL, &desc ); if( comp == nullptr ) return "Failed to find the default output unit."; - OSStatus error = OpenAComponent( comp, &m_OutputUnit ); + OSStatus error = AudioComponentInstanceNew( comp, &m_OutputUnit ); if( error != noErr || m_OutputUnit == nullptr ) return ERROR( "Could not open the default output unit", error ); diff --git a/src/archutils/Darwin/HIDDevice.h b/src/archutils/Darwin/HIDDevice.h index 897c595602..da97ca4a0e 100644 --- a/src/archutils/Darwin/HIDDevice.h +++ b/src/archutils/Darwin/HIDDevice.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include "RageLog.h" #include "RageInputDevice.h" diff --git a/src/archutils/Darwin/JoystickDevice.cpp b/src/archutils/Darwin/JoystickDevice.cpp index 0642b4a38c..ecdbf2ea4a 100644 --- a/src/archutils/Darwin/JoystickDevice.cpp +++ b/src/archutils/Darwin/JoystickDevice.cpp @@ -2,7 +2,7 @@ #include "JoystickDevice.h" #include "RageLog.h" -using __gnu_cxx::hash_map; +using std::unordered_map; Joystick::Joystick() : id( InputDevice_Invalid ), x_axis( 0 ), y_axis( 0 ), z_axis( 0 ), @@ -134,7 +134,7 @@ void JoystickDevice::Open() ADD( x_rot ); ADD( y_rot ); ADD( z_rot ); ADD( hat ); #undef ADD - for( hash_map::const_iterator j = js.mapping.begin(); j != js.mapping.end(); ++j ) + for( unordered_map::const_iterator j = js.mapping.begin(); j != js.mapping.end(); ++j ) AddElementToQueue( j->first ); } } @@ -231,7 +231,7 @@ void JoystickDevice::GetButtonPresses( vector& vPresses, IOHIDEleme else { // hash_map::operator[] is not const - hash_map::const_iterator iter; + unordered_map::const_iterator iter; iter = js.mapping.find( cookie ); if( iter != js.mapping.end() ) diff --git a/src/archutils/Darwin/JoystickDevice.h b/src/archutils/Darwin/JoystickDevice.h index 869128e8d1..ba59f2feb4 100644 --- a/src/archutils/Darwin/JoystickDevice.h +++ b/src/archutils/Darwin/JoystickDevice.h @@ -7,7 +7,7 @@ struct Joystick { InputDevice id; // map cookie to button - __gnu_cxx::hash_map mapping; + std::unordered_map mapping; IOHIDElementCookie x_axis, y_axis, z_axis, x_rot, y_rot, z_rot, hat; int x_min, x_max; int y_min, y_max; diff --git a/src/archutils/Darwin/KeyboardDevice.cpp b/src/archutils/Darwin/KeyboardDevice.cpp index e002ee363f..5db6f84b4d 100644 --- a/src/archutils/Darwin/KeyboardDevice.cpp +++ b/src/archutils/Darwin/KeyboardDevice.cpp @@ -162,7 +162,7 @@ void KeyboardDevice::AddElement( int usagePage, int usage, IOHIDElementCookie co void KeyboardDevice::Open() { - for( hash_map::const_iterator i = m_Mapping.begin(); i != m_Mapping.end(); ++i ) + for( unordered_map::const_iterator i = m_Mapping.begin(); i != m_Mapping.end(); ++i ) { //LOG->Trace( "Adding %s to queue, cookie %p", DeviceButtonToString(i->second).c_str(), i->first ); AddElementToQueue( i->first ); @@ -171,7 +171,7 @@ void KeyboardDevice::Open() void KeyboardDevice::GetButtonPresses( vector& vPresses, IOHIDElementCookie cookie, int value, const RageTimer& now ) const { - hash_map::const_iterator iter = m_Mapping.find( cookie ); + unordered_map::const_iterator iter = m_Mapping.find( cookie ); if( iter != m_Mapping.end() ) { diff --git a/src/archutils/Darwin/KeyboardDevice.h b/src/archutils/Darwin/KeyboardDevice.h index 95314d840d..9c126efaf1 100644 --- a/src/archutils/Darwin/KeyboardDevice.h +++ b/src/archutils/Darwin/KeyboardDevice.h @@ -6,7 +6,7 @@ class KeyboardDevice : public HIDDevice { private: - __gnu_cxx::hash_map m_Mapping; + std::unordered_map m_Mapping; protected: bool AddLogicalDevice( int usagePage, int usage ); diff --git a/src/archutils/Darwin/MouseDevice.cpp b/src/archutils/Darwin/MouseDevice.cpp index 8673587aad..bc6aebad27 100644 --- a/src/archutils/Darwin/MouseDevice.cpp +++ b/src/archutils/Darwin/MouseDevice.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "MouseDevice.h" -using __gnu_cxx::hash_map; +using std::unordered_map; Mouse::Mouse() : id( InputDevice_Invalid ), x_axis( 0 ), y_axis( 0 ), z_axis( 0 ), @@ -94,7 +94,7 @@ void MouseDevice::Open() #define ADD(x) if( m.x ) AddElementToQueue( m.x ) ADD( x_axis ); ADD( y_axis ); ADD( z_axis ); #undef ADD - for( hash_map::const_iterator i = m_Mapping.begin(); i != m_Mapping.end(); ++i ) + for( unordered_map::const_iterator i = m_Mapping.begin(); i != m_Mapping.end(); ++i ) AddElementToQueue( i->first ); } @@ -124,7 +124,7 @@ void MouseDevice::GetButtonPresses( vector& vPresses, IOHIDElementC } else { - hash_map::const_iterator iter = m_Mapping.find( cookie ); + unordered_map::const_iterator iter = m_Mapping.find( cookie ); if( iter != m_Mapping.end() ) vPresses.push_back( DeviceInput(DEVICE_MOUSE, iter->second, value, now) ); } diff --git a/src/archutils/Darwin/MouseDevice.h b/src/archutils/Darwin/MouseDevice.h index 1ea8faac6c..255db6b19f 100644 --- a/src/archutils/Darwin/MouseDevice.h +++ b/src/archutils/Darwin/MouseDevice.h @@ -18,7 +18,7 @@ struct Mouse class MouseDevice : public HIDDevice { private: - __gnu_cxx::hash_map m_Mapping; + std::unordered_map m_Mapping; Mouse m_Mouse; protected: