blob: 78ba3ea3d61e00dbdd8a8a8719b1b5955c4a7811 [file] [log] [blame]
// Copyright 2015 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.
#ifndef VRDevice_h
#define VRDevice_h
#include "bindings/core/v8/ScriptWrappable.h"
#include "modules/vr/VRHardwareUnit.h"
#include "platform/heap/Handle.h"
#include "wtf/Forward.h"
#include "wtf/text/WTFString.h"
namespace blink {
class VRController;
class VRDevice : public GarbageCollectedFinalized<VRDevice>, public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
virtual ~VRDevice();
unsigned index() const { return m_hardwareUnit->index(); }
const String& hardwareUnitId() const { return m_hardwareUnit->hardwareUnitId(); }
const String& deviceId() const { return m_deviceId; }
const String& deviceName() const { return m_deviceName; }
VRHardwareUnit* hardwareUnit() { return m_hardwareUnit; }
const VRHardwareUnit* hardwareUnit() const { return m_hardwareUnit; }
VRController* controller() { return m_hardwareUnit->controller(); }
virtual void updateFromWebVRDevice(const WebVRDevice&);
DECLARE_VIRTUAL_TRACE();
protected:
VRDevice(VRHardwareUnit*, unsigned);
private:
Member<VRHardwareUnit> m_hardwareUnit;
String m_deviceId;
String m_deviceName;
};
using VRDeviceVector = HeapVector<Member<VRDevice>>;
} // namespace blink
#endif // VRDevice_h