diff options
Diffstat (limited to 'src/detection/keyboard/keyboard_haiku.cpp')
| -rw-r--r-- | src/detection/keyboard/keyboard_haiku.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/detection/keyboard/keyboard_haiku.cpp b/src/detection/keyboard/keyboard_haiku.cpp new file mode 100644 index 0000000..dc1d28a --- /dev/null +++ b/src/detection/keyboard/keyboard_haiku.cpp @@ -0,0 +1,27 @@ +extern "C" { +#include "keyboard.h" +} + +#include <interface/Input.h> +#include <support/List.h> + +const char* ffDetectKeyboard(FFlist* devices /* List of FFKeyboardDevice */) { + BList list; + + if (get_input_devices(&list) != B_OK) { + return "get_input_devices() failed"; + } + + for (int32 i = 0, n = list.CountItems(); i < n; i++) { + BInputDevice* device = (BInputDevice*) list.ItemAt(i); + if (device->Type() != B_KEYBOARD_DEVICE || !device->IsRunning()) { + continue; + } + + FFKeyboardDevice* item = FF_LIST_ADD(FFKeyboardDevice, *devices); + ffStrbufInit(&item->serial); + ffStrbufInitS(&item->name, device->Name()); + } + + return NULL; +} |