From: msweet Date: Tue, 2 Jul 2013 20:39:24 +0000 (+0000) Subject: Use new kIOPMAssertRemoteAccess power management assertion, when supported, to X-Git-Tag: release-1.7rc1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bf181980c0f4538868289e854fe2b3cd2dbda11;p=thirdparty%2Fcups.git Use new kIOPMAssertRemoteAccess power management assertion, when supported, to keep the system awake enough to print () git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11081 a1ca3aef-8c08-0410-bb20-df032aa958be --- diff --git a/scheduler/sysman.c b/scheduler/sysman.c index 0a0aeea4c0..abeffbd5df 100644 --- a/scheduler/sysman.c +++ b/scheduler/sysman.c @@ -3,7 +3,7 @@ * * System management functions for the CUPS scheduler. * - * Copyright 2007-2011 by Apple Inc. + * Copyright 2007-2013 by Apple Inc. * Copyright 2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -69,9 +69,9 @@ * Local globals... */ -#ifdef kIOPMAssertionTypeDenySystemSleep -static IOPMAssertionID dark_wake = 0; /* "Dark wake" assertion for sharing */ -#endif /* kIOPMAssertionTypeDenySystemSleep */ +#if defined(kIOPMAssertionTypeDenySystemSleep) || defined(kIOPMAssertRemoteAccess) +static IOPMAssertionID keep_awake = 0; /* Keep the system awake while printing */ +#endif /* kIOPMAssertionTypeDenySystemSleep || kIOPMAssertRemoteAccess */ /* @@ -215,21 +215,32 @@ cupsdSetBusyState(void) #endif /* HAVE_VPROC_TRANSACTION_BEGIN */ } -#ifdef kIOPMAssertionTypeDenySystemSleep - if (cupsArrayCount(PrintingJobs) > 0 && !dark_wake) +#if defined(kIOPMAssertionTypeDenySystemSleep) || defined(kIOPMAssertRemoteAccess) + if (cupsArrayCount(PrintingJobs) > 0 && !keep_awake) { - cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting dark wake."); +# ifdef kIOPMAssertionTypeRemoteAccess + cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting RemoteAccess."); + + IOPMAssertionCreateWithName(kIOPMAssertionTypeRemoteAccess, + kIOPMAssertionLevelOn, + CFSTR("org.cups.cupsd"), &keep_awake); + +# else + cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting DenySystemSleep."); + IOPMAssertionCreateWithName(kIOPMAssertionTypeDenySystemSleep, kIOPMAssertionLevelOn, - CFSTR("org.cups.cupsd"), &dark_wake); + CFSTR("org.cups.cupsd"), &keep_awake); + +# endif /* kIOPMAssertionTypeRemoteAccess */ } - else if (cupsArrayCount(PrintingJobs) == 0 && dark_wake) + else if (cupsArrayCount(PrintingJobs) == 0 && keep_awake) { - cupsdLogMessage(CUPSD_LOG_DEBUG, "Releasing dark wake assertion."); - IOPMAssertionRelease(dark_wake); - dark_wake = 0; + cupsdLogMessage(CUPSD_LOG_DEBUG, "Releasing power assertion."); + IOPMAssertionRelease(keep_awake); + keep_awake = 0; } -#endif /* kIOPMAssertionTypeDenySystemSleep */ +#endif /* kIOPMAssertionTypeDenySystemSleep || kIOPMAssertionTypeRemoteAccess */ } @@ -874,11 +885,11 @@ sysUpdate(void) * sleep (different than idle sleep)... */ - if (dark_wake) + if (keep_awake) { cupsdLogMessage(CUPSD_LOG_DEBUG, "Releasing dark wake assertion."); - IOPMAssertionRelease(dark_wake); - dark_wake = 0; + IOPMAssertionRelease(keep_awake); + keep_awake = 0; } #endif /* kIOPMAssertionTypeDenySystemSleep */ @@ -935,12 +946,12 @@ sysUpdate(void) Sleeping = 0; #ifdef kIOPMAssertionTypeDenySystemSleep - if (cupsArrayCount(PrintingJobs) > 0 && !dark_wake) + if (cupsArrayCount(PrintingJobs) > 0 && !keep_awake) { cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting dark wake."); IOPMAssertionCreateWithName(kIOPMAssertionTypeDenySystemSleep, kIOPMAssertionLevelOn, - CFSTR("org.cups.cupsd"), &dark_wake); + CFSTR("org.cups.cupsd"), &keep_awake); } #endif /* kIOPMAssertionTypeDenySystemSleep */