ohmu
·
2026-10-15
1extern "C" {
2#include "keyboard.h"
3#include "common/debug.h"
4}
5
6#include <interface/Input.h>
7#include <support/List.h>
8
9const char* ffDetectKeyboard(FFlist* devices /* List of FFKeyboardDevice */) {
10 BList list;
11
12 status_t status = get_input_devices(&list);
13 if (status != B_OK) {
14 FF_DEBUG("get_input_devices() failed: %d", (int) status);
15 return "get_input_devices() failed";
16 }
17
18 for (int32 i = 0, n = list.CountItems(); i < n; i++) {
19 BInputDevice* device = (BInputDevice*) list.ItemAt(i);
20 if (device->Type() != B_KEYBOARD_DEVICE || !device->IsRunning()) {
21 continue;
22 }
23
24 FFKeyboardDevice* item = FF_LIST_ADD(FFKeyboardDevice, *devices);
25 ffStrbufInit(&item->serial);
26 ffStrbufInitS(&item->name, device->Name());
27 }
28
29 return nullptr;
30}