From: Paul Davis Date: Fri, 19 Aug 2016 15:12:05 +0000 (-0400) Subject: add code to disable AppNap on OS X/MacOS X-Git-Tag: 5.1~78 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=25ec63968c0e792217a015c402ac52ae59a85e3b add code to disable AppNap on OS X/MacOS Should build on versions before 10.9 and run everywhere due to respondsToSelector check. --- diff --git a/gtk2_ardour/bundle_env_cocoa.cc b/gtk2_ardour/bundle_env_cocoa.cc index d63057408e..12d7aae2d6 100644 --- a/gtk2_ardour/bundle_env_cocoa.cc +++ b/gtk2_ardour/bundle_env_cocoa.cc @@ -50,6 +50,7 @@ using namespace ARDOUR; using namespace std; extern void set_language_preference (); // cocoacarbon.mm +extern void no_app_nap (); // cocoacarbon.mm static void setup_logging(void) @@ -81,6 +82,10 @@ setup_logging(void) void fixup_bundle_environment (int argc, char* argv[], string & localedir) { + /* do this even for non-bundle runtimes */ + + no_app_nap (); + if (!g_getenv ("ARDOUR_BUNDLED")) { return; } diff --git a/gtk2_ardour/cocoacarbon.mm b/gtk2_ardour/cocoacarbon.mm index 592a55d09d..2376756b03 100644 --- a/gtk2_ardour/cocoacarbon.mm +++ b/gtk2_ardour/cocoacarbon.mm @@ -106,3 +106,14 @@ set_language_preference () setenv ("LANG", [nslocale UTF8String], 0); CFRelease (cflocale); } + + /* Prevent "App Nap" */ + +void +no_app_nap () +{ + if ( [ [ NSProcessInfo processInfo ] respondsToSelector:@selector(beginActivityWithOptions:reason:) ] ) { + cout << "Disabling MacOS AppNap\n"; + [ [ NSProcessInfo processInfo] beginActivityWithOptions:NSActivityLatencyCritical reason:@"realtime audio" ]; + } +}