Added basic sleep/wake detection code for MacOS

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
parent 67
75e514746980
child 69
8705e296c7a0

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

sleep.py file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sleep.py	Fri Jan 26 00:11:47 2018 +0000
@@ -0,0 +1,36 @@
+#
+# 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