Index: device/vr/vr_device_manager.cc |
diff --git a/device/vr/vr_device_manager.cc b/device/vr/vr_device_manager.cc |
index 6164efa5872dc403646fba36e60e760828d5e2db..99fb1b35116562883a4e8a30ae165638434708c7 100644 |
--- a/device/vr/vr_device_manager.cc |
+++ b/device/vr/vr_device_manager.cc |
@@ -246,13 +246,32 @@ void VRDeviceManager::SubmitFrame(VRServiceImpl* service, |
presenting_device_->SubmitFrame(std::move(pose)); |
} |
+void VRDeviceManager::OnDeviceConnectionStatusChanged(VRDevice* device, |
+ bool is_connected) { |
+ if (is_connected) { |
+ VRDisplayPtr vr_device_info = device->GetVRDevice(); |
+ if (vr_device_info.is_null()) |
+ return; |
+ |
+ vr_device_info->index = device->id(); |
+ |
+ for (const auto& service : services_) |
+ service->client()->OnDisplayConnected(vr_device_info.Clone()); |
+ } else { |
+ for (const auto& service : services_) |
+ service->client()->OnDisplayDisconnected(device->id()); |
+ } |
+} |
+ |
void VRDeviceManager::InitializeProviders() { |
if (vr_initialized_) { |
return; |
} |
- for (const auto& provider : providers_) |
+ for (const auto& provider : providers_) { |
+ provider->SetClient(this); |
provider->Initialize(); |
+ } |
vr_initialized_ = true; |
} |