master ohmu/fastfetch-openbsd / src / detection / mouse / mouse_haiku.cpp
ohmu  ·  2026-10-15
 1extern "C" {
 2#include "mouse.h"
 3#include "common/debug.h"
 4}
 5
 6#include <interface/Input.h>
 7#include <support/List.h>
 8
 9const char* ffDetectMouse(FFlist* devices /* List of FFMouseDevice */) {
10    BList list;
11
12    status_t inputDevicesStatus = get_input_devices(&list);
13    if (inputDevicesStatus != B_OK) {
14        FF_DEBUG("get_input_devices() failed: status_t 0x%08x", (uint32_t) inputDevicesStatus);
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_POINTING_DEVICE || !device->IsRunning()) {
21            continue;
22        }
23
24        FFMouseDevice* item = FF_LIST_ADD(FFMouseDevice, *devices);
25        ffStrbufInit(&item->serial);
26        ffStrbufInitS(&item->name, device->Name());
27    }
28
29    return nullptr;
30}