2
* Copyright © 2013 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License version 3 as
6
* published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Robert Carr <robert.carr@canonical.com>
19
#ifndef MIR_INPUT_RECEIVER_PLATFORM_H_
20
#define MIR_INPUT_RECEIVER_PLATFORM_H_
22
#include "mir_toolkit/event.h"
37
class InputReceiverThread;
38
class InputReceiverReport;
41
// Interface for MirWindow to construct input dispatcher threads.
45
virtual ~InputPlatform() = default;
47
virtual std::shared_ptr<dispatch::Dispatchable> create_input_receiver(
48
int fd, std::shared_ptr<XKBMapper> const& xkb_mapper, std::function<void(MirEvent*)> const& callback) = 0;
50
static std::shared_ptr<InputPlatform> create();
51
static std::shared_ptr<InputPlatform> create(std::shared_ptr<InputReceiverReport> const& report);
54
InputPlatform() = default;
55
InputPlatform(const InputPlatform&) = delete;
56
InputPlatform& operator=(const InputPlatform&) = delete;
62
#endif // MIR_INPUT_RECEIVER_PLATFORM_H_