1 // Copyright 2016 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef DEVICE_VR_ANDROID_GVR_DEVICE_PROVIDER_H 6 #define DEVICE_VR_ANDROID_GVR_DEVICE_PROVIDER_H 7 8 #include <memory> 9 10 #include "base/macros.h" 11 #include "device/vr/public/cpp/vr_device_provider.h" 12 #include "device/vr/vr_export.h" 13 #include "mojo/public/cpp/bindings/pending_remote.h" 14 15 namespace device { 16 17 class GvrDevice; 18 19 class DEVICE_VR_EXPORT GvrDeviceProvider : public VRDeviceProvider { 20 public: 21 GvrDeviceProvider(); 22 ~GvrDeviceProvider() override; 23 24 void Initialize( 25 base::RepeatingCallback<void(mojom::XRDeviceId, 26 mojom::VRDisplayInfoPtr, 27 mojom::XRDeviceDataPtr, 28 mojo::PendingRemote<mojom::XRRuntime>)> 29 add_device_callback, 30 base::RepeatingCallback<void(mojom::XRDeviceId)> remove_device_callback, 31 base::OnceClosure initialization_complete) override; 32 33 bool Initialized() override; 34 35 private: 36 std::unique_ptr<GvrDevice> vr_device_; 37 bool initialized_ = false; 38 39 DISALLOW_COPY_AND_ASSIGN(GvrDeviceProvider); 40 }; 41 42 } // namespace device 43 44 #endif // DEVICE_VR_ANDROID_GVR_DEVICE_PROVIDER_H 45