1
0
mirror of https://github.com/yattee/yattee.git synced 2024-12-12 21:30:32 +05:30
yattee/Model/Player/ScreenSaverManager.swift
Toni Förster 94577332a1
chore: address linter warnings
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
2024-08-18 14:46:51 +02:00

37 lines
949 B
Swift

import Foundation
import IOKit.pwr_mgt
struct ScreenSaverManager {
static var shared = Self()
var noSleepAssertion: IOPMAssertionID = 0
var noSleepReturn: IOReturn?
var enabled: Bool {
noSleepReturn == nil
}
@discardableResult mutating func disable(reason: String = "Unknown reason") -> Bool {
guard enabled else {
return false
}
noSleepReturn = IOPMAssertionCreateWithName(
kIOPMAssertionTypeNoDisplaySleep as CFString,
IOPMAssertionLevel(kIOPMAssertionLevelOn),
reason as CFString,
&noSleepAssertion
)
return noSleepReturn == kIOReturnSuccess
}
@discardableResult mutating func enable() -> Bool {
if noSleepReturn != nil {
_ = IOPMAssertionRelease(noSleepAssertion) == kIOReturnSuccess
noSleepReturn = nil
return true
}
return false
}
}