Newer
Older
minerva / Kernel / Devices / Input / HID / MouseDriver.h
@minerva minerva on 13 Jul 735 bytes Initial commit
/*
 * Copyright (c) 2025, Sönke Holz <sholz8530@gmail.com>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <Kernel/Devices/Input/HID/ApplicationCollectionDriver.h>
#include <Kernel/Devices/Input/MouseDevice.h>

namespace Kernel::HID {

class MouseDriver final : public ApplicationCollectionDriver {
public:
    virtual ~MouseDriver() override;
    static ErrorOr<NonnullRefPtr<MouseDriver>> create(Device const&, ::HID::ApplicationCollection const&);

private:
    MouseDriver(Device const&, ::HID::ApplicationCollection const&, NonnullRefPtr<MouseDevice>);

    // ^ApplicationCollectionDriver
    virtual ErrorOr<void> on_report(ReadonlyBytes) override;

    NonnullRefPtr<MouseDevice> m_mouse_device;
};

}