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

Side by Side Diff: content/browser/device_orientation/data_fetcher_shared_memory_default.cc

Issue 152893002: [DeviceLight API] Content Side Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix in Java file, stop() Created 6 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "data_fetcher_shared_memory.h" 5 #include "data_fetcher_shared_memory.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 9
10 namespace { 10 namespace {
11 11
12 static bool SetLightBuffer(content::DeviceLightHardwareBuffer* buffer,
13 bool enabled) {
14 if (!buffer)
15 return false;
16 buffer->seqlock.WriteBegin();
17 buffer->seqlock.WriteEnd();
18 return true;
19 }
20
12 static bool SetMotionBuffer(content::DeviceMotionHardwareBuffer* buffer, 21 static bool SetMotionBuffer(content::DeviceMotionHardwareBuffer* buffer,
13 bool enabled) { 22 bool enabled) {
14 if (!buffer) 23 if (!buffer)
15 return false; 24 return false;
16 buffer->seqlock.WriteBegin(); 25 buffer->seqlock.WriteBegin();
17 buffer->data.allAvailableSensorsAreActive = enabled; 26 buffer->data.allAvailableSensorsAreActive = enabled;
18 buffer->seqlock.WriteEnd(); 27 buffer->seqlock.WriteEnd();
19 return true; 28 return true;
20 } 29 }
21 30
22 static bool SetOrientationBuffer( 31 static bool SetOrientationBuffer(
23 content::DeviceOrientationHardwareBuffer* buffer, bool enabled) { 32 content::DeviceOrientationHardwareBuffer* buffer, bool enabled) {
24 if (!buffer) 33 if (!buffer)
25 return false; 34 return false;
26 buffer->seqlock.WriteBegin(); 35 buffer->seqlock.WriteBegin();
27 buffer->data.allAvailableSensorsAreActive = enabled; 36 buffer->data.allAvailableSensorsAreActive = enabled;
28 buffer->seqlock.WriteEnd(); 37 buffer->seqlock.WriteEnd();
29 return true; 38 return true;
30 } 39 }
31 40
32 } 41 } // namespace
33 42
34 namespace content { 43 namespace content {
35 44
36 DataFetcherSharedMemory::DataFetcherSharedMemory() 45 DataFetcherSharedMemory::DataFetcherSharedMemory()
37 : motion_buffer_(NULL), orientation_buffer_(NULL) { 46 : light_buffer_(NULL), motion_buffer_(NULL), orientation_buffer_(NULL) {
38 } 47 }
39 48
40 DataFetcherSharedMemory::~DataFetcherSharedMemory() { 49 DataFetcherSharedMemory::~DataFetcherSharedMemory() {
41 } 50 }
42 51
43 bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { 52 bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) {
44 DCHECK(buffer); 53 DCHECK(buffer);
45 54
46 switch (consumer_type) { 55 switch (consumer_type) {
56 case CONSUMER_TYPE_LIGHT:
57 light_buffer_ = static_cast<DeviceLightHardwareBuffer*>(buffer);
58 UMA_HISTOGRAM_BOOLEAN("InertialSensor.LightDefaultAvailable", false);
59 return SetLightBuffer(light_buffer_, true);
47 case CONSUMER_TYPE_MOTION: 60 case CONSUMER_TYPE_MOTION:
48 motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer); 61 motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer);
49 UMA_HISTOGRAM_BOOLEAN("InertialSensor.MotionDefaultAvailable", false); 62 UMA_HISTOGRAM_BOOLEAN("InertialSensor.MotionDefaultAvailable", false);
50 return SetMotionBuffer(motion_buffer_, true); 63 return SetMotionBuffer(motion_buffer_, true);
51 case CONSUMER_TYPE_ORIENTATION: 64 case CONSUMER_TYPE_ORIENTATION:
52 orientation_buffer_ = 65 orientation_buffer_ =
53 static_cast<DeviceOrientationHardwareBuffer*>(buffer); 66 static_cast<DeviceOrientationHardwareBuffer*>(buffer);
54 UMA_HISTOGRAM_BOOLEAN("InertialSensor.OrientationDefaultAvailable", 67 UMA_HISTOGRAM_BOOLEAN("InertialSensor.OrientationDefaultAvailable",
55 false); 68 false);
56 return SetOrientationBuffer(orientation_buffer_, true); 69 return SetOrientationBuffer(orientation_buffer_, true);
57 default: 70 default:
58 NOTREACHED(); 71 NOTREACHED();
59 } 72 }
60 return false; 73 return false;
61 } 74 }
62 75
63 bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) { 76 bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) {
64
65 switch (consumer_type) { 77 switch (consumer_type) {
78 case CONSUMER_TYPE_LIGHT:
79 return SetLightBuffer(light_buffer_, false);
66 case CONSUMER_TYPE_MOTION: 80 case CONSUMER_TYPE_MOTION:
67 return SetMotionBuffer(motion_buffer_, false); 81 return SetMotionBuffer(motion_buffer_, false);
68 case CONSUMER_TYPE_ORIENTATION: 82 case CONSUMER_TYPE_ORIENTATION:
69 return SetOrientationBuffer(orientation_buffer_, false); 83 return SetOrientationBuffer(orientation_buffer_, false);
70 default: 84 default:
71 NOTREACHED(); 85 NOTREACHED();
72 } 86 }
73 return false; 87 return false;
74 } 88 }
75 89
76 } // namespace content 90 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698