Kaleidoscope/plugins/Kaleidoscope-HostPowerManag...
Michael Richters ca0f80d607
Process Kaleidoscope with `iwyu.py`
3 years ago
..
src Process Kaleidoscope with `iwyu.py` 3 years ago
README.md Cleanups for typos and broken links across the documentation 4 years ago
library.properties More library tweaking to comply with arduino requirements 4 years ago

README.md

HostPowerManagement

Support performing custom actions whenever the host suspends, resumes, or is sleeping.

Using the plugin

To use the plugin, one needs to include the header, and activate it. No further configuration is necessary, unless one wants to perform custom actions.

#include <Kaleidoscope.h>
#include <Kaleidoscope-HostPowerManagement.h>

KALEIDOSCOPE_INIT_PLUGINS(HostPowerManagement);

void setup () {
  Kaleidoscope.setup ();
}

Plugin methods

The plugin provides the HostPowerManagement object, with no public methods.

Overridable methods

hostPowerManagementEventHandler(event)

The hostPowerManagementEventHandler method is the brain of the plugin: this function tells it what action to perform in response to the various events.

Currently supported events are: kaleidoscope::plugin::HostPowerManagement::Suspend is fired once when the host suspends; kaleidoscope::plugin::HostPowerManagement::Sleep is fired every cycle while the host is suspended; kaleidoscope::plugin::HostPowerManagement::Resume is fired once when the host wakes up.

The default implementation is empty.

Further reading

Starting from the example is the recommended way of getting started with the plugin.

Caveats

On some systems, there can be a long delay between suspending/sleeping the host and the firmware responding to it and calling hostPowerManagementEventHandler(). In particular, on macOS, it can take 30 seconds or more after invoking "sleep" mode on the host before the keyboard responds. One user reports that it can take more than a minute, so if this plugin doesn't appear to be working, please wait a few minutes and check again.