summaryrefslogtreecommitdiffstats
path: root/src/detection/mouse/mouse_haiku.cpp
blob: 5835c8ec24e8d3f7664e47fb0958347318acf671 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
extern "C" {
#include "mouse.h"
}

#include <interface/Input.h>
#include <support/List.h>

const char* ffDetectMouse(FFlist* devices /* List of FFMouseDevice */) {
    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_POINTING_DEVICE || !device->IsRunning()) {
            continue;
        }

        FFMouseDevice* item = FF_LIST_ADD(FFMouseDevice, *devices);
        ffStrbufInit(&item->serial);
        ffStrbufInitS(&item->name, device->Name());
    }

    return NULL;
}