Rearrange the file layout in preparation of becoming a monorepo

Move the documentation to `doc/plugin/HostPowerManagement.md`, sources under
`src/kaleidoscope/plugin/` (appropriately namespaced). This is in preparation of
merging plugins into a single monorepo.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
pull/365/head
Gergely Nagy 6 years ago
parent 403754f915
commit 5099d8ebb9
No known key found for this signature in database
GPG Key ID: AC1E90BAC433F68F

@ -5,46 +5,4 @@
[travis:image]: https://travis-ci.org/keyboardio/Kaleidoscope-HostPowerManagement.svg?branch=master [travis:image]: https://travis-ci.org/keyboardio/Kaleidoscope-HostPowerManagement.svg?branch=master
[travis:status]: https://travis-ci.org/keyboardio/Kaleidoscope-HostPowerManagement [travis:status]: https://travis-ci.org/keyboardio/Kaleidoscope-HostPowerManagement
Support performing custom actions whenever the host suspends, resumes, or is See [doc/plugin/HostPowerManagement.md](doc/plugin/HostPowerManagement.md) for documentation.
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.
```c++
#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.
## Overrideable 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::HostPowerManagement::Suspend` is fired
> once when the host suspends; `kaleidoscope::HostPowerManagement::Sleep` is fired every
> cycle while the host is suspended; `kaleidoscope::HostPowerManagement::Resume` is
> fired once when the host wakes up.
>
> The default implementation is empty.
## Further reading
Starting from the [example][plugin:example] is the recommended way of getting
started with the plugin.
[plugin:example]: https://github.com/keyboardio/Kaleidoscope-HostPowerManagement/blob/master/examples/HostPowerManagement/HostPowerManagement.ino

@ -0,0 +1,47 @@
# Kaleidoscope-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.
```c++
#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.
## Overrideable 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][plugin:example] is the recommended way of getting
started with the plugin.
[plugin:example]: https://github.com/keyboardio/Kaleidoscope-HostPowerManagement/blob/master/examples/HostPowerManagement/HostPowerManagement.ino

@ -43,18 +43,18 @@ const Key keymaps[][ROWS][COLS] PROGMEM = {
}; };
// *INDENT-ON* // *INDENT-ON*
void hostPowerManagementEventHandler(kaleidoscope::HostPowerManagement::Event event) { void hostPowerManagementEventHandler(kaleidoscope::plugin::HostPowerManagement::Event event) {
switch (event) { switch (event) {
case kaleidoscope::HostPowerManagement::Suspend: case kaleidoscope::plugin::HostPowerManagement::Suspend:
LEDControl.paused = true; LEDControl.paused = true;
LEDControl.set_all_leds_to({0, 0, 0}); LEDControl.set_all_leds_to({0, 0, 0});
LEDControl.syncLeds(); LEDControl.syncLeds();
break; break;
case kaleidoscope::HostPowerManagement::Resume: case kaleidoscope::plugin::HostPowerManagement::Resume:
LEDControl.paused = false; LEDControl.paused = false;
LEDControl.refreshAll(); LEDControl.refreshAll();
break; break;
case kaleidoscope::HostPowerManagement::Sleep: case kaleidoscope::plugin::HostPowerManagement::Sleep:
break; break;
} }
} }

@ -18,4 +18,4 @@
#pragma once #pragma once
#include <Kaleidoscope/HostPowerManagement.h> #include <kaleidoscope/plugin/HostPowerManagement.h>

@ -25,6 +25,7 @@
extern uint8_t _usbSuspendState; extern uint8_t _usbSuspendState;
namespace kaleidoscope { namespace kaleidoscope {
namespace plugin {
bool HostPowerManagement::was_suspended_ = false; bool HostPowerManagement::was_suspended_ = false;
bool HostPowerManagement::initial_suspend_ = true; bool HostPowerManagement::initial_suspend_ = true;
@ -54,9 +55,10 @@ EventHandlerResult HostPowerManagement::beforeEachCycle() {
return EventHandlerResult::OK; return EventHandlerResult::OK;
} }
}
} }
__attribute__((weak)) void hostPowerManagementEventHandler(kaleidoscope::HostPowerManagement::Event event) { __attribute__((weak)) void hostPowerManagementEventHandler(kaleidoscope::plugin::HostPowerManagement::Event event) {
} }
kaleidoscope::HostPowerManagement HostPowerManagement; kaleidoscope::plugin::HostPowerManagement HostPowerManagement;

@ -26,6 +26,7 @@
"removed." "removed."
namespace kaleidoscope { namespace kaleidoscope {
namespace plugin {
class HostPowerManagement : public kaleidoscope::Plugin { class HostPowerManagement : public kaleidoscope::Plugin {
public: public:
typedef enum { typedef enum {
@ -46,6 +47,11 @@ class HostPowerManagement : public kaleidoscope::Plugin {
}; };
} }
void hostPowerManagementEventHandler(kaleidoscope::HostPowerManagement::Event event); // Backwards compatibility
typedef plugin::HostPowerManagement HostPowerManagement;
extern kaleidoscope::HostPowerManagement HostPowerManagement; }
void hostPowerManagementEventHandler(kaleidoscope::plugin::HostPowerManagement::Event event);
extern kaleidoscope::plugin::HostPowerManagement HostPowerManagement;
Loading…
Cancel
Save