Index: device/generic_sensor/platform_sensor_provider_base.cc |
diff --git a/device/generic_sensor/platform_sensor_provider_base.cc b/device/generic_sensor/platform_sensor_provider_base.cc |
index c3f30ceb648966f50954ee5717d6e42ac4686551..135dd1e3d6f3e58bbb193fa5eb8bce76ec8bdffc 100644 |
--- a/device/generic_sensor/platform_sensor_provider_base.cc |
+++ b/device/generic_sensor/platform_sensor_provider_base.cc |
@@ -32,8 +32,7 @@ void PlatformSensorProviderBase::CreateSensor( |
return; |
} |
- mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset( |
- kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type)); |
+ mojo::ScopedSharedBufferMapping mapping = GetScopedSharedBufferMapping(type); |
if (!mapping) { |
callback.Run(nullptr); |
return; |
@@ -78,6 +77,7 @@ void PlatformSensorProviderBase::RemoveSensor(mojom::SensorType type) { |
DCHECK(CalledOnValidThread()); |
DCHECK(ContainsKey(sensor_map_, type)); |
sensor_map_.erase(type); |
+ SensorRemoved(type); |
if (sensor_map_.empty()) { |
AllSensorsRemoved(); |
@@ -117,4 +117,19 @@ void PlatformSensorProviderBase::NotifySensorCreated( |
requests_map_.erase(type); |
} |
+std::vector<mojom::SensorType> PlatformSensorProviderBase::GetRequestTypes() { |
Mikhail
2016/12/08 11:15:22
GetPendingRequestedTypes
|
+ std::vector<mojom::SensorType> request_types; |
+ for (auto const& entry : requests_map_) |
+ request_types.push_back(entry.first); |
+ return request_types; |
+} |
+ |
+mojo::ScopedSharedBufferMapping |
+PlatformSensorProviderBase::GetScopedSharedBufferMapping( |
+ mojom::SensorType type) { |
+ mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset( |
Mikhail
2016/12/08 11:15:22
this should not be called several times, map once
maksims (do not use this acc)
2016/12/08 18:39:17
But it does not actually overwrite existing mappin
|
+ kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type)); |
+ return mapping; |
+} |
+ |
} // namespace device |