sleep.py

Fri, 26 Jan 2018 00:11:47 +0000

author
Tuomo Valkonen <tuomov@iki.fi>
date
Fri, 26 Jan 2018 00:11:47 +0000
changeset 68
72f821e17123
child 69
8705e296c7a0
permissions
-rw-r--r--

Added basic sleep/wake detection code for MacOS
(Still need to make use of it to adjust timers.)

#
# Wake/sleep detection for scheduling adjustments
#

import Foundation
import AppKit
import borgend

logger=borgend.logger.getChild(__name__)

class SleepHandler(Foundation.NSObject):
    """ Handle wake/sleep notifications """

    def handleSleepNotification(self, aNotification):
        logger.info("System going to sleep")

    def handleWakeNotification(self, aNotification):
        logger.info("System waking up from sleep")

if platform.system()=='Darwin':
    workspace = AppKit.NSWorkspace.sharedWorkspace()
    notification_center = workspace.notificationCenter()
    sleep_handler = SleepHandler.new()

    notification_center.addObserver_selector_name_object_(
        sleep_handler,
        "handleSleepNotification",
        AppKit.NSWorkspaceWillSleepNotification,
        None)

    notification_center.addObserver_selector_name_object_(
        sleep_handler,
        "handleWakeNotification",
        AppKit.NSWorkspaceDidWakeNotification,
        None)

mercurial