blob: b64ebd72fb12151649cbf5cb7e10b080fafc3eb6 [file] [log] [blame]
// Copyright 2017 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 "modules/gamepad/GamepadHapticActuator.h"
#include "bindings/core/v8/ScriptPromiseResolver.h"
namespace {
const char kGamepadHapticActuatorTypeVibration[] = "vibration";
const char kGamepadHapticActuatorTypeDualRumble[] = "dual-rumble";
const char kGamepadHapticsResultNotSupported[] = "not-supported";
} // namespace
namespace blink {
// static
GamepadHapticActuator* GamepadHapticActuator::Create(int pad_index) {
return new GamepadHapticActuator(
pad_index, device::GamepadHapticActuatorType::kDualRumble);
}
GamepadHapticActuator::GamepadHapticActuator(
int pad_index,
device::GamepadHapticActuatorType type) {
SetType(type);
}
GamepadHapticActuator::~GamepadHapticActuator() = default;
void GamepadHapticActuator::SetType(device::GamepadHapticActuatorType type) {
switch (type) {
case device::GamepadHapticActuatorType::kVibration:
type_ = kGamepadHapticActuatorTypeVibration;
break;
case device::GamepadHapticActuatorType::kDualRumble:
type_ = kGamepadHapticActuatorTypeDualRumble;
break;
default:
NOTREACHED();
}
}
ScriptPromise GamepadHapticActuator::playEffect(
ScriptState* script_state,
const String& type,
const GamepadEffectParameters& params) {
ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise promise = resolver->Promise();
resolver->Resolve(kGamepadHapticsResultNotSupported);
NOTIMPLEMENTED();
return promise;
}
ScriptPromise GamepadHapticActuator::reset(ScriptState* script_state) {
ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise promise = resolver->Promise();
resolver->Resolve(kGamepadHapticsResultNotSupported);
NOTIMPLEMENTED();
return promise;
}
void GamepadHapticActuator::Trace(blink::Visitor* visitor) {
ScriptWrappable::Trace(visitor);
}
} // namespace blink