Firmware for the Keyboardio Model 01 and other keyboards with AVR or ARM MCUs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Gergely Nagy 6b1745f339
Updated to use the new plugin APIs
7 years ago
examples/HostOS Updated to use the new plugin APIs 7 years ago
src Updated to use the new plugin APIs 7 years ago
.gitignore Test the plugin with Travis CI 8 years ago
.travis.yml New build infrastructure 8 years ago
COPYING Initial import 8 years ago
Makefile Update Makefile with OSX fixes and new paths 7 years ago
README.md Show the possible values of the OS type enum in README 7 years ago
library.properties The Big Rename 8 years ago

README.md

Kaleidoscope-HostOS

status Build Status

The HostOS extension is not all that useful in itself, rather, it is a building block other plugins and extensions can use to not repeat the same guesswork and logic. Its primary purpose is to help either detect, or keep track of the host operating system. The detection part is not the most reliable thing, mind you.

The goal is to have a single place that remembers the host OS, either detected, or set by the end-user, in a Sketch, or via a macro, or some other way. This information can then be reused by other plugins.

See the Unicode extension for an example about how to use HostOS in practice.

Using the extension

The extension provides a HostOS singleton object. It can either be a simple one without auto-detection (the default), or one that will try to detect the Host OS, using the FingerprintUSBHost library. To enable auto-detection, KALEIDOSCOPE_HOSTOS_GUESSER must be defined before including the HostOS library header.

#define KALEIDOSCOPE_HOSTOS_GUESSER 1

#include <Kaleidoscope.h>
#include <Kaleidoscope-HostOS.h>
#include <Kaleidoscope/HostOS-select.h>

void someFunction(void) {
  if (HostOS.os() == kaleidoscope::hostos::LINUX) {
    // do something linux-y
  }
  if (HostOS.os() == kaleidoscope::hostos::OSX) {
    // do something OSX-y
  }
}

void setup(void) {
  Kaleidoscope.use(&HostOS);

  Kaleidoscope.setup ();
}

To be able to choose between the two variants, one must also include the Kaleidoscope/HostOS-select.h header.

Extension methods

The extension provides the following methods on the HostOS singleton:

.os()

Returns the stored type of the Host OS.

.os(type)

Sets the type of the host OS, overriding any previous value. The type is then stored in EEPROM for persistence.

Host OS Values

The OS type (i.e. the return type of .os() and the arguments to .os(type)) will be one of the following:

  • kaleidoscope::hostos::LINUX
  • kaleidoscope::hostos::OSX
  • kaleidoscope::hostos::WINDOWS
  • kaleidoscope::hostos::OTHER

Dependencies

Further reading

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