blob: 895b47cc298eeafc05becd1729cf067b2c9d44f3 [file] [log] [blame]
#include <lib/ui/input/input_device_impl.h>
#include <src/lib/fxl/logging.h>
#include <trace/event.h>
namespace ui_input {
InputDeviceImpl::InputDeviceImpl(
uint32_t id, fuchsia::ui::input::DeviceDescriptor descriptor,
fidl::InterfaceRequest<fuchsia::ui::input::InputDevice>
input_device_request,
Listener* listener)
: id_(id),
descriptor_(std::move(descriptor)),
input_device_binding_(this, std::move(input_device_request)),
listener_(listener) {
input_device_binding_.set_error_handler([this](zx_status_t status) {
FXL_LOG(INFO) << "Device disconnected";
listener_->OnDeviceDisconnected(this);
});
}
InputDeviceImpl::~InputDeviceImpl() {}
void InputDeviceImpl::DispatchReport(fuchsia::ui::input::InputReport report) {
TRACE_DURATION("input", "input_report_listener", "id", report.trace_id);
TRACE_FLOW_END("input", "hid_read_to_listener", report.trace_id);
TRACE_FLOW_BEGIN("input", "report_to_presenter", report.trace_id);
listener_->OnReport(this, std::move(report));
}
} // namespace ui_input