Cocoa Port: Polish the behaviors for hardware microphone authorization. (Related to commit efa72df1.)
- Hardware microphone authorization is now requested on app startup instead of when a ROM is loaded. - CoreAudioInput is now better at handling situations when the hardware mic is not available, fixing some bugs with the mic level indicator. - Add some helpful tooltips in the Microphone Settings panel when the hardware mic is not authorized. - Add a new idle mic icon to denote when the hardware mic is not available. (The gray color should denote a 'software only' status.) - Further brighten up the microphone icon for when software samples are active to help with visibility when running Dark Mode.
This commit is contained in:
parent
02d8f0aa4d
commit
a73705bc50
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2017 DeSmuME team
|
||||
Copyright (C) 2017-2022 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -673,6 +673,17 @@ void ClientInputHandler::ApplyInputs()
|
|||
}
|
||||
}
|
||||
|
||||
void ClientInputHandler::SetHardwareMicAuthorized(bool isAuthorized)
|
||||
{
|
||||
// Do nothing. This is implementation-dependent.
|
||||
}
|
||||
|
||||
bool ClientInputHandler::IsHardwareMicAuthorized()
|
||||
{
|
||||
// Do nothing. This is implementation-dependent.
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ClientInputHandler::IsHardwareMicAvailable()
|
||||
{
|
||||
// Do nothing. This is implementation-dependent.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2017 DeSmuME team
|
||||
Copyright (C) 2017-2022 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -438,6 +438,9 @@ public:
|
|||
void ProcessInputs();
|
||||
void ApplyInputs();
|
||||
|
||||
virtual void SetHardwareMicAuthorized(bool isAuthorized);
|
||||
virtual bool IsHardwareMicAuthorized();
|
||||
|
||||
virtual bool IsHardwareMicAvailable();
|
||||
virtual void ResetHardwareMic();
|
||||
virtual uint8_t HandleMicSampleRead();
|
||||
|
|
|
@ -1332,6 +1332,16 @@
|
|||
AB3BF4351E256309003E2B24 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB3BF4321E2562F2003E2B24 /* QuartzCore.framework */; };
|
||||
AB3BF4381E25D9AE003E2B24 /* DisplayViewCALayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3BF4371E25D9AE003E2B24 /* DisplayViewCALayer.mm */; };
|
||||
AB3BF4391E25D9AE003E2B24 /* DisplayViewCALayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3BF4371E25D9AE003E2B24 /* DisplayViewCALayer.mm */; };
|
||||
AB3E8AEC2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AED2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AEE2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AEF2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF02808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF12808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF22808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF32808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF42808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3E8AF52808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB3FBD802176DE95005722D0 /* WifiSettingsPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3FBD7F2176DE95005722D0 /* WifiSettingsPanel.mm */; };
|
||||
AB3FBD812176DE95005722D0 /* WifiSettingsPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3FBD7F2176DE95005722D0 /* WifiSettingsPanel.mm */; };
|
||||
AB3FBD822176DE95005722D0 /* WifiSettingsPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3FBD7F2176DE95005722D0 /* WifiSettingsPanel.mm */; };
|
||||
|
@ -2740,16 +2750,6 @@
|
|||
ABA67CDF2808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB22808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png */; };
|
||||
ABA67CE02808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB22808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png */; };
|
||||
ABA67CE12808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB22808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png */; };
|
||||
ABA67CE22808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE32808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE42808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE52808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE62808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE72808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE82808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CE92808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CEA2808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CEB2808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA67CEC2808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
ABA67CED2808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
ABA67CEE2808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
|
@ -2760,16 +2760,6 @@
|
|||
ABA67CF32808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
ABA67CF42808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
ABA67CF52808B97E00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */; };
|
||||
ABA67CF62808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CF72808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CF82808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CF92808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFA2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFB2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFC2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFD2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFE2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67CFF2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA67D002808B97E00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB62808B97D00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
ABA67D012808B97E00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB62808B97D00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
ABA67D022808B97E00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA67CB62808B97D00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -3564,6 +3554,7 @@
|
|||
AB3BF4401E262943003E2B24 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
|
||||
AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = "<group>"; };
|
||||
AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = "<group>"; };
|
||||
AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneIdleNoHardware_256x256.png; path = images/Icon_MicrophoneIdleNoHardware_256x256.png; sourceTree = "<group>"; };
|
||||
AB3FBD7E2176DE95005722D0 /* WifiSettingsPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WifiSettingsPanel.h; sourceTree = "<group>"; };
|
||||
AB3FBD7F2176DE95005722D0 /* WifiSettingsPanel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WifiSettingsPanel.mm; sourceTree = "<group>"; };
|
||||
AB4055ED169F59380016AC3E /* AsmJit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsmJit.h; sourceTree = "<group>"; };
|
||||
|
@ -3764,9 +3755,7 @@
|
|||
ABA67CB02808B97C00B5208D /* Icon_VolumeOneThird_DarkMode_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeOneThird_DarkMode_16x16.png; path = images/Icon_VolumeOneThird_DarkMode_16x16.png; sourceTree = "<group>"; };
|
||||
ABA67CB12808B97D00B5208D /* Icon_VolumeOneThird_DarkMode_16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon_VolumeOneThird_DarkMode_16x16@2x.png"; path = "images/Icon_VolumeOneThird_DarkMode_16x16@2x.png"; sourceTree = "<group>"; };
|
||||
ABA67CB22808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon_VolumeTwoThird_DarkMode_16x16@2x.png"; path = "images/Icon_VolumeTwoThird_DarkMode_16x16@2x.png"; sourceTree = "<group>"; };
|
||||
ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneDenied_DarkMode_256x256.png; path = images/Icon_MicrophoneDenied_DarkMode_256x256.png; sourceTree = "<group>"; };
|
||||
ABA67CB42808B97D00B5208D /* Icon_VolumeTwoThird_DarkMode_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeTwoThird_DarkMode_16x16.png; path = images/Icon_VolumeTwoThird_DarkMode_16x16.png; sourceTree = "<group>"; };
|
||||
ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneDenied_256x256.png; path = images/Icon_MicrophoneDenied_256x256.png; sourceTree = "<group>"; };
|
||||
ABA67CB62808B97D00B5208D /* Icon_VolumeFull_DarkMode_16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon_VolumeFull_DarkMode_16x16@2x.png"; path = "images/Icon_VolumeFull_DarkMode_16x16@2x.png"; sourceTree = "<group>"; };
|
||||
ABA67CB72808B97E00B5208D /* Icon_VolumeFull_DarkMode_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeFull_DarkMode_16x16.png; path = images/Icon_VolumeFull_DarkMode_16x16.png; sourceTree = "<group>"; };
|
||||
ABA67CB82808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneOff_DarkMode_256x256.png; path = images/Icon_MicrophoneOff_DarkMode_256x256.png; sourceTree = "<group>"; };
|
||||
|
@ -5179,10 +5168,9 @@
|
|||
ABB0FBC81A9EED350060C55A /* Icon_MicrophoneBlack_256x256.png */,
|
||||
ABB0FBC91A9EED350060C55A /* Icon_MicrophoneBlueGlow_256x256.png */,
|
||||
ABC503AC1AAC2B71002FCD43 /* Icon_MicrophoneDarkGreen_256x256.png */,
|
||||
ABA67CB52808B97D00B5208D /* Icon_MicrophoneDenied_256x256.png */,
|
||||
ABA67CB32808B97D00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png */,
|
||||
ABB0FBD81A9FD0260060C55A /* Icon_MicrophoneGray_256x256.png */,
|
||||
ABB0FBCA1A9EED350060C55A /* Icon_MicrophoneGreen_256x256.png */,
|
||||
AB3E8AEB2808FDF3007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png */,
|
||||
ABA67CB82808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png */,
|
||||
ABB0FBCB1A9EED350060C55A /* Icon_MicrophoneRed_256x256.png */,
|
||||
AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */,
|
||||
|
@ -5959,7 +5947,6 @@
|
|||
ABA67D162808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
8C43E75127E3CD0100A35F65 /* InfoPlist.strings in Resources */,
|
||||
8C43E75227E3CD0100A35F65 /* MainMenu.xib in Resources */,
|
||||
ABA67CF82808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
8C43E75327E3CD0100A35F65 /* Localizable.strings in Resources */,
|
||||
8C43E75427E3CD0100A35F65 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
8C43E75527E3CD0100A35F65 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6026,6 +6013,7 @@
|
|||
8C43E78C27E3CD0100A35F65 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
8C43E78D27E3CD0100A35F65 /* Icon_Piano_256x256.png in Resources */,
|
||||
8C43E78E27E3CD0100A35F65 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AEE2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
8C43E78F27E3CD0100A35F65 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
8C43E79027E3CD0100A35F65 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
8C43E79127E3CD0100A35F65 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6051,7 +6039,6 @@
|
|||
8C43E7A427E3CD0100A35F65 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
8C43E7A527E3CD0100A35F65 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
8C43E7A627E3CD0100A35F65 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE42808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
8C43E7A727E3CD0100A35F65 /* Image_GuitarGrip.png in Resources */,
|
||||
8C43E7A827E3CD0100A35F65 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
8C43E7A927E3CD0100A35F65 /* README.MAC in Resources */,
|
||||
|
@ -6079,7 +6066,6 @@
|
|||
ABA67D172808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
8C43E8AF27E3CD4C00A35F65 /* InfoPlist.strings in Resources */,
|
||||
8C43E8B027E3CD4C00A35F65 /* MainMenu.xib in Resources */,
|
||||
ABA67CF92808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
8C43E8B127E3CD4C00A35F65 /* Localizable.strings in Resources */,
|
||||
8C43E8B227E3CD4C00A35F65 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
8C43E8B327E3CD4C00A35F65 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6146,6 +6132,7 @@
|
|||
8C43E8EA27E3CD4C00A35F65 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
8C43E8EB27E3CD4C00A35F65 /* Icon_Piano_256x256.png in Resources */,
|
||||
8C43E8EC27E3CD4C00A35F65 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AEF2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
8C43E8ED27E3CD4C00A35F65 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
8C43E8EE27E3CD4C00A35F65 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
8C43E8EF27E3CD4C00A35F65 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6171,7 +6158,6 @@
|
|||
8C43E90227E3CD4C00A35F65 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
8C43E90327E3CD4C00A35F65 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
8C43E90427E3CD4C00A35F65 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE52808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
8C43E90527E3CD4C00A35F65 /* Image_GuitarGrip.png in Resources */,
|
||||
8C43E90627E3CD4C00A35F65 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
8C43E90727E3CD4C00A35F65 /* README.MAC in Resources */,
|
||||
|
@ -6199,7 +6185,6 @@
|
|||
ABA67D1D2808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
8CCD83C227E40B730024BDD5 /* InfoPlist.strings in Resources */,
|
||||
8CCD83C327E40B730024BDD5 /* MainMenu.xib in Resources */,
|
||||
ABA67CFF2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
8CCD83C427E40B730024BDD5 /* Localizable.strings in Resources */,
|
||||
8CCD83C527E40B730024BDD5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
8CCD83C627E40B730024BDD5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6266,6 +6251,7 @@
|
|||
8CCD83FD27E40B730024BDD5 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
8CCD83FE27E40B730024BDD5 /* Icon_Piano_256x256.png in Resources */,
|
||||
8CCD83FF27E40B730024BDD5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF52808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
8CCD840027E40B730024BDD5 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
8CCD840127E40B730024BDD5 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
8CCD840227E40B730024BDD5 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6291,7 +6277,6 @@
|
|||
8CCD841527E40B730024BDD5 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
8CCD841627E40B730024BDD5 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
8CCD841727E40B730024BDD5 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CEB2808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
8CCD841827E40B730024BDD5 /* Image_GuitarGrip.png in Resources */,
|
||||
8CCD841927E40B730024BDD5 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
8CCD841A27E40B730024BDD5 /* README.MAC in Resources */,
|
||||
|
@ -6319,7 +6304,6 @@
|
|||
ABA67D1B2808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB36C74227F2C8AE00C763C8 /* InfoPlist.strings in Resources */,
|
||||
AB36C74327F2C8AE00C763C8 /* MainMenu.xib in Resources */,
|
||||
ABA67CFD2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB36C74427F2C8AE00C763C8 /* Localizable.strings in Resources */,
|
||||
AB36C74527F2C8AE00C763C8 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB36C74627F2C8AE00C763C8 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6386,6 +6370,7 @@
|
|||
AB36C77D27F2C8AE00C763C8 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB36C77E27F2C8AE00C763C8 /* Icon_Piano_256x256.png in Resources */,
|
||||
AB36C77F27F2C8AE00C763C8 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF32808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB36C78027F2C8AE00C763C8 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB36C78127F2C8AE00C763C8 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB36C78227F2C8AE00C763C8 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6411,7 +6396,6 @@
|
|||
AB36C79527F2C8AE00C763C8 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB36C79627F2C8AE00C763C8 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
AB36C79727F2C8AE00C763C8 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE92808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
AB36C79827F2C8AE00C763C8 /* Image_GuitarGrip.png in Resources */,
|
||||
AB36C79927F2C8AE00C763C8 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB36C79A27F2C8AE00C763C8 /* README.MAC in Resources */,
|
||||
|
@ -6439,7 +6423,6 @@
|
|||
ABA67D1A2808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB4979C827F2E97A00E8A244 /* InfoPlist.strings in Resources */,
|
||||
AB4979C927F2E97A00E8A244 /* MainMenu.xib in Resources */,
|
||||
ABA67CFC2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB4979CA27F2E97A00E8A244 /* Localizable.strings in Resources */,
|
||||
AB4979CB27F2E97A00E8A244 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB4979CC27F2E97A00E8A244 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6506,6 +6489,7 @@
|
|||
AB497A0327F2E97A00E8A244 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB497A0427F2E97A00E8A244 /* Icon_Piano_256x256.png in Resources */,
|
||||
AB497A0527F2E97A00E8A244 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF22808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB497A0627F2E97A00E8A244 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB497A0727F2E97A00E8A244 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB497A0827F2E97A00E8A244 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6531,7 +6515,6 @@
|
|||
AB497A1B27F2E97A00E8A244 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB497A1C27F2E97A00E8A244 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
AB497A1D27F2E97A00E8A244 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE82808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
AB497A1E27F2E97A00E8A244 /* Image_GuitarGrip.png in Resources */,
|
||||
AB497A1F27F2E97A00E8A244 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB497A2027F2E97A00E8A244 /* README.MAC in Resources */,
|
||||
|
@ -6559,7 +6542,6 @@
|
|||
ABA67D192808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB79014D215B84F20082AE82 /* InfoPlist.strings in Resources */,
|
||||
AB79014E215B84F20082AE82 /* MainMenu.xib in Resources */,
|
||||
ABA67CFB2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB79014F215B84F20082AE82 /* Localizable.strings in Resources */,
|
||||
AB790150215B84F20082AE82 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB790151215B84F20082AE82 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6626,6 +6608,7 @@
|
|||
AB790188215B84F20082AE82 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB790189215B84F20082AE82 /* Icon_Piano_256x256.png in Resources */,
|
||||
AB79018A215B84F20082AE82 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF12808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB79018B215B84F20082AE82 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB79018C215B84F20082AE82 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB79018D215B84F20082AE82 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6651,7 +6634,6 @@
|
|||
AB7901A0215B84F20082AE82 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB7901A1215B84F20082AE82 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
AB7901A2215B84F20082AE82 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE72808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
AB7901A3215B84F20082AE82 /* Image_GuitarGrip.png in Resources */,
|
||||
AB7901A4215B84F20082AE82 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB7901A5215B84F20082AE82 /* README.MAC in Resources */,
|
||||
|
@ -6679,7 +6661,6 @@
|
|||
ABA67D142808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB796CAF15CDCBA200C59155 /* InfoPlist.strings in Resources */,
|
||||
AB796CB015CDCBA200C59155 /* MainMenu.xib in Resources */,
|
||||
ABA67CF62808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB796CB115CDCBA200C59155 /* Localizable.strings in Resources */,
|
||||
AB796CB215CDCBA200C59155 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB796CB315CDCBA200C59155 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6746,6 +6727,7 @@
|
|||
AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB681027187D4AEF0049F2C2 /* Icon_Piano_256x256.png in Resources */,
|
||||
ABDDF7C91898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AEC2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6771,7 +6753,6 @@
|
|||
ABB0FBD51A9EED350060C55A /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB68101F187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
ABA7313B1BB5104200B26147 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE22808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABAB454F187CDB70007BE20C /* Image_GuitarGrip.png in Resources */,
|
||||
AB681021187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB796CEC15CDCBA200C59155 /* README.MAC in Resources */,
|
||||
|
@ -6799,7 +6780,6 @@
|
|||
ABA67D182808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB79FFF0215B84E50082AE82 /* InfoPlist.strings in Resources */,
|
||||
AB79FFF1215B84E50082AE82 /* MainMenu.xib in Resources */,
|
||||
ABA67CFA2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB79FFF2215B84E50082AE82 /* Localizable.strings in Resources */,
|
||||
AB79FFF3215B84E50082AE82 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB79FFF4215B84E50082AE82 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6866,6 +6846,7 @@
|
|||
AB79002B215B84E50082AE82 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB79002C215B84E50082AE82 /* Icon_Piano_256x256.png in Resources */,
|
||||
AB79002D215B84E50082AE82 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF02808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB79002E215B84E50082AE82 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB79002F215B84E50082AE82 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB790030215B84E50082AE82 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -6891,7 +6872,6 @@
|
|||
AB790043215B84E50082AE82 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB790044215B84E50082AE82 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
AB790045215B84E50082AE82 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE62808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
AB790046215B84E50082AE82 /* Image_GuitarGrip.png in Resources */,
|
||||
AB790047215B84E50082AE82 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB790048215B84E50082AE82 /* README.MAC in Resources */,
|
||||
|
@ -6919,7 +6899,6 @@
|
|||
ABA67D152808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
AB8F3C221A53AC2600A80BF6 /* InfoPlist.strings in Resources */,
|
||||
AB8F3C231A53AC2600A80BF6 /* MainMenu.xib in Resources */,
|
||||
ABA67CF72808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
AB8F3C241A53AC2600A80BF6 /* Localizable.strings in Resources */,
|
||||
AB8F3C251A53AC2600A80BF6 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
AB8F3C261A53AC2600A80BF6 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -6986,6 +6965,7 @@
|
|||
AB8F3C541A53AC2600A80BF6 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB8F3C551A53AC2600A80BF6 /* Icon_Piano_256x256.png in Resources */,
|
||||
AB8F3C561A53AC2600A80BF6 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AED2808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
AB8F3C571A53AC2600A80BF6 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB8F3C581A53AC2600A80BF6 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB8F3C591A53AC2600A80BF6 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -7011,7 +6991,6 @@
|
|||
ABB0FBD71A9EED350060C55A /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
AB8F3C6C1A53AC2600A80BF6 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
ABA7313D1BB5104200B26147 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CE32808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
AB8F3C6D1A53AC2600A80BF6 /* Image_GuitarGrip.png in Resources */,
|
||||
AB8F3C6E1A53AC2600A80BF6 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
AB8F3C6F1A53AC2600A80BF6 /* README.MAC in Resources */,
|
||||
|
@ -7048,7 +7027,6 @@
|
|||
ABA67D1C2808B97E00B5208D /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABD2CCF626E05CB000FB15F7 /* InfoPlist.strings in Resources */,
|
||||
ABD2CCF726E05CB000FB15F7 /* MainMenu.xib in Resources */,
|
||||
ABA67CFE2808B97E00B5208D /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABD2CCF826E05CB000FB15F7 /* Localizable.strings in Resources */,
|
||||
ABD2CCF926E05CB000FB15F7 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABD2CCFA26E05CB000FB15F7 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
|
@ -7115,6 +7093,7 @@
|
|||
ABD2CD3126E05CB000FB15F7 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
ABD2CD3226E05CB000FB15F7 /* Icon_Piano_256x256.png in Resources */,
|
||||
ABD2CD3326E05CB000FB15F7 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
AB3E8AF42808FDF4007FF5C7 /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
ABD2CD3426E05CB000FB15F7 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
ABD2CD3526E05CB000FB15F7 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
ABD2CD3626E05CB000FB15F7 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
|
@ -7140,7 +7119,6 @@
|
|||
ABD2CD4926E05CB000FB15F7 /* Icon_MicrophoneRed_256x256.png in Resources */,
|
||||
ABD2CD4A26E05CB000FB15F7 /* Icon_GuitarGrip_Button_Red_512x512.png in Resources */,
|
||||
ABD2CD4B26E05CB000FB15F7 /* SourceSansPro-Bold.otf in Resources */,
|
||||
ABA67CEA2808B97E00B5208D /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABD2CD4C26E05CB000FB15F7 /* Image_GuitarGrip.png in Resources */,
|
||||
ABD2CD4D26E05CB000FB15F7 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */,
|
||||
ABD2CD4E26E05CB000FB15F7 /* README.MAC in Resources */,
|
||||
|
|
|
@ -838,6 +838,11 @@
|
|||
AB6A198416CAD66900384EED /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB6A198216CAD66900384EED /* cocoa_GPU.mm */; };
|
||||
AB6A198516CAD66900384EED /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB6A198216CAD66900384EED /* cocoa_GPU.mm */; };
|
||||
AB6A198616CAD66900384EED /* cocoa_GPU.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB6A198216CAD66900384EED /* cocoa_GPU.mm */; };
|
||||
AB6D78942809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB6D78952809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB6D78962809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB6D78972809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB6D78982809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */; };
|
||||
AB700DBA16CDDBC400FBD336 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB700DB816CDDBC400FBD336 /* DisplayWindow.xib */; };
|
||||
AB700DBB16CDDBC400FBD336 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB700DB816CDDBC400FBD336 /* DisplayWindow.xib */; };
|
||||
AB700DBC16CDDBC400FBD336 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB700DB816CDDBC400FBD336 /* DisplayWindow.xib */; };
|
||||
|
@ -1159,8 +1164,6 @@
|
|||
ABA1658F2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */; };
|
||||
ABA165902808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */; };
|
||||
ABA165912808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */; };
|
||||
ABA165922808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA165932808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA165942808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */; };
|
||||
ABA165952808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */; };
|
||||
ABA165962808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -1173,8 +1176,6 @@
|
|||
ABA1659D2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */; };
|
||||
ABA1659E2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */; };
|
||||
ABA1659F2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */; };
|
||||
ABA165A02808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA165A12808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA165A22808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */; };
|
||||
ABA165A32808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */; };
|
||||
ABA165A42808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -1187,8 +1188,6 @@
|
|||
ABA165AB2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */; };
|
||||
ABA165AC2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */; };
|
||||
ABA165AD2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */; };
|
||||
ABA165AE2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA165AF2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA165B02808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */; };
|
||||
ABA165B12808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */; };
|
||||
ABA165B22808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -1201,8 +1200,6 @@
|
|||
ABA165B92808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */; };
|
||||
ABA165BA2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */; };
|
||||
ABA165BB2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */; };
|
||||
ABA165BC2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA165BD2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA165BE2808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */; };
|
||||
ABA165BF2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */; };
|
||||
ABA165C02808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -1215,8 +1212,6 @@
|
|||
ABA165C72808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */; };
|
||||
ABA165C82808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */; };
|
||||
ABA165C92808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */; };
|
||||
ABA165CA2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */; };
|
||||
ABA165CB2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */; };
|
||||
ABA165CC2808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */; };
|
||||
ABA165CD2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */; };
|
||||
ABA165CE2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */; };
|
||||
|
@ -2057,6 +2052,7 @@
|
|||
AB6A187B16C9951C00384EED /* EmuControllerDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EmuControllerDelegate.mm; sourceTree = "<group>"; };
|
||||
AB6A198116CAD66900384EED /* cocoa_GPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_GPU.h; sourceTree = "<group>"; };
|
||||
AB6A198216CAD66900384EED /* cocoa_GPU.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_GPU.mm; sourceTree = "<group>"; };
|
||||
AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneIdleNoHardware_256x256.png; path = images/Icon_MicrophoneIdleNoHardware_256x256.png; sourceTree = "<group>"; };
|
||||
AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_nand.cpp; sourceTree = "<group>"; };
|
||||
AB6FE66A26E6F7C2002B2106 /* GPU_Operations_AVX2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GPU_Operations_AVX2.cpp; sourceTree = "<group>"; };
|
||||
AB6FE66B26E6F7C2002B2106 /* GPU_Operations_AVX2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GPU_Operations_AVX2.h; sourceTree = "<group>"; };
|
||||
|
@ -2092,8 +2088,6 @@
|
|||
ABA165812808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_32x32.png; path = images/Icon_ActionReplay_32x32.png; sourceTree = "<group>"; };
|
||||
ABA165822808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_32x32.png; path = images/Icon_CodeBreaker_32x32.png; sourceTree = "<group>"; };
|
||||
ABA165832808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DeSmuME_32x32.png; path = images/Icon_DeSmuME_32x32.png; sourceTree = "<group>"; };
|
||||
ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneDenied_256x256.png; path = images/Icon_MicrophoneDenied_256x256.png; sourceTree = "<group>"; };
|
||||
ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneDenied_DarkMode_256x256.png; path = images/Icon_MicrophoneDenied_DarkMode_256x256.png; sourceTree = "<group>"; };
|
||||
ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneOff_DarkMode_256x256.png; path = images/Icon_MicrophoneOff_DarkMode_256x256.png; sourceTree = "<group>"; };
|
||||
ABA165872808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeFull_DarkMode_16x16.png; path = images/Icon_VolumeFull_DarkMode_16x16.png; sourceTree = "<group>"; };
|
||||
ABA165882808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon_VolumeFull_DarkMode_16x16@2x.png"; path = "images/Icon_VolumeFull_DarkMode_16x16@2x.png"; sourceTree = "<group>"; };
|
||||
|
@ -3336,10 +3330,9 @@
|
|||
AB1CC8161AA50C8D008B0A16 /* Icon_MicrophoneBlack_256x256.png */,
|
||||
AB1CC8171AA50C8D008B0A16 /* Icon_MicrophoneBlueGlow_256x256.png */,
|
||||
ABACB7391AAC46B20066F429 /* Icon_MicrophoneDarkGreen_256x256.png */,
|
||||
ABA165842808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png */,
|
||||
ABA165852808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png */,
|
||||
AB1CC8181AA50C8D008B0A16 /* Icon_MicrophoneGray_256x256.png */,
|
||||
AB1CC8191AA50C8D008B0A16 /* Icon_MicrophoneGreen_256x256.png */,
|
||||
AB6D78932809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png */,
|
||||
ABA165862808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png */,
|
||||
AB1CC81A1AA50C8D008B0A16 /* Icon_MicrophoneRed_256x256.png */,
|
||||
AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */,
|
||||
|
@ -4011,8 +4004,6 @@
|
|||
ABA1658F2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABA165902808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
ABA165912808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */,
|
||||
ABA165922808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABA165932808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABA165942808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABA165952808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */,
|
||||
ABA165962808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */,
|
||||
|
@ -4022,6 +4013,7 @@
|
|||
ABA1659A2808BD6A00C8CFF5 /* Icon_VolumeOneThird_DarkMode_16x16@2x.png in Resources */,
|
||||
ABA1659B2808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */,
|
||||
ABA1659C2808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */,
|
||||
AB6D78942809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -4131,8 +4123,6 @@
|
|||
ABA1659D2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABA1659E2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
ABA1659F2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */,
|
||||
ABA165A02808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABA165A12808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABA165A22808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABA165A32808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */,
|
||||
ABA165A42808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */,
|
||||
|
@ -4142,6 +4132,7 @@
|
|||
ABA165A82808BD6A00C8CFF5 /* Icon_VolumeOneThird_DarkMode_16x16@2x.png in Resources */,
|
||||
ABA165A92808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */,
|
||||
ABA165AA2808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */,
|
||||
AB6D78952809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -4251,8 +4242,6 @@
|
|||
ABA165C72808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABA165C82808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
ABA165C92808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */,
|
||||
ABA165CA2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABA165CB2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABA165CC2808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABA165CD2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */,
|
||||
ABA165CE2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */,
|
||||
|
@ -4262,6 +4251,7 @@
|
|||
ABA165D22808BD6A00C8CFF5 /* Icon_VolumeOneThird_DarkMode_16x16@2x.png in Resources */,
|
||||
ABA165D32808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */,
|
||||
ABA165D42808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */,
|
||||
AB6D78982809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -4371,8 +4361,6 @@
|
|||
ABA165B92808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABA165BA2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
ABA165BB2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */,
|
||||
ABA165BC2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABA165BD2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABA165BE2808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABA165BF2808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */,
|
||||
ABA165C02808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */,
|
||||
|
@ -4382,6 +4370,7 @@
|
|||
ABA165C42808BD6A00C8CFF5 /* Icon_VolumeOneThird_DarkMode_16x16@2x.png in Resources */,
|
||||
ABA165C52808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */,
|
||||
ABA165C62808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */,
|
||||
AB6D78972809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -4491,8 +4480,6 @@
|
|||
ABA165AB2808BD6A00C8CFF5 /* Icon_ActionReplay_32x32.png in Resources */,
|
||||
ABA165AC2808BD6A00C8CFF5 /* Icon_CodeBreaker_32x32.png in Resources */,
|
||||
ABA165AD2808BD6A00C8CFF5 /* Icon_DeSmuME_32x32.png in Resources */,
|
||||
ABA165AE2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_256x256.png in Resources */,
|
||||
ABA165AF2808BD6A00C8CFF5 /* Icon_MicrophoneDenied_DarkMode_256x256.png in Resources */,
|
||||
ABA165B02808BD6A00C8CFF5 /* Icon_MicrophoneOff_DarkMode_256x256.png in Resources */,
|
||||
ABA165B12808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16.png in Resources */,
|
||||
ABA165B22808BD6A00C8CFF5 /* Icon_VolumeFull_DarkMode_16x16@2x.png in Resources */,
|
||||
|
@ -4502,6 +4489,7 @@
|
|||
ABA165B62808BD6A00C8CFF5 /* Icon_VolumeOneThird_DarkMode_16x16@2x.png in Resources */,
|
||||
ABA165B72808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16.png in Resources */,
|
||||
ABA165B82808BD6A00C8CFF5 /* Icon_VolumeTwoThird_DarkMode_16x16@2x.png in Resources */,
|
||||
AB6D78962809FA43007C6B0A /* Icon_MicrophoneIdleNoHardware_256x256.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -32,7 +32,8 @@ class AudioSampleBlockGenerator;
|
|||
- (void) doMicLevelUpdateFromController:(CocoaDSController *)cdsController;
|
||||
- (void) doMicHardwareStateChangedFromController:(CocoaDSController *)cdsController
|
||||
isEnabled:(BOOL)isHardwareEnabled
|
||||
isLocked:(BOOL)isHardwareLocked;
|
||||
isLocked:(BOOL)isHardwareLocked
|
||||
isAuthorized:(BOOL)isAuthorized;
|
||||
|
||||
- (void) doMicHardwareGainChangedFromController:(CocoaDSController *)cdsController gain:(float)gainValue;
|
||||
|
||||
|
@ -56,6 +57,7 @@ class AudioSampleBlockGenerator;
|
|||
@property (assign) BOOL autohold;
|
||||
@property (assign) NSInteger paddleAdjust;
|
||||
@property (assign) NSInteger stylusPressure;
|
||||
@property (assign) BOOL hardwareMicAuthorization;
|
||||
@property (readonly) BOOL isHardwareMicAvailable;
|
||||
@property (readonly) BOOL isHardwareMicIdle;
|
||||
@property (readonly) BOOL isHardwareMicInClip;
|
||||
|
@ -81,7 +83,8 @@ class AudioSampleBlockGenerator;
|
|||
|
||||
- (void) handleMicHardwareStateChanged:(CoreAudioInputDeviceInfo *)deviceInfo
|
||||
isEnabled:(BOOL)isHardwareEnabled
|
||||
isLocked:(BOOL)isHardwareLocked;
|
||||
isLocked:(BOOL)isHardwareLocked
|
||||
isAuthorized:(BOOL)isAuthorized;
|
||||
- (void) handleMicHardwareGainChanged:(float)gainValue;
|
||||
|
||||
@end
|
||||
|
@ -101,6 +104,9 @@ public:
|
|||
|
||||
void StartHardwareMicDevice();
|
||||
|
||||
virtual void SetHardwareMicAuthorized(bool isAuthorized);
|
||||
virtual bool IsHardwareMicAuthorized();
|
||||
|
||||
virtual bool IsHardwareMicAvailable();
|
||||
virtual void ReportAverageMicLevel();
|
||||
|
||||
|
@ -123,6 +129,7 @@ uint8_t CASampleReadCallback(void *inParam1, void *inParam2);
|
|||
void CAHardwareStateChangedCallback(CoreAudioInputDeviceInfo *deviceInfo,
|
||||
const bool isHardwareEnabled,
|
||||
const bool isHardwareLocked,
|
||||
const bool isHardwareAuthorized,
|
||||
void *inParam1,
|
||||
void *inParam2);
|
||||
void CAHardwareGainChangedCallback(float normalizedGain, void *inParam1, void *inParam2);
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
@dynamic autohold;
|
||||
@dynamic paddleAdjust;
|
||||
@synthesize stylusPressure;
|
||||
@dynamic hardwareMicAuthorization;
|
||||
@dynamic isHardwareMicAvailable;
|
||||
@dynamic isHardwareMicIdle;
|
||||
@dynamic isHardwareMicInClip;
|
||||
|
@ -84,6 +85,16 @@
|
|||
return inputHandler;
|
||||
}
|
||||
|
||||
- (void) setHardwareMicAuthorization:(BOOL)isAuthorized
|
||||
{
|
||||
inputHandler->SetHardwareMicAuthorized((isAuthorized) ? true : false);
|
||||
}
|
||||
|
||||
- (BOOL) hardwareMicAuthorization
|
||||
{
|
||||
return (inputHandler->IsHardwareMicAuthorized()) ? YES : NO;
|
||||
}
|
||||
|
||||
- (BOOL) isHardwareMicAvailable
|
||||
{
|
||||
return (inputHandler->IsHardwareMicAvailable()) ? YES : NO;
|
||||
|
@ -237,6 +248,7 @@
|
|||
- (void) handleMicHardwareStateChanged:(CoreAudioInputDeviceInfo *)deviceInfo
|
||||
isEnabled:(BOOL)isHardwareEnabled
|
||||
isLocked:(BOOL)isHardwareLocked
|
||||
isAuthorized:(BOOL)isAuthorized
|
||||
{
|
||||
NSAutoreleasePool *tempPool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
|
@ -261,11 +273,12 @@
|
|||
inputHandler->ClearAverageMicLevel();
|
||||
inputHandler->ReportAverageMicLevel();
|
||||
|
||||
if ( (delegate != nil) && [delegate respondsToSelector:@selector(doMicHardwareStateChangedFromController:isEnabled:isLocked:)] )
|
||||
if ( (delegate != nil) && [delegate respondsToSelector:@selector(doMicHardwareStateChangedFromController:isEnabled:isLocked:isAuthorized:)] )
|
||||
{
|
||||
[[self delegate] doMicHardwareStateChangedFromController:self
|
||||
isEnabled:isHardwareEnabled
|
||||
isLocked:isHardwareLocked];
|
||||
isLocked:isHardwareLocked
|
||||
isAuthorized:isAuthorized];
|
||||
}
|
||||
|
||||
[tempPool release];
|
||||
|
@ -319,9 +332,19 @@ void MacInputHandler::StartHardwareMicDevice()
|
|||
this->_CAInputDevice->Start();
|
||||
}
|
||||
|
||||
void MacInputHandler::SetHardwareMicAuthorized(bool isAuthorized)
|
||||
{
|
||||
this->_CAInputDevice->SetHardwareAuthorized(isAuthorized);
|
||||
}
|
||||
|
||||
bool MacInputHandler::IsHardwareMicAuthorized()
|
||||
{
|
||||
return this->_CAInputDevice->IsHardwareAuthorized();
|
||||
}
|
||||
|
||||
bool MacInputHandler::IsHardwareMicAvailable()
|
||||
{
|
||||
return ( this->_CAInputDevice->IsHardwareEnabled() && !this->_CAInputDevice->IsHardwareLocked() );
|
||||
return ( this->_CAInputDevice->IsHardwareEnabled() && !this->_CAInputDevice->IsHardwareLocked() && this->_CAInputDevice->IsHardwareAuthorized() );
|
||||
}
|
||||
|
||||
void MacInputHandler::ReportAverageMicLevel()
|
||||
|
@ -388,13 +411,15 @@ uint8_t CASampleReadCallback(void *inParam1, void *inParam2)
|
|||
void CAHardwareStateChangedCallback(CoreAudioInputDeviceInfo *deviceInfo,
|
||||
const bool isHardwareEnabled,
|
||||
const bool isHardwareLocked,
|
||||
const bool isHardwareAuthorized,
|
||||
void *inParam1,
|
||||
void *inParam2)
|
||||
{
|
||||
CocoaDSController *cdsController = (CocoaDSController *)inParam1;
|
||||
[cdsController handleMicHardwareStateChanged:(CoreAudioInputDeviceInfo *)deviceInfo
|
||||
isEnabled:((isHardwareEnabled) ? YES : NO)
|
||||
isLocked:((isHardwareLocked) ? YES : NO)];
|
||||
isLocked:((isHardwareLocked) ? YES : NO)
|
||||
isAuthorized:((isHardwareAuthorized) ? YES : NO)];
|
||||
}
|
||||
|
||||
void CAHardwareGainChangedCallback(float normalizedGain, void *inParam1, void *inParam2)
|
||||
|
|
|
@ -49,6 +49,7 @@ CoreAudioInput::CoreAudioInput()
|
|||
_isPaused = true;
|
||||
_isHardwareEnabled = false;
|
||||
_isHardwareLocked = true;
|
||||
_isHardwareAuthorized = true;
|
||||
_captureFrames = 0;
|
||||
|
||||
_auHALInputDevice = NULL;
|
||||
|
@ -514,7 +515,7 @@ void CoreAudioInput::Start()
|
|||
this->_isHardwareEnabled = false;
|
||||
}
|
||||
|
||||
if (this->IsHardwareEnabled() && !this->IsHardwareLocked() && !this->GetPauseState())
|
||||
if (this->IsHardwareEnabled() && this->IsHardwareAuthorized() && !this->IsHardwareLocked() && !this->GetPauseState())
|
||||
{
|
||||
AudioOutputUnitStart(this->_auHALInputDevice);
|
||||
}
|
||||
|
@ -532,6 +533,7 @@ void CoreAudioInput::Start()
|
|||
this->_hwStateChangedCallbackFunc(&this->_hwDeviceInfo,
|
||||
this->IsHardwareEnabled(),
|
||||
this->IsHardwareLocked(),
|
||||
this->IsHardwareAuthorized(),
|
||||
this->_hwStateChangedCallbackParam1,
|
||||
this->_hwStateChangedCallbackParam2);
|
||||
}
|
||||
|
@ -575,6 +577,22 @@ bool CoreAudioInput::IsHardwareLocked() const
|
|||
return this->_isHardwareLocked;
|
||||
}
|
||||
|
||||
bool CoreAudioInput::IsHardwareAuthorized() const
|
||||
{
|
||||
return this->_isHardwareAuthorized;
|
||||
}
|
||||
|
||||
void CoreAudioInput::SetHardwareAuthorized(bool isAuthorized)
|
||||
{
|
||||
const bool didStateChange = (this->_isHardwareAuthorized != isAuthorized);
|
||||
|
||||
this->_isHardwareAuthorized = isAuthorized;
|
||||
if (didStateChange)
|
||||
{
|
||||
this->SetPauseState( this->GetPauseState() );
|
||||
}
|
||||
}
|
||||
|
||||
bool CoreAudioInput::GetPauseState() const
|
||||
{
|
||||
return this->_isPaused;
|
||||
|
@ -582,22 +600,24 @@ bool CoreAudioInput::GetPauseState() const
|
|||
|
||||
void CoreAudioInput::SetPauseState(bool pauseState)
|
||||
{
|
||||
if (pauseState && !this->GetPauseState())
|
||||
if (!this->_isPaused && pauseState)
|
||||
{
|
||||
this->_isPaused = true;
|
||||
|
||||
apple_unfairlock_lock(this->_unfairlockAUHAL);
|
||||
AudioOutputUnitStop(this->_auHALInputDevice);
|
||||
apple_unfairlock_unlock(this->_unfairlockAUHAL);
|
||||
AUGraphStop(this->_auGraph);
|
||||
}
|
||||
else if (!pauseState && this->GetPauseState() && !this->IsHardwareLocked())
|
||||
else if (this->_isPaused && !pauseState)
|
||||
{
|
||||
this->_isPaused = false;
|
||||
|
||||
apple_unfairlock_lock(this->_unfairlockAUHAL);
|
||||
AudioOutputUnitStart(this->_auHALInputDevice);
|
||||
apple_unfairlock_unlock(this->_unfairlockAUHAL);
|
||||
AUGraphStart(this->_auGraph);
|
||||
}
|
||||
|
||||
this->_isPaused = (this->IsHardwareLocked()) ? true : pauseState;
|
||||
}
|
||||
|
||||
float CoreAudioInput::GetNormalizedGain() const
|
||||
|
@ -683,15 +703,18 @@ void CoreAudioInput::UpdateHardwareLock()
|
|||
hardwareLocked = true;
|
||||
}
|
||||
|
||||
const bool didStateChange = (this->_isHardwareLocked != hardwareLocked);
|
||||
this->_isHardwareLocked = hardwareLocked;
|
||||
if (this->_isHardwareLocked && !this->GetPauseState())
|
||||
|
||||
if (didStateChange)
|
||||
{
|
||||
this->SetPauseState(true);
|
||||
this->SetPauseState( this->GetPauseState() );
|
||||
}
|
||||
|
||||
this->_hwStateChangedCallbackFunc(&this->_hwDeviceInfo,
|
||||
this->IsHardwareEnabled(),
|
||||
this->IsHardwareLocked(),
|
||||
this->IsHardwareAuthorized(),
|
||||
this->_hwStateChangedCallbackParam1,
|
||||
this->_hwStateChangedCallbackParam2);
|
||||
}
|
||||
|
@ -708,7 +731,7 @@ uint8_t CoreAudioInput::generateSample()
|
|||
{
|
||||
uint8_t theSample = MIC_NULL_SAMPLE_VALUE;
|
||||
|
||||
if (this->_isPaused)
|
||||
if ( this->GetPauseState() || !this->IsHardwareEnabled() || this->IsHardwareLocked() || !this->IsHardwareAuthorized() )
|
||||
{
|
||||
return theSample;
|
||||
}
|
||||
|
@ -866,6 +889,7 @@ void CoreAudioInputAUHALChanged(void *inRefCon,
|
|||
void CoreAudioInputDefaultHardwareStateChangedCallback(CoreAudioInputDeviceInfo *deviceInfo,
|
||||
const bool isHardwareEnabled,
|
||||
const bool isHardwareLocked,
|
||||
const bool isHardwareAuthorized,
|
||||
void *inParam1,
|
||||
void *inParam2)
|
||||
{
|
||||
|
|
|
@ -40,6 +40,7 @@ typedef CoreAudioInputDeviceInfo CoreAudioInputDeviceInfo;
|
|||
typedef void (*CoreAudioInputHardwareStateChangedCallback)(CoreAudioInputDeviceInfo *deviceInfo,
|
||||
const bool isHardwareEnabled,
|
||||
const bool isHardwareLocked,
|
||||
const bool isHardwareAuthorized,
|
||||
void *inParam1,
|
||||
void *inParam2);
|
||||
|
||||
|
@ -75,6 +76,7 @@ private:
|
|||
CoreAudioInputDeviceInfo _hwDeviceInfo;
|
||||
bool _isHardwareEnabled;
|
||||
bool _isHardwareLocked;
|
||||
bool _isHardwareAuthorized;
|
||||
|
||||
OSStatus InitInputAUHAL(UInt32 deviceID);
|
||||
|
||||
|
@ -93,6 +95,8 @@ public:
|
|||
|
||||
bool IsHardwareEnabled() const;
|
||||
bool IsHardwareLocked() const;
|
||||
bool IsHardwareAuthorized() const;
|
||||
void SetHardwareAuthorized(bool isAuthorized);
|
||||
bool GetPauseState() const;
|
||||
void SetPauseState(bool pauseState);
|
||||
float GetNormalizedGain() const;
|
||||
|
@ -174,6 +178,7 @@ OSStatus CoreAudioOutputRenderCallback(void *inRefCon,
|
|||
void CoreAudioInputDefaultHardwareStateChangedCallback(CoreAudioInputDeviceInfo *deviceInfo,
|
||||
const bool isHardwareEnabled,
|
||||
const bool isHardwareLocked,
|
||||
const bool isHardwareAuthorized,
|
||||
void *inParam1,
|
||||
void *inParam2);
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 7.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 9.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
File diff suppressed because it is too large
Load Diff
|
@ -10311,7 +10311,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
<object class="NSView" key="NSWindowView" id="705283056">
|
||||
<reference key="NSNextResponder"/>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSBox" id="531436272">
|
||||
|
@ -10327,7 +10327,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{18, 14}, {190, 126}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSNumRows">4</int>
|
||||
|
@ -10596,7 +10595,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{130, 18}, {224, 21}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="565031755">
|
||||
<int key="NSCellFlags">612368448</int>
|
||||
|
@ -10617,7 +10615,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{476, 11}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="189809655">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -10639,7 +10636,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{128, 47}, {348, 26}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSSliderCell" key="NSCell" id="792766777">
|
||||
<int key="NSCellFlags">-2080112384</int>
|
||||
|
@ -10662,7 +10658,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{479, 56}, {90, 17}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="18475068">
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
|
@ -10722,7 +10717,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{356, 11}, {124, 32}}</string>
|
||||
<reference key="NSSuperview" ref="620417532"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="1009914712">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -10742,12 +10736,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {584, 150}}</string>
|
||||
<reference key="NSSuperview" ref="531436272"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{17, 56}, {586, 166}}</string>
|
||||
<reference key="NSSuperview" ref="705283056"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -10768,7 +10760,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{510, 12}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="705283056"/>
|
||||
<reference key="NSWindow"/>
|
||||
<int key="NSTag">1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="23472213">
|
||||
|
@ -10791,7 +10782,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{414, 12}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="705283056"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="565213794">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -10813,7 +10803,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 230}, {586, 17}}</string>
|
||||
<reference key="NSSuperview" ref="705283056"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="702563390">
|
||||
<int key="NSCellFlags">70254657</int>
|
||||
|
@ -10830,8 +10819,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{620, 267}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
|
||||
<string key="NSMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
|
@ -42466,6 +42453,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>mainWindow.view.hudColorInputPendingOnly</string>
|
||||
<string>mainWindow.view.isHUDExecutionSpeedVisible</string>
|
||||
<string>mainWindow.view.hudColorExecutionSpeed</string>
|
||||
<string>micStatusTooltip</string>
|
||||
</array>
|
||||
<string key="NSObjectClassName">EmuControllerDelegate</string>
|
||||
<object class="_NSManagedProxy" key="_NSManagedProxy"/>
|
||||
|
@ -59112,6 +59100,70 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
<int key="connectionID">12231</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">toolTip: selection.micStatusTooltip</string>
|
||||
<reference key="source" ref="178999512"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="178999512"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">toolTip: selection.micStatusTooltip</string>
|
||||
<string key="NSBinding">toolTip</string>
|
||||
<string key="NSKeyPath">selection.micStatusTooltip</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">12232</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">toolTip: selection.micStatusTooltip</string>
|
||||
<reference key="source" ref="215825056"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="215825056"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">toolTip: selection.micStatusTooltip</string>
|
||||
<string key="NSBinding">toolTip</string>
|
||||
<string key="NSKeyPath">selection.micStatusTooltip</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">12233</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">toolTip: selection.micStatusTooltip</string>
|
||||
<reference key="source" ref="712229647"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="712229647"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">toolTip: selection.micStatusTooltip</string>
|
||||
<string key="NSBinding">toolTip</string>
|
||||
<string key="NSKeyPath">selection.micStatusTooltip</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">12234</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">toolTip: selection.micStatusTooltip</string>
|
||||
<reference key="source" ref="807627411"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="807627411"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">toolTip: selection.micStatusTooltip</string>
|
||||
<string key="NSBinding">toolTip</string>
|
||||
<string key="NSKeyPath">selection.micStatusTooltip</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">12235</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
@ -86775,7 +86827,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">12231</int>
|
||||
<int key="maxID">12235</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
|
||||
|
|
|
@ -88,6 +88,7 @@ class AudioSampleBlockGenerator;
|
|||
BOOL isRomLoading;
|
||||
NSString *statusText;
|
||||
float currentVolumeValue;
|
||||
NSString *micStatusTooltip;
|
||||
NSImage *currentMicStatusIcon;
|
||||
NSImage *currentVolumeIcon;
|
||||
BOOL isShowingSaveStateDialog;
|
||||
|
@ -105,7 +106,9 @@ class AudioSampleBlockGenerator;
|
|||
float lastSetVolumeValue;
|
||||
|
||||
NSImage *iconMicDisabled;
|
||||
NSImage *iconMicDisabledDM;
|
||||
NSImage *iconMicIdle;
|
||||
NSImage *iconMicIdleNoHardware;
|
||||
NSImage *iconMicActive;
|
||||
NSImage *iconMicInClip;
|
||||
NSImage *iconMicManualOverride;
|
||||
|
@ -113,6 +116,10 @@ class AudioSampleBlockGenerator;
|
|||
NSImage *iconVolumeTwoThird;
|
||||
NSImage *iconVolumeOneThird;
|
||||
NSImage *iconVolumeMute;
|
||||
NSImage *iconVolumeFullDM;
|
||||
NSImage *iconVolumeTwoThirdDM;
|
||||
NSImage *iconVolumeOneThirdDM;
|
||||
NSImage *iconVolumeMuteDM;
|
||||
NSImage *iconExecute;
|
||||
NSImage *iconPause;
|
||||
NSImage *iconSpeedNormal;
|
||||
|
@ -177,6 +184,7 @@ class AudioSampleBlockGenerator;
|
|||
@property (assign) BOOL isHardwareMicAvailable;
|
||||
@property (assign) float currentMicGainValue;
|
||||
@property (assign) float currentVolumeValue;
|
||||
@property (assign) NSString *micStatusTooltip;
|
||||
@property (retain) NSImage *currentMicStatusIcon;
|
||||
@property (retain) NSImage *currentVolumeIcon;
|
||||
@property (assign) BOOL isShowingSaveStateDialog;
|
||||
|
@ -220,6 +228,7 @@ class AudioSampleBlockGenerator;
|
|||
- (IBAction) frameJump:(id)sender;
|
||||
- (IBAction) reset:(id)sender;
|
||||
- (IBAction) changeRomSaveType:(id)sender;
|
||||
- (IBAction) changeHostMicrophonePermission:(id)sender;
|
||||
|
||||
// View Menu
|
||||
- (IBAction) toggleAllDisplays:(id)sender;
|
||||
|
@ -313,6 +322,7 @@ class AudioSampleBlockGenerator;
|
|||
- (void) updateDisplayPanelTitles;
|
||||
- (void) appInit;
|
||||
- (void) fillOpenGLMSAAMenu;
|
||||
- (NSInteger) updateHostMicrophonePermissionStatus;
|
||||
- (void) readUserDefaults;
|
||||
- (void) writeUserDefaults;
|
||||
- (void) restoreDisplayWindowStates;
|
||||
|
|
|
@ -35,6 +35,10 @@
|
|||
#import "cocoa_rom.h"
|
||||
#import "cocoa_slot2.h"
|
||||
|
||||
#if HAVE_OSAVAILABLE && defined(MAC_OS_X_VERSION_10_14) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_14)
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
#endif
|
||||
|
||||
@implementation EmuControllerDelegate
|
||||
|
||||
@synthesize inputManager;
|
||||
|
@ -88,6 +92,7 @@
|
|||
@synthesize isHardwareMicAvailable;
|
||||
@synthesize currentMicGainValue;
|
||||
@dynamic currentVolumeValue;
|
||||
@synthesize micStatusTooltip;
|
||||
@synthesize currentMicStatusIcon;
|
||||
@synthesize ndsMicLevelIndicator;
|
||||
@synthesize currentVolumeIcon;
|
||||
|
@ -144,27 +149,36 @@
|
|||
isSoundMuted = NO;
|
||||
lastSetVolumeValue = MAX_VOLUME;
|
||||
|
||||
iconExecute = [[NSImage imageNamed:@"Icon_Execute_420x420"] retain];
|
||||
iconPause = [[NSImage imageNamed:@"Icon_Pause_420x420"] retain];
|
||||
iconSpeedNormal = [[NSImage imageNamed:@"Icon_Speed1x_420x420"] retain];
|
||||
iconSpeedDouble = [[NSImage imageNamed:@"Icon_Speed2x_420x420"] retain];
|
||||
iconExecute = [[NSImage imageNamed:@"Icon_Execute_420x420"] retain];
|
||||
iconPause = [[NSImage imageNamed:@"Icon_Pause_420x420"] retain];
|
||||
iconSpeedNormal = [[NSImage imageNamed:@"Icon_Speed1x_420x420"] retain];
|
||||
iconSpeedDouble = [[NSImage imageNamed:@"Icon_Speed2x_420x420"] retain];
|
||||
|
||||
iconMicDisabled = [[NSImage imageNamed:@"Icon_MicrophoneBlack_256x256"] retain];
|
||||
iconMicIdle = [[NSImage imageNamed:@"Icon_MicrophoneDarkGreen_256x256"] retain];
|
||||
iconMicActive = [[NSImage imageNamed:@"Icon_MicrophoneGreen_256x256"] retain];
|
||||
iconMicInClip = [[NSImage imageNamed:@"Icon_MicrophoneRed_256x256"] retain];
|
||||
iconMicManualOverride = [[NSImage imageNamed:@"Icon_MicrophoneGray_256x256"] retain];
|
||||
iconMicDisabled = [[NSImage imageNamed:@"Icon_MicrophoneBlack_256x256"] retain];
|
||||
iconMicDisabledDM = [[NSImage imageNamed:@"Icon_MicrophoneOff_DarkMode_256x256"] retain];
|
||||
iconMicIdle = [[NSImage imageNamed:@"Icon_MicrophoneDarkGreen_256x256"] retain];
|
||||
iconMicIdleNoHardware = [[NSImage imageNamed:@"Icon_MicrophoneIdleNoHardware_256x256"] retain];
|
||||
iconMicActive = [[NSImage imageNamed:@"Icon_MicrophoneGreen_256x256"] retain];
|
||||
iconMicInClip = [[NSImage imageNamed:@"Icon_MicrophoneRed_256x256"] retain];
|
||||
iconMicManualOverride = [[NSImage imageNamed:@"Icon_MicrophoneGray_256x256"] retain];
|
||||
|
||||
iconVolumeFull = [[NSImage imageNamed:@"Icon_VolumeFull_16x16"] retain];
|
||||
iconVolumeTwoThird = [[NSImage imageNamed:@"Icon_VolumeTwoThird_16x16"] retain];
|
||||
iconVolumeOneThird = [[NSImage imageNamed:@"Icon_VolumeOneThird_16x16"] retain];
|
||||
iconVolumeMute = [[NSImage imageNamed:@"Icon_VolumeMute_16x16"] retain];
|
||||
iconVolumeFull = [[NSImage imageNamed:@"Icon_VolumeFull_16x16"] retain];
|
||||
iconVolumeTwoThird = [[NSImage imageNamed:@"Icon_VolumeTwoThird_16x16"] retain];
|
||||
iconVolumeOneThird = [[NSImage imageNamed:@"Icon_VolumeOneThird_16x16"] retain];
|
||||
iconVolumeMute = [[NSImage imageNamed:@"Icon_VolumeMute_16x16"] retain];
|
||||
|
||||
iconVolumeFullDM = [[NSImage imageNamed:@"Icon_VolumeFull_DarkMode_16x16"] retain];
|
||||
iconVolumeTwoThirdDM = [[NSImage imageNamed:@"Icon_VolumeTwoThird_DarkMode_16x16"] retain];
|
||||
iconVolumeOneThirdDM = [[NSImage imageNamed:@"Icon_VolumeOneThird_DarkMode_16x16"] retain];
|
||||
iconVolumeMuteDM = [[NSImage imageNamed:@"Icon_VolumeMute_DarkMode_16x16"] retain];
|
||||
|
||||
isWorking = NO;
|
||||
isRomLoading = NO;
|
||||
statusText = NSSTRING_STATUS_READY;
|
||||
currentVolumeValue = MAX_VOLUME;
|
||||
currentMicStatusIcon = [iconMicDisabled retain];
|
||||
micStatusTooltip = @"";
|
||||
BOOL isRunningDarkMode = NO;
|
||||
currentMicStatusIcon = (isRunningDarkMode) ? [iconMicDisabledDM retain] : [iconMicDisabled retain];
|
||||
currentVolumeIcon = [iconVolumeFull retain];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
|
@ -195,7 +209,9 @@
|
|||
[iconSpeedDouble release];
|
||||
|
||||
[iconMicDisabled release];
|
||||
[iconMicDisabledDM release];
|
||||
[iconMicIdle release];
|
||||
[iconMicIdleNoHardware release];
|
||||
[iconMicActive release];
|
||||
[iconMicInClip release];
|
||||
[iconMicManualOverride release];
|
||||
|
@ -205,6 +221,11 @@
|
|||
[iconVolumeOneThird release];
|
||||
[iconVolumeMute release];
|
||||
|
||||
[iconVolumeFullDM release];
|
||||
[iconVolumeTwoThirdDM release];
|
||||
[iconVolumeOneThirdDM release];
|
||||
[iconVolumeMuteDM release];
|
||||
|
||||
[[self currentRom] release];
|
||||
[self setCurrentRom:nil];
|
||||
|
||||
|
@ -300,6 +321,8 @@
|
|||
|
||||
- (void) setCurrentVolumeValue:(float)vol
|
||||
{
|
||||
BOOL isRunningDarkMode = NO;
|
||||
|
||||
currentVolumeValue = vol;
|
||||
|
||||
// Update the icon.
|
||||
|
@ -307,23 +330,23 @@
|
|||
NSImage *newImage = nil;
|
||||
if (vol <= 0.0f)
|
||||
{
|
||||
newImage = iconVolumeMute;
|
||||
newImage = (isRunningDarkMode) ? iconVolumeMuteDM : iconVolumeMute;
|
||||
}
|
||||
else if (vol > 0.0f && vol <= VOLUME_THRESHOLD_LOW)
|
||||
{
|
||||
newImage = iconVolumeOneThird;
|
||||
newImage = (isRunningDarkMode) ? iconVolumeOneThirdDM : iconVolumeOneThird;
|
||||
isSoundMuted = NO;
|
||||
lastSetVolumeValue = vol;
|
||||
}
|
||||
else if (vol > VOLUME_THRESHOLD_LOW && vol <= VOLUME_THRESHOLD_HIGH)
|
||||
{
|
||||
newImage = iconVolumeTwoThird;
|
||||
newImage = (isRunningDarkMode) ? iconVolumeTwoThirdDM : iconVolumeTwoThird;
|
||||
isSoundMuted = NO;
|
||||
lastSetVolumeValue = vol;
|
||||
}
|
||||
else
|
||||
{
|
||||
newImage = iconVolumeFull;
|
||||
newImage = (isRunningDarkMode) ? iconVolumeFullDM : iconVolumeFull;
|
||||
isSoundMuted = NO;
|
||||
lastSetVolumeValue = vol;
|
||||
}
|
||||
|
@ -854,6 +877,31 @@
|
|||
[cdsCore changeRomSaveType:saveTypeID];
|
||||
}
|
||||
|
||||
- (IBAction) changeHostMicrophonePermission:(id)sender
|
||||
{
|
||||
#if HAVE_OSAVAILABLE && defined(MAC_OS_X_VERSION_10_14) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_14)
|
||||
if (IsOSXVersionSupported(10, 14, 0))
|
||||
{
|
||||
if (@available(macOS 10.14, *))
|
||||
{
|
||||
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL isAuthorized) {
|
||||
if (isAuthorized)
|
||||
{
|
||||
puts("DeSmuME: User has just granted access to the microphone.");
|
||||
}
|
||||
|
||||
[self updateHostMicrophonePermissionStatus];
|
||||
}];
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
puts("DeSmuME: User is not running macOS v10.14 Mojave or later -- microphone usage is automatically authorized.");
|
||||
[self updateHostMicrophonePermissionStatus];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction) toggleCheats:(id)sender
|
||||
{
|
||||
[inputManager dispatchCommandUsingIBAction:_cmd sender:sender];
|
||||
|
@ -2190,9 +2238,11 @@
|
|||
|
||||
- (void) updateMicStatusIcon
|
||||
{
|
||||
BOOL isRunningDarkMode = NO;
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
CocoaDSController *cdsController = [cdsCore cdsController];
|
||||
NSImage *micIcon = iconMicDisabled;
|
||||
NSImage *micIcon = (isRunningDarkMode) ? iconMicDisabledDM : iconMicDisabled;
|
||||
|
||||
if ([cdsController softwareMicState])
|
||||
{
|
||||
|
@ -2200,23 +2250,30 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
if ([cdsController isHardwareMicAvailable])
|
||||
if ([cdsController hardwareMicPause])
|
||||
{
|
||||
if ([cdsController hardwareMicPause])
|
||||
micIcon = (isRunningDarkMode) ? iconMicDisabledDM : iconMicDisabled;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([cdsController isHardwareMicAvailable])
|
||||
{
|
||||
micIcon = iconMicDisabled;
|
||||
}
|
||||
else if ([cdsController isHardwareMicInClip])
|
||||
{
|
||||
micIcon = iconMicInClip;
|
||||
}
|
||||
else if ([cdsController isHardwareMicIdle])
|
||||
{
|
||||
micIcon = iconMicIdle;
|
||||
if ([cdsController isHardwareMicInClip])
|
||||
{
|
||||
micIcon = iconMicInClip;
|
||||
}
|
||||
else if ([cdsController isHardwareMicIdle])
|
||||
{
|
||||
micIcon = iconMicIdle;
|
||||
}
|
||||
else
|
||||
{
|
||||
micIcon = iconMicActive;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
micIcon = iconMicActive;
|
||||
micIcon = iconMicIdleNoHardware;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2487,6 +2544,60 @@
|
|||
[openglMSAAPopUpButton selectItemAtIndex:0];
|
||||
}
|
||||
|
||||
- (NSInteger) updateHostMicrophonePermissionStatus
|
||||
{
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
CocoaDSController *cdsController = [cdsCore cdsController];
|
||||
|
||||
NSInteger authStatus = 0;
|
||||
BOOL authFlag = NO;
|
||||
|
||||
#if HAVE_OSAVAILABLE && defined(MAC_OS_X_VERSION_10_14) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_14)
|
||||
if (IsOSXVersionSupported(10, 14, 0))
|
||||
{
|
||||
if (@available(macOS 10.14, *))
|
||||
{
|
||||
authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
|
||||
|
||||
switch (authStatus)
|
||||
{
|
||||
case AVAuthorizationStatusNotDetermined:
|
||||
[self setMicStatusTooltip:@"Hardware microphone usage has yet to be authorized. If you need access, click \"OK\" when DeSmuME requests permission from the system."];
|
||||
break;
|
||||
|
||||
case AVAuthorizationStatusRestricted:
|
||||
[self setMicStatusTooltip:@"Hardware microphone usage has been restricted. Please see your system administrator."];
|
||||
break;
|
||||
|
||||
case AVAuthorizationStatusDenied:
|
||||
[self setMicStatusTooltip:@"Hardware microphone usage has been denied. If you need access, change your microphone privacy settings for DeSmuME in System Preferences."];
|
||||
break;
|
||||
|
||||
case AVAuthorizationStatusAuthorized:
|
||||
[self setMicStatusTooltip:@""];
|
||||
authFlag = YES;
|
||||
break;
|
||||
|
||||
default:
|
||||
[self setMicStatusTooltip:@"Hardware microphone usage is currently unknown. If you need access, change your microphone privacy settings for DeSmuME in System Preferences."];
|
||||
break;
|
||||
}
|
||||
|
||||
[cdsController setHardwareMicAuthorization:authFlag];
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
authStatus = 3; // AVAuthorizationStatusAuthorized
|
||||
[self setMicStatusTooltip:@""];
|
||||
[cdsController setHardwareMicAuthorization:YES];
|
||||
}
|
||||
|
||||
[self updateMicStatusIcon];
|
||||
return authStatus;
|
||||
}
|
||||
|
||||
- (void) readUserDefaults
|
||||
{
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
|
@ -3080,8 +3191,9 @@
|
|||
- (void) doMicHardwareStateChangedFromController:(CocoaDSController *)cdsController
|
||||
isEnabled:(BOOL)isHardwareEnabled
|
||||
isLocked:(BOOL)isHardwareLocked
|
||||
isAuthorized:(BOOL)isAuthorized
|
||||
{
|
||||
const BOOL hwMicAvailable = (isHardwareEnabled && !isHardwareLocked);
|
||||
const BOOL hwMicAvailable = (isHardwareEnabled && !isHardwareLocked && isAuthorized);
|
||||
[self setIsHardwareMicAvailable:hwMicAvailable];
|
||||
[self updateMicStatusIcon];
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
return nil;
|
||||
}
|
||||
|
||||
// Determine if we're running on Intel or PPC.
|
||||
// Determine if we're running on Intel or non-Intel (PowerPC or ARM64).
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
isAppRunningOnIntel = YES;
|
||||
#else
|
||||
|
@ -372,6 +372,14 @@
|
|||
[self application:NSApp openFile:[self delayedROMFileName]];
|
||||
[self setDelayedROMFileName:nil];
|
||||
}
|
||||
|
||||
// Request hardware microphone permissions now. Hopefully, the user will address the
|
||||
// permissions dialog before the ROM program actually needs the microphone input.
|
||||
const NSInteger micPermStatus = [emuControl updateHostMicrophonePermissionStatus];
|
||||
if (micPermStatus == 0) // (micPermStatus == AVAuthorizationStatusNotDetermined)
|
||||
{
|
||||
[emuControl changeHostMicrophonePermission:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
||||
|
|
Loading…
Reference in New Issue