Should build on versions before 10.9 and run everywhere due to respondsToSelector check.
using namespace std;
extern void set_language_preference (); // cocoacarbon.mm
using namespace std;
extern void set_language_preference (); // cocoacarbon.mm
+extern void no_app_nap (); // cocoacarbon.mm
static void
setup_logging(void)
static void
setup_logging(void)
void
fixup_bundle_environment (int argc, char* argv[], string & localedir)
{
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;
}
if (!g_getenv ("ARDOUR_BUNDLED")) {
return;
}
setenv ("LANG", [nslocale UTF8String], 0);
CFRelease (cflocale);
}
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" ];
+ }
+}