Cocoa Port: Fix microphone permissions when running macOS v10.14 Mojave and later. (Fixes #475.)

- Also fixes another bug where the microphone level indicator won't update when running macOS v10.14 Mojave and later.
This commit is contained in:
rogerman 2022-04-13 17:31:40 -07:00
parent 2113af2994
commit efa72df171
8 changed files with 91 additions and 36 deletions

View File

@ -76,7 +76,8 @@ ClientInputHandler::ClientInputHandler()
_selectedAudioFileGenerator = NULL; // Note that this value can be NULL.
_hardwareMicSampleGenerator = _nullSampleGenerator;
_avgMicLevel = 0.0f;
_avgMicLevelPending = 0.0f;
_avgMicLevelApplied = 0.0f;
_avgMicLevelTotal = 0.0f;
_avgMicLevelsRead = 0.0f;
_isHardwareMicMuted = true;
@ -268,31 +269,36 @@ void ClientInputHandler::SetSineWaveFrequency(double freq)
float ClientInputHandler::GetAverageMicLevel()
{
return this->_avgMicLevel;
return this->_avgMicLevelApplied;
}
void ClientInputHandler::AddSampleToAverageMicLevel(uint8_t sampleValue)
{
this->_avgMicLevelTotal += (float)( (MIC_NULL_SAMPLE_VALUE > sampleValue) ? MIC_NULL_SAMPLE_VALUE - sampleValue : sampleValue - MIC_NULL_SAMPLE_VALUE );
this->_avgMicLevelsRead += 1.0f;
this->_avgMicLevel = this->_avgMicLevelTotal / this->_avgMicLevelsRead;
this->_avgMicLevelPending = this->_avgMicLevelTotal / this->_avgMicLevelsRead;
}
void ClientInputHandler::ClearAverageMicLevel()
{
this->_avgMicLevelTotal = 0.0f;
this->_avgMicLevelsRead = 0.0f;
this->_avgMicLevel = 0.0f;
this->_avgMicLevelPending = 0.0f;
}
void ClientInputHandler::ApplyAverageMicLevel()
{
this->_avgMicLevelApplied = this->_avgMicLevelPending;
}
bool ClientInputHandler::IsMicrophoneIdle()
{
return (this->_avgMicLevel < MIC_NULL_LEVEL_THRESHOLD);
return (this->_avgMicLevelApplied < MIC_NULL_LEVEL_THRESHOLD);
}
bool ClientInputHandler::IsMicrophoneClipping()
{
return (this->_avgMicLevel >= MIC_CLIP_LEVEL_THRESHOLD);
return (this->_avgMicLevelApplied >= MIC_CLIP_LEVEL_THRESHOLD);
}
AudioGenerator* ClientInputHandler::GetClientSoftwareMicSampleGenerator()
@ -694,9 +700,13 @@ uint8_t ClientInputHandler::HandleMicSampleRead()
void ClientInputHandler::ReportAverageMicLevel()
{
// Do nothing. This is implementation-dependent.
// This method mainly exists for implementations to do some stuff during the
// emulation loop.
// This method is called regularly during the emulation loop so that
// implementations can report the microphone level. Implementations
// should either override this method and retain the call to
// ApplyAverageMicLevel(), or call GetAverageMicLevel() after this
// method finishes.
this->ApplyAverageMicLevel();
}
bool ClientInputHandler::GetHardwareMicMute()

View File

@ -378,7 +378,8 @@ protected:
int16_t _paddleValueApplied;
int16_t _paddleAdjustApplied;
float _avgMicLevel;
float _avgMicLevelPending;
float _avgMicLevelApplied;
float _avgMicLevelTotal;
float _avgMicLevelsRead;
bool _isHardwareMicMuted;
@ -407,6 +408,7 @@ public:
float GetAverageMicLevel();
void AddSampleToAverageMicLevel(uint8_t sampleValue);
void ClearAverageMicLevel();
void ApplyAverageMicLevel();
bool IsMicrophoneIdle();
bool IsMicrophoneClipping();

View File

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSMicrophoneUsageDescription</key>
<string>DeSmuME requires your host microphone to emulate the NDS microphone.</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>

View File

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSMicrophoneUsageDescription</key>
<string>DeSmuME requires your host microphone to emulate the NDS microphone.</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>

View File

@ -326,6 +326,7 @@ bool MacInputHandler::IsHardwareMicAvailable()
void MacInputHandler::ReportAverageMicLevel()
{
this->ApplyAverageMicLevel();
[this->_cdsController setMicLevel:this->GetAverageMicLevel()];
}

View File

@ -6141,7 +6141,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="704316683">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSPopUpButton" id="193380617">
@ -6149,7 +6149,6 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{163, 329}, {220, 26}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="394747689"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="29269565">
@ -6208,7 +6207,6 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 335}, {144, 17}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="193380617"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="748093335">
@ -6236,7 +6234,6 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {153, 18}}</string>
<reference key="NSSuperview" ref="441129927"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070621411"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="412966482">
@ -6259,13 +6256,11 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
</array>
<string key="NSFrame">{{1, 1}, {364, 38}}</string>
<reference key="NSSuperview" ref="990175597"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="89239259"/>
</object>
</array>
<string key="NSFrame">{{17, 209}, {366, 54}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="441129927"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -6295,7 +6290,6 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 15}, {180, 46}}</string>
<reference key="NSSuperview" ref="611125211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="329183370"/>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@ -6541,7 +6535,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{145, 10}, {204, 26}}</string>
<reference key="NSSuperview" ref="611125211"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="289234889">
<int key="NSCellFlags">-2076180416</int>
@ -6608,13 +6601,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</array>
<string key="NSFrame">{{1, 1}, {364, 71}}</string>
<reference key="NSSuperview" ref="379003821"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="996962843"/>
</object>
</array>
<string key="NSFrame">{{17, 16}, {366, 87}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="611125211"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -6644,7 +6635,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {328, 58}}</string>
<reference key="NSSuperview" ref="244021145"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="379003821"/>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@ -6899,13 +6889,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</array>
<string key="NSFrame">{{1, 1}, {364, 82}}</string>
<reference key="NSSuperview" ref="1070621411"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="945502088"/>
</object>
</array>
<string key="NSFrame">{{17, 107}, {366, 98}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="244021145"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -6935,7 +6923,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{40, 13}, {246, 21}}</string>
<reference key="NSSuperview" ref="539280335"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="990570759"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSliderCell" key="NSCell" id="577080553">
@ -6959,7 +6946,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{287, 17}, {62, 17}}</string>
<reference key="NSSuperview" ref="539280335"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="990175597"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="871591132">
@ -7039,7 +7025,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</set>
<string key="NSFrame">{{18, 16}, {16, 16}}</string>
<reference key="NSSuperview" ref="539280335"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="682389865"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="206851430">
@ -7060,13 +7045,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</array>
<string key="NSFrame">{{1, 1}, {364, 44}}</string>
<reference key="NSSuperview" ref="394747689"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="983879008"/>
</object>
</array>
<string key="NSFrame">{{17, 267}, {366, 60}}</string>
<reference key="NSSuperview" ref="704316683"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="539280335"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -7085,8 +7068,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</object>
</array>
<string key="NSFrameSize">{400, 373}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="913591955"/>
<string key="NSClassName">NSView</string>
</object>
@ -10330,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">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSBox" id="531436272">
@ -10346,6 +10327,7 @@ 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>
@ -10614,6 +10596,7 @@ 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>
@ -10634,6 +10617,7 @@ 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>
@ -10655,6 +10639,7 @@ 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>
@ -10677,6 +10662,7 @@ 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>
@ -10736,6 +10722,7 @@ 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>
@ -10755,10 +10742,12 @@ 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>
@ -10779,6 +10768,7 @@ 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">
@ -10801,6 +10791,7 @@ 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>
@ -10822,6 +10813,7 @@ 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>
@ -10838,6 +10830,8 @@ 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>
@ -32715,7 +32709,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
<object class="NSView" key="NSWindowView" id="873223316">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSImageView" id="712229647">
@ -32734,6 +32728,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</set>
<string key="NSFrame">{{11, 105}, {48, 48}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="188740767"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="1027674828">
@ -32756,6 +32751,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{60, 111}, {252, 18}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="807627411"/>
<bool key="NSEnabled">YES</bool>
<object class="NSLevelIndicatorCell" key="NSCell" id="93405950">
@ -32774,6 +32770,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{120, 14}, {150, 19}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="922242030">
<int key="NSCellFlags">67108864</int>
@ -32795,6 +32792,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{58, 134}, {150, 14}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="215825056"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="122203244">
@ -32822,6 +32820,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 92}, {110, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="894605100"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="966626268">
@ -32841,6 +32840,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 75}, {110, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="627022651"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="997247725">
@ -32860,6 +32860,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 58}, {110, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="541429653"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="733504260">
@ -32879,6 +32880,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{130, 92}, {205, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="176077433"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="907316798">
@ -32899,6 +32901,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{130, 75}, {205, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="288628271"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="331352890">
@ -32919,6 +32922,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{130, 58}, {205, 14}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="889832010"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="553890946">
@ -32939,6 +32943,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{65, 23}, {205, 27}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="800503471"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSliderCell" key="NSCell" id="731131313">
@ -32962,6 +32967,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{67, 14}, {26, 11}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1064219595"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="108707502">
@ -32981,6 +32987,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{112, 14}, {33, 11}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="848795802"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="334417177">
@ -33000,6 +33007,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{156, 14}, {33, 11}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="618794549"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="808402791">
@ -33019,6 +33027,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{204, 14}, {33, 11}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="252767148"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="280295146">
@ -33038,6 +33047,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{248, 14}, {41, 11}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="712229647"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="155278455">
@ -33057,6 +33067,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{25, 33}, {37, 17}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="178999512"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="12462293">
@ -33076,6 +33087,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{264, 33}, {72, 17}}</string>
<reference key="NSSuperview" ref="171588644"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="780543719"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="280650594">
@ -33135,11 +33147,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</array>
<string key="NSFrame">{{1, 1}, {354, 116}}</string>
<reference key="NSSuperview" ref="77274475"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="277801327"/>
</object>
</array>
<string key="NSFrame">{{17, 157}, {356, 132}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="171588644"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -33161,6 +33175,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{318, 111}, {59, 20}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="41872506"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="147441077">
@ -33185,6 +33200,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">12</int>
<string key="NSFrame">{{11, 94}, {367, 5}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -33204,6 +33220,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 32.425800000000002}, {356, 56}}</string>
<reference key="NSSuperview" ref="873223316"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="201524233">
<int key="NSCellFlags">67108864</int>
@ -33219,6 +33236,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</object>
</array>
<string key="NSFrameSize">{390, 309}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="77274475"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
@ -59085,6 +59104,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
</object>
<int key="connectionID">12230</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">ndsMicLevelIndicator</string>
<reference key="source" ref="231770064"/>
<reference key="destination" ref="215825056"/>
</object>
<int key="connectionID">12231</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@ -85304,8 +85331,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<string key="7173.IBWindowTemplateEditedContentRect">{{885, 594}, {350, 125}}</string>
<boolean value="NO" key="7173.NSWindowTemplate.visibleAtLaunch"/>
<string key="7174.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7175.IBEditorWindowLastContentRect">{{0, 578}, {620, 267}}</string>
<string key="7175.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7175.IBWindowTemplateEditedContentRect">{{310, 589}, {620, 267}}</string>
<string key="7175.IBWindowTemplateEditedContentRect">{{0, 578}, {620, 267}}</string>
<boolean value="NO" key="7175.NSWindowTemplate.visibleAtLaunch"/>
<string key="7176.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7179.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -86697,10 +86725,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<string key="9871.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9872.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9873.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9946.IBEditorWindowLastContentRect">{{329, 415}, {390, 309}}</string>
<string key="9946.IBEditorWindowLastContentRect">{{659, 440}, {390, 309}}</string>
<string key="9946.IBPersistedLastKnownCanvasPosition">{99.5, 246.5}</string>
<string key="9946.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9946.IBWindowTemplateEditedContentRect">{{329, 415}, {390, 309}}</string>
<string key="9946.IBWindowTemplateEditedContentRect">{{659, 440}, {390, 309}}</string>
<boolean value="NO" key="9946.NSWindowTemplate.visibleAtLaunch"/>
<reference key="9947.IBNSViewMetadataGestureRecognizers" ref="0"/>
<string key="9947.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -86747,7 +86775,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">12230</int>
<int key="maxID">12231</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
@ -87576,6 +87604,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<string key="inputManager">InputManager</string>
<string key="ndsErrorSheet">NSWindow</string>
<string key="ndsErrorStatusTextField">NSTextField</string>
<string key="ndsMicLevelIndicator">NSLevelIndicator</string>
<string key="openglMSAAPopUpButton">NSPopUpButton</string>
<string key="prefWindowDelegate">PreferencesWindowDelegate</string>
<string key="romInfoPanel">RomInfoPanel</string>
@ -87659,6 +87688,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
<string key="name">ndsErrorStatusTextField</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="ndsMicLevelIndicator">
<string key="name">ndsMicLevelIndicator</string>
<string key="candidateClassName">NSLevelIndicator</string>
</object>
<object class="IBToOneOutletInfo" key="openglMSAAPopUpButton">
<string key="name">openglMSAAPopUpButton</string>
<string key="candidateClassName">NSPopUpButton</string>

View File

@ -78,6 +78,7 @@ class AudioSampleBlockGenerator;
NSWindow *ndsErrorSheet;
NSTextField *ndsErrorStatusTextField;
NSView *exportRomSavePanelAccessoryView;
NSLevelIndicator *ndsMicLevelIndicator;
NSPopUpButton *openglMSAAPopUpButton;
@ -159,6 +160,7 @@ class AudioSampleBlockGenerator;
@property (readonly) IBOutlet NSWindow *ndsErrorSheet;
@property (readonly) IBOutlet NSTextField *ndsErrorStatusTextField;
@property (readonly) IBOutlet NSView *exportRomSavePanelAccessoryView;
@property (readonly) IBOutlet NSLevelIndicator *ndsMicLevelIndicator;
@property (readonly) IBOutlet NSPopUpButton *openglMSAAPopUpButton;

View File

@ -89,6 +89,7 @@
@synthesize currentMicGainValue;
@dynamic currentVolumeValue;
@synthesize currentMicStatusIcon;
@synthesize ndsMicLevelIndicator;
@synthesize currentVolumeIcon;
@synthesize isShowingSaveStateDialog;
@ -2224,6 +2225,8 @@
{
[self performSelectorOnMainThread:@selector(setCurrentMicStatusIcon:) withObject:micIcon waitUntilDone:NO];
}
[ndsMicLevelIndicator performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:NO];
}
- (AudioSampleBlockGenerator *) selectedAudioFileGenerator