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

Side by Side Diff: device/generic_sensor/public/cpp/sensor_reading.cc

Issue 2929603003: Add RELATIVE_ORIENTATION sensor implementation on macOS to //device/generic_sensor (Closed)
Patch Set: updated IsSignificantlyDifferent() Created 3 years, 6 months 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
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/generic_sensor/public/cpp/sensor_reading.h" 5 #include "device/generic_sensor/public/cpp/sensor_reading.h"
6 6
7 #include "device/base/synchronization/shared_memory_seqlock_buffer.h"
8
9 namespace {
timvolodine 2017/06/21 18:22:11 looks like this is a merge from a different patch
juncai 2017/07/20 00:22:16 This buffer reading functionality is moved to Sens
10
11 constexpr int kMaxReadAttemptsCount = 10;
12
13 bool TryReadFromBuffer(const device::SensorReadingSharedBuffer* buffer,
14 device::SensorReading* result) {
15 const device::OneWriterSeqLock& seqlock = buffer->seqlock.value();
16 auto version = seqlock.ReadBegin();
17 auto reading_data = buffer->reading;
18 if (seqlock.ReadRetry(version))
19 return false;
20 *result = reading_data;
21 return true;
22 }
23
24 } // namespace
25
7 namespace device { 26 namespace device {
8 27
9 SensorReading::SensorReading() = default; 28 SensorReading::SensorReading() = default;
10 SensorReading::SensorReading(const SensorReading& other) = default; 29 SensorReading::SensorReading(const SensorReading& other) = default;
11 SensorReading::~SensorReading() = default; 30 SensorReading::~SensorReading() = default;
12 31
13 SensorReadingSharedBuffer::SensorReadingSharedBuffer() = default; 32 SensorReadingSharedBuffer::SensorReadingSharedBuffer() = default;
14 SensorReadingSharedBuffer::~SensorReadingSharedBuffer() = default; 33 SensorReadingSharedBuffer::~SensorReadingSharedBuffer() = default;
15 34
16 // static 35 // static
17 uint64_t SensorReadingSharedBuffer::GetOffset(mojom::SensorType type) { 36 uint64_t SensorReadingSharedBuffer::GetOffset(mojom::SensorType type) {
18 return (static_cast<uint64_t>(mojom::SensorType::LAST) - 37 return (static_cast<uint64_t>(mojom::SensorType::LAST) -
19 static_cast<uint64_t>(type)) * 38 static_cast<uint64_t>(type)) *
20 sizeof(SensorReadingSharedBuffer); 39 sizeof(SensorReadingSharedBuffer);
21 } 40 }
22 41
42 bool GetSensorReadingFromBuffer(const SensorReadingSharedBuffer* buffer,
43 SensorReading* result) {
44 int read_attempts = 0;
45 while (!TryReadFromBuffer(buffer, result)) {
46 if (++read_attempts == kMaxReadAttemptsCount)
47 return false;
48 }
49
50 return true;
51 }
52
23 } // namespace device 53 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698