master ohmu/fastfetch-openbsd / src / detection / keyboard / keyboard_haiku.cpp
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}