blob: c3f801ec564db4472a4f4d4c2ee9ac8afef5c4cb [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "device/gamepad/dualshock4_controller_mac.h"
#include <CoreFoundation/CoreFoundation.h>
namespace device {
Dualshock4ControllerMac::Dualshock4ControllerMac(IOHIDDeviceRef device_ref)
: device_ref_(device_ref) {}
Dualshock4ControllerMac::~Dualshock4ControllerMac() = default;
void Dualshock4ControllerMac::DoShutdown() {
device_ref_ = nullptr;
}
size_t Dualshock4ControllerMac::WriteOutputReport(void* report,
size_t report_length) {
if (!device_ref_)
return 0;
const unsigned char* report_data = static_cast<unsigned char*>(report);
IOReturn success =
IOHIDDeviceSetReport(device_ref_, kIOHIDReportTypeOutput, report_data[0],
report_data, report_length);
return (success == kIOReturnSuccess) ? report_length : 0;
}
} // namespace device