Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: device/vr/android/gvr/gvr_device_provider.cc

Issue 2538053003: Implement vrdisplayactivate for GVR DON. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « device/vr/android/gvr/gvr_device_provider.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "device/vr/android/gvr/gvr_device_provider.h" 5 #include "device/vr/android/gvr/gvr_device_provider.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/context_utils.h" 9 #include "base/android/context_utils.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
11 #include "base/android/jni_utils.h" 11 #include "base/android/jni_utils.h"
12 #include "base/android/scoped_java_ref.h" 12 #include "base/android/scoped_java_ref.h"
13 #include "device/vr/android/gvr/gvr_delegate.h" 13 #include "device/vr/android/gvr/gvr_delegate.h"
14 #include "device/vr/android/gvr/gvr_device.h" 14 #include "device/vr/android/gvr/gvr_device.h"
15 #include "device/vr/android/gvr/gvr_gamepad_data_fetcher.h" 15 #include "device/vr/android/gvr/gvr_gamepad_data_fetcher.h"
16 #include "device/vr/vr_device_manager.h" 16 #include "device/vr/vr_device_manager.h"
17 #include "device/vr/vr_service.mojom.h"
17 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr.h" 18 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr.h"
18 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr_co ntroller.h" 19 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr_co ntroller.h"
19 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr_ty pes.h" 20 #include "third_party/gvr-android-sdk/src/ndk/include/vr/gvr/capi/include/gvr_ty pes.h"
20 21
21 using base::android::AttachCurrentThread; 22 using base::android::AttachCurrentThread;
22 using base::android::GetApplicationContext; 23 using base::android::GetApplicationContext;
23 24
24 namespace device { 25 namespace device {
25 26
26 GvrDeviceProvider::GvrDeviceProvider() : weak_ptr_factory_(this) {} 27 GvrDeviceProvider::GvrDeviceProvider() : weak_ptr_factory_(this) {}
(...skipping 15 matching lines...) Expand all
42 43
43 if (vr_device_) 44 if (vr_device_)
44 devices->push_back(vr_device_.get()); 45 devices->push_back(vr_device_.get());
45 } 46 }
46 47
47 void GvrDeviceProvider::Initialize() { 48 void GvrDeviceProvider::Initialize() {
48 device::GvrDelegateProvider* delegate_provider = 49 device::GvrDelegateProvider* delegate_provider =
49 device::GvrDelegateProvider::GetInstance(); 50 device::GvrDelegateProvider::GetInstance();
50 if (!delegate_provider) 51 if (!delegate_provider)
51 return; 52 return;
52 53 delegate_provider->SetDeviceProvider(weak_ptr_factory_.GetWeakPtr());
53 if (!vr_device_) { 54 if (!vr_device_) {
54 vr_device_.reset( 55 vr_device_.reset(
55 new GvrDevice(this, delegate_provider->GetNonPresentingDelegate())); 56 new GvrDevice(this, delegate_provider->GetNonPresentingDelegate()));
56 } 57 }
57 } 58 }
58 59
59 void GvrDeviceProvider::RequestPresent( 60 void GvrDeviceProvider::RequestPresent(
60 const base::Callback<void(bool)>& callback) { 61 const base::Callback<void(bool)>& callback) {
61 device::GvrDelegateProvider* delegate_provider = 62 device::GvrDelegateProvider* delegate_provider =
62 device::GvrDelegateProvider::GetInstance(); 63 device::GvrDelegateProvider::GetInstance();
63 if (!delegate_provider) 64 if (!delegate_provider)
64 return callback.Run(false); 65 return callback.Run(false);
65 66
66 // RequestWebVRPresent is async as a render thread may be created. 67 // RequestWebVRPresent is async as a render thread may be created.
67 delegate_provider->RequestWebVRPresent(weak_ptr_factory_.GetWeakPtr(), 68 delegate_provider->RequestWebVRPresent(callback);
68 callback);
69 } 69 }
70 70
71 // VR presentation exit requested by the API. 71 // VR presentation exit requested by the API.
72 void GvrDeviceProvider::ExitPresent() { 72 void GvrDeviceProvider::ExitPresent() {
73 SwitchToNonPresentingDelegate(); 73 SwitchToNonPresentingDelegate();
74 // If we're presenting currently stop. 74 // If we're presenting currently stop.
75 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance(); 75 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance();
76 if (delegate_provider) 76 if (delegate_provider)
77 delegate_provider->ExitWebVRPresent(); 77 delegate_provider->ExitWebVRPresent();
78 } 78 }
(...skipping 21 matching lines...) Expand all
100 return; 100 return;
101 vr_device_->OnBlur(); 101 vr_device_->OnBlur();
102 } 102 }
103 103
104 void GvrDeviceProvider::OnDisplayFocus() { 104 void GvrDeviceProvider::OnDisplayFocus() {
105 if (!vr_device_) 105 if (!vr_device_)
106 return; 106 return;
107 vr_device_->OnFocus(); 107 vr_device_->OnFocus();
108 } 108 }
109 109
110 void GvrDeviceProvider::OnDisplayActivate() {
111 if (!vr_device_)
112 return;
113 vr_device_->OnActivate(mojom::VRDisplayEventReason::MOUNTED);
114 }
115
110 void GvrDeviceProvider::SwitchToNonPresentingDelegate() { 116 void GvrDeviceProvider::SwitchToNonPresentingDelegate() {
111 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance(); 117 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance();
112 if (!vr_device_ || !delegate_provider) 118 if (!vr_device_ || !delegate_provider)
113 return; 119 return;
114 120
115 vr_device_->SetDelegate(delegate_provider->GetNonPresentingDelegate()); 121 vr_device_->SetDelegate(delegate_provider->GetNonPresentingDelegate());
116 122
117 // Remove GVR gamepad polling. 123 // Remove GVR gamepad polling.
118 GamepadDataFetcherManager::GetInstance()->RemoveSourceFactory( 124 GamepadDataFetcherManager::GetInstance()->RemoveSourceFactory(
119 GAMEPAD_SOURCE_GVR); 125 GAMEPAD_SOURCE_GVR);
120 } 126 }
121 127
122 void GvrDeviceProvider::SetListeningForActivate(bool listening) { 128 void GvrDeviceProvider::SetListeningForActivate(bool listening) {
123 device::GvrDelegateProvider* delegate_provider = 129 device::GvrDelegateProvider* delegate_provider =
124 device::GvrDelegateProvider::GetInstance(); 130 device::GvrDelegateProvider::GetInstance();
125 if (!delegate_provider) 131 if (!delegate_provider)
126 return; 132 return;
127 133
128 delegate_provider->SetListeningForActivate(listening); 134 delegate_provider->SetListeningForActivate(listening);
129 } 135 }
130 136
131 } // namespace device 137 } // namespace device
OLDNEW
« no previous file with comments | « device/vr/android/gvr/gvr_device_provider.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698