Index: device/vr/vr_device_manager.cc |
diff --git a/device/vr/vr_device_manager.cc b/device/vr/vr_device_manager.cc |
index b774ad248b762c7018e36f3040eded2d48ba6e7d..9e2d0152fcfc2de8738f27704f6feadf22fbf6dd 100644 |
--- a/device/vr/vr_device_manager.cc |
+++ b/device/vr/vr_device_manager.cc |
@@ -127,13 +127,32 @@ void VRDeviceManager::OnDeviceChanged(VRDisplayPtr device) { |
service->client()->OnDisplayChanged(device.Clone()); |
} |
+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; |
} |