From 2c20f1c6c6f967c513a819e1304cb275ca68615b Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Wed, 7 Sep 2022 07:54:55 +0200 Subject: [PATCH 1/3] slaudio: prevent suspend on macOS This helps backup applications to detect running apps --- src/modules/slaudio/slaudio.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/slaudio/slaudio.c b/src/modules/slaudio/slaudio.c index 8da9425..732cc50 100644 --- a/src/modules/slaudio/slaudio.c +++ b/src/modules/slaudio/slaudio.c @@ -15,6 +15,9 @@ #ifdef WIN32 #include #endif +#ifdef DARWIN +#include +#endif #include #define BUFFER_LEN 19200 /* max buffer_len = 192kHz*2ch*25ms*2frames */ @@ -1601,6 +1604,21 @@ static int slaudio_init(void) /* Activate windows low latency timer */ timeBeginPeriod(1); #endif + +#ifdef DARWIN + /* Prevent IdleSleep - usefull for backup applications + /* IOPMAssertionCreateWithName limits the string to 128 characters. */ + CFStringRef reasonForActivity = CFSTR("Studio Link - Audio"); + IOPMAssertionID assertionID; + + if (kIOReturnSuccess == + IOPMAssertionCreateWithName( + kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, + reasonForActivity, &assertionID)) + warning("macOS suspend prevent active\n"); + else + warning("macOS suspend prevent failed\n"); +#endif info("slaudio ready\n"); return err; From 2f9a15be89e11d98e127736b1d73e6f14abf511b Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Wed, 7 Sep 2022 08:16:12 +0200 Subject: [PATCH 2/3] use kIOPMAssertionTypeNoDisplaySleep --- src/modules/slaudio/slaudio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/slaudio/slaudio.c b/src/modules/slaudio/slaudio.c index 732cc50..cc9872f 100644 --- a/src/modules/slaudio/slaudio.c +++ b/src/modules/slaudio/slaudio.c @@ -1613,7 +1613,7 @@ static int slaudio_init(void) if (kIOReturnSuccess == IOPMAssertionCreateWithName( - kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, + kIOPMAssertionTypeNoDisplaySleep, kIOPMAssertionLevelOn, reasonForActivity, &assertionID)) warning("macOS suspend prevent active\n"); else From 04ec4bd7a7f8d0fec8e610be234193e5906fd241 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Wed, 7 Sep 2022 08:43:52 +0200 Subject: [PATCH 3/3] fix comment --- src/modules/slaudio/slaudio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/slaudio/slaudio.c b/src/modules/slaudio/slaudio.c index cc9872f..d7e52f2 100644 --- a/src/modules/slaudio/slaudio.c +++ b/src/modules/slaudio/slaudio.c @@ -1606,7 +1606,7 @@ static int slaudio_init(void) #endif #ifdef DARWIN - /* Prevent IdleSleep - usefull for backup applications + /* Prevent DisplaySleep - usefull for backup applications /* IOPMAssertionCreateWithName limits the string to 128 characters. */ CFStringRef reasonForActivity = CFSTR("Studio Link - Audio"); IOPMAssertionID assertionID;