Merge lp:~abreu-alexandre/oxide/accelerometer-support into lp:~oxide-developers/oxide/oxide.trunk

Proposed by Alexandre Abreu
Status: Work in progress
Proposed branch: lp:~abreu-alexandre/oxide/accelerometer-support
Merge into: lp:~oxide-developers/oxide/oxide.trunk
Diff against target: 573 lines (+487/-1)
8 files modified
qt/build/system.gyp (+17/-0)
qt/core/browser/oxide_data_fetcher_shared_memory.cc (+215/-0)
qt/core/browser/oxide_data_fetcher_shared_memory.h (+54/-0)
qt/core/browser/oxide_qt_accelerometer.cc (+91/-0)
qt/core/browser/oxide_qt_accelerometer.h (+39/-0)
qt/core/browser/oxide_qt_accelerometer_p.h (+53/-0)
qt/core/browser/oxide_qt_browser_startup.cc (+6/-1)
qt/core/core.gyp (+12/-0)
To merge this branch: bzr merge lp:~abreu-alexandre/oxide/accelerometer-support
Reviewer Review Type Date Requested Status
Chris Coulson Pending
Review via email: mp+277483@code.launchpad.net

Description of the change

WIP

To post a comment you must log in.

Unmerged revisions

1276. By Alexandre Abreu

simple port to trunk

1275. By Alexandre Abreu

pull trunk

1274. By Alexandre Abreu

back to trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'qt/build/system.gyp'
--- qt/build/system.gyp 2015-10-28 19:09:39 +0000
+++ qt/build/system.gyp 2015-11-13 20:15:31 +0000
@@ -91,6 +91,23 @@
91 },91 },
92 },92 },
93 {93 {
94 'target_name': 'Qt5Sensors',
95 'type': 'none',
96 'direct_dependent_settings': {
97 'cflags_cc': [
98 '<!@(<(pkg_config) --cflags Qt5Sensors)'
99 ]
100 },
101 'link_settings': {
102 'ldflags': [
103 '<!@(<(pkg_config) --libs-only-L --libs-only-other Qt5Sensors)',
104 ],
105 'libraries': [
106 '<!@(<(pkg_config) --libs-only-l Qt5Sensors)',
107 ],
108 },
109 },
110 {
94 'target_name': 'Qt5Positioning',111 'target_name': 'Qt5Positioning',
95 'type': 'none',112 'type': 'none',
96 'direct_dependent_settings': {113 'direct_dependent_settings': {
97114
=== added file 'qt/core/browser/oxide_data_fetcher_shared_memory.cc'
--- qt/core/browser/oxide_data_fetcher_shared_memory.cc 1970-01-01 00:00:00 +0000
+++ qt/core/browser/oxide_data_fetcher_shared_memory.cc 2015-11-13 20:15:31 +0000
@@ -0,0 +1,215 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18#include "oxide_data_fetcher_shared_memory.h"
19
20#include "base/logging.h"
21#include "base/metrics/histogram.h"
22
23#include "qt/core/browser/oxide_qt_accelerometer.h"
24
25namespace {
26
27static bool SetMotionBuffer(content::DeviceMotionHardwareBuffer* buffer,
28 bool enabled) {
29 if (!buffer)
30 return false;
31 buffer->seqlock.WriteBegin();
32 buffer->data.allAvailableSensorsAreActive = enabled;
33 buffer->seqlock.WriteEnd();
34 return true;
35}
36
37static bool SetOrientationBuffer(
38 content::DeviceOrientationHardwareBuffer* buffer, bool enabled) {
39 if (!buffer)
40 return false;
41 buffer->seqlock.WriteBegin();
42 buffer->data.allAvailableSensorsAreActive = enabled;
43 buffer->seqlock.WriteEnd();
44 return true;
45}
46
47static bool SetLightBuffer(content::DeviceLightHardwareBuffer* buffer,
48 double lux) {
49 if (!buffer)
50 return false;
51 buffer->seqlock.WriteBegin();
52 buffer->data.value = lux;
53 buffer->seqlock.WriteEnd();
54 return true;
55}
56
57} // namespace
58
59namespace oxide {
60
61OxideDataFetcherSharedMemory::OxideDataFetcherSharedMemory()
62 : motion_buffer_(nullptr),
63 orientation_buffer_(nullptr),
64 light_buffer_(nullptr) {
65}
66
67OxideDataFetcherSharedMemory::~OxideDataFetcherSharedMemory() {
68}
69
70void FetchOrientation(
71 oxide::qt::AccelerometerSensorReader *sensor,
72 content::DeviceOrientationHardwareBuffer* buffer) {
73 DCHECK(buffer);
74 DCHECK(sensor);
75
76 double axis_value[3];
77 if (!sensor->GetData(axis_value)) {
78 return;
79 }
80
81 const double kRad2deg = 180.0 / M_PI;
82 double beta = kRad2deg * atan2(-axis_value[1], axis_value[2]);
83 double gamma = kRad2deg * asin(axis_value[0]);
84
85 if (beta == 180.0) {
86 beta = -180;
87 }
88 if (gamma == 90.0) {
89 gamma = nextafter(90, 0);
90 }
91
92 DCHECK_GE(beta, -180.0);
93 DCHECK_LT(beta, 180.0);
94 DCHECK_GE(gamma, -90.0);
95 DCHECK_LT(gamma, 90.0);
96
97 buffer->seqlock.WriteBegin();
98 buffer->data.beta = beta;
99 buffer->data.hasBeta = true;
100 buffer->data.gamma = gamma;
101 buffer->data.hasGamma = true;
102 buffer->data.allAvailableSensorsAreActive = true;
103 buffer->seqlock.WriteEnd();
104}
105
106void FetchMotion(
107 oxide::qt::AccelerometerSensorReader* sensor,
108 content::DeviceMotionHardwareBuffer* buffer) {
109 DCHECK(buffer);
110 DCHECK(sensor);
111
112 double axis_value[3];
113 if (!sensor->GetData(axis_value)) {
114 return;
115 }
116
117 buffer->seqlock.WriteBegin();
118 buffer->data.accelerationIncludingGravityX = axis_value[0];
119 buffer->data.hasAccelerationIncludingGravityX = true;
120 buffer->data.accelerationIncludingGravityY = axis_value[1];
121 buffer->data.hasAccelerationIncludingGravityY = true;
122 buffer->data.accelerationIncludingGravityZ = axis_value[2];
123 buffer->data.hasAccelerationIncludingGravityZ = true;
124 buffer->data.allAvailableSensorsAreActive = true;
125 buffer->seqlock.WriteEnd();
126}
127
128void OxideDataFetcherSharedMemory::Fetch(unsigned consumer_bitmask) {
129 DCHECK(base::MessageLoop::current() == GetPollingMessageLoop());
130 DCHECK(consumer_bitmask & content::CONSUMER_TYPE_ORIENTATION ||
131 consumer_bitmask & content::CONSUMER_TYPE_MOTION ||
132 consumer_bitmask & content::CONSUMER_TYPE_LIGHT);
133
134 if (consumer_bitmask & content::CONSUMER_TYPE_ORIENTATION) {
135 FetchOrientation(orientation_sensor_.get(), orientation_buffer_);
136 }
137 if (consumer_bitmask & content::CONSUMER_TYPE_MOTION) {
138 FetchMotion(motion_sensor_.get(), motion_buffer_);
139 }
140}
141
142content::DataFetcherSharedMemoryBase::FetcherType
143OxideDataFetcherSharedMemory::GetType() const {
144 return content::DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK;
145}
146
147bool OxideDataFetcherSharedMemory::Start(
148 content::ConsumerType consumer_type,
149 void* buffer) {
150 DCHECK(buffer);
151
152 switch (consumer_type) {
153 case content::CONSUMER_TYPE_MOTION:
154 {
155 if (!motion_sensor_.get()) {
156 motion_sensor_.reset(
157 new oxide::qt::AccelerometerSensorReader());
158 }
159
160 motion_buffer_ =
161 static_cast<content::DeviceMotionHardwareBuffer*>(buffer);
162
163 UMA_HISTOGRAM_BOOLEAN("InertialSensor.MotionDefaultAvailable", false);
164
165 return SetMotionBuffer(motion_buffer_, true);
166 }
167 case content::CONSUMER_TYPE_ORIENTATION:
168 {
169 if (!orientation_sensor_.get()) {
170 orientation_sensor_.reset(
171 new oxide::qt::AccelerometerSensorReader());
172 }
173
174 orientation_buffer_ =
175 static_cast<content::DeviceOrientationHardwareBuffer*>(buffer);
176
177 UMA_HISTOGRAM_BOOLEAN("InertialSensor.OrientationDefaultAvailable",
178 false);
179
180 return SetOrientationBuffer(orientation_buffer_, true);
181 }
182 case content::CONSUMER_TYPE_LIGHT:
183 {
184 light_buffer_ =
185 static_cast<content::DeviceLightHardwareBuffer*>(buffer);
186
187 return SetLightBuffer(
188 light_buffer_,
189 std::numeric_limits<double>::infinity());
190 }
191 default:
192 NOTREACHED();
193 }
194 return false;
195}
196
197bool OxideDataFetcherSharedMemory::Stop(content::ConsumerType consumer_type) {
198 switch (consumer_type) {
199 case content::CONSUMER_TYPE_MOTION:
200 motion_sensor_.reset(nullptr);
201
202 return SetMotionBuffer(motion_buffer_, false);
203 case content::CONSUMER_TYPE_ORIENTATION:
204 orientation_sensor_.reset(nullptr);
205
206 return SetOrientationBuffer(orientation_buffer_, false);
207 case content::CONSUMER_TYPE_LIGHT:
208 return SetLightBuffer(light_buffer_, -1);
209 default:
210 NOTREACHED();
211 }
212 return false;
213}
214
215} // namespace oxide
0216
=== added file 'qt/core/browser/oxide_data_fetcher_shared_memory.h'
--- qt/core/browser/oxide_data_fetcher_shared_memory.h 1970-01-01 00:00:00 +0000
+++ qt/core/browser/oxide_data_fetcher_shared_memory.h 2015-11-13 20:15:31 +0000
@@ -0,0 +1,54 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18#ifndef _OXIDE_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
19#define _OXIDE_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
20
21#include "content/browser/device_sensors/data_fetcher_shared_memory.h"
22
23namespace oxide {
24
25namespace qt {
26class AccelerometerSensorReader;
27}
28
29class CONTENT_EXPORT OxideDataFetcherSharedMemory
30 : public content::DataFetcherSharedMemory {
31
32 public:
33 OxideDataFetcherSharedMemory();
34 ~OxideDataFetcherSharedMemory() override;
35
36 private:
37 bool Start(content::ConsumerType consumer_type, void* buffer) override;
38 bool Stop(content::ConsumerType consumer_type) override;
39
40 void Fetch(unsigned consumer_bitmask) override;
41 content::DataFetcherSharedMemoryBase::FetcherType GetType() const override;
42 scoped_ptr<oxide::qt::AccelerometerSensorReader> motion_sensor_;
43 scoped_ptr<oxide::qt::AccelerometerSensorReader> orientation_sensor_;
44
45 content::DeviceMotionHardwareBuffer* motion_buffer_;
46 content::DeviceOrientationHardwareBuffer* orientation_buffer_;
47 content::DeviceLightHardwareBuffer* light_buffer_;
48
49 DISALLOW_COPY_AND_ASSIGN(OxideDataFetcherSharedMemory);
50};
51
52}
53
54#endif // _OXIDE_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
055
=== added file 'qt/core/browser/oxide_qt_accelerometer.cc'
--- qt/core/browser/oxide_qt_accelerometer.cc 1970-01-01 00:00:00 +0000
+++ qt/core/browser/oxide_qt_accelerometer.cc 2015-11-13 20:15:31 +0000
@@ -0,0 +1,91 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18#include "oxide_qt_accelerometer.h"
19#include "oxide_qt_accelerometer_p.h"
20
21
22namespace oxide {
23namespace qt {
24
25AccelerometerSensorReader::AccelerometerSensorReader()
26 : instance_(AccelerometerSensorReaderImpl::GetInstance()) {
27}
28
29bool AccelerometerSensorReader::GetData(double buf[3]) {
30 return instance_->GetData(buf);
31}
32
33QWeakPointer<AccelerometerSensorReaderImpl> AccelerometerSensorReaderImpl::instance_;
34
35QSharedPointer<AccelerometerSensorReaderImpl> AccelerometerSensorReaderImpl::GetInstance() {
36 QSharedPointer<AccelerometerSensorReaderImpl> instance =
37 instance_.toStrongRef();
38
39 if (!instance.data()) {
40 instance =
41 QSharedPointer<AccelerometerSensorReaderImpl>(
42 new AccelerometerSensorReaderImpl());
43
44 instance->accelerometer_.moveToThread(&instance->thread_);
45 instance->connect(
46 &instance->accelerometer_,
47 SIGNAL(readingChanged()),
48 SLOT(updateSensor()),
49 Qt::DirectConnection);
50 instance->thread_.start();
51 QMetaObject::invokeMethod(&instance->accelerometer_, "start", Qt::QueuedConnection);
52
53 instance_ = instance;
54 }
55 return instance;
56}
57
58bool AccelerometerSensorReaderImpl::GetData(double buf[3]) {
59 if (!initialized_) {
60 return false;
61 }
62
63 mutex_.lock();
64 buf[0] = x_;
65 buf[1] = y_;
66 buf[2] = z_;
67 mutex_.unlock();
68
69 return true;
70}
71
72void AccelerometerSensorReaderImpl::updateSensor() {
73 QAccelerometerReading *accelerometer = accelerometer_.reading();
74 if (!accelerometer) {
75 return;
76 }
77
78 mutex_.lock();
79 x_ = accelerometer->x();
80 y_ = accelerometer->y();
81 z_ = accelerometer->z();
82 initialized_ = true;
83 mutex_.unlock();
84}
85
86AccelerometerSensorReaderImpl::AccelerometerSensorReaderImpl()
87 : initialized_(false) {
88}
89
90} // namespace qt
91} // namespace oxide
092
=== added file 'qt/core/browser/oxide_qt_accelerometer.h'
--- qt/core/browser/oxide_qt_accelerometer.h 1970-01-01 00:00:00 +0000
+++ qt/core/browser/oxide_qt_accelerometer.h 2015-11-13 20:15:31 +0000
@@ -0,0 +1,39 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18#ifndef _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_H_
19#define _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_H_
20
21#include <QtCore>
22
23namespace oxide {
24namespace qt {
25
26class AccelerometerSensorReaderImpl;
27
28class AccelerometerSensorReader {
29public:
30 AccelerometerSensorReader();
31 bool GetData(double buf[3]);
32private:
33 QSharedPointer<AccelerometerSensorReaderImpl> instance_;
34};
35
36} // namespace qt
37} // namespace oxide
38
39#endif // _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_H_
040
=== added file 'qt/core/browser/oxide_qt_accelerometer_p.h'
--- qt/core/browser/oxide_qt_accelerometer_p.h 1970-01-01 00:00:00 +0000
+++ qt/core/browser/oxide_qt_accelerometer_p.h 2015-11-13 20:15:31 +0000
@@ -0,0 +1,53 @@
1// vim:expandtab:shiftwidth=2:tabstop=2:
2// Copyright (C) 2015 Canonical Ltd.
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18#ifndef _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_P_H_
19#define _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_P_H_
20
21#include <QtCore>
22#include <QAccelerometer>
23
24namespace oxide {
25namespace qt {
26
27class AccelerometerSensorReaderImpl: public QObject {
28 Q_OBJECT
29public:
30 static QSharedPointer<AccelerometerSensorReaderImpl> GetInstance();
31
32 bool GetData(double buf[3]);
33
34protected Q_SLOTS:
35 void updateSensor();
36
37private:
38 AccelerometerSensorReaderImpl();
39
40 double x_, y_, z_;
41 bool initialized_;
42 QAccelerometer accelerometer_;
43 QThread thread_;
44 QMutex mutex_;
45
46 //TODO: to QWeakPointer
47 static QWeakPointer<AccelerometerSensorReaderImpl> instance_;
48};
49
50} // namespace qt
51} // namespace oxide
52
53#endif // _OXIDE_QT_CORE_BROWSER_ACCELEROMETER_P_H_
054
=== modified file 'qt/core/browser/oxide_qt_browser_startup.cc'
--- qt/core/browser/oxide_qt_browser_startup.cc 2015-04-20 19:22:23 +0000
+++ qt/core/browser/oxide_qt_browser_startup.cc 2015-11-13 20:15:31 +0000
@@ -30,6 +30,8 @@
30#include "qt/core/app/oxide_qt_platform_delegate.h"30#include "qt/core/app/oxide_qt_platform_delegate.h"
31#include "qt/core/gpu/oxide_qt_gl_context_dependent.h"31#include "qt/core/gpu/oxide_qt_gl_context_dependent.h"
3232
33#include "content/browser/device_sensors/device_inertial_sensor_service.h"
34#include "oxide_data_fetcher_shared_memory.h"
33#include "oxide_qt_web_context.h"35#include "oxide_qt_web_context.h"
3436
35namespace oxide {37namespace oxide {
@@ -48,7 +50,10 @@
4850
49BrowserStartup::BrowserStartup()51BrowserStartup::BrowserStartup()
50 : process_model_is_from_env_(false),52 : process_model_is_from_env_(false),
51 process_model_(oxide::PROCESS_MODEL_UNDEFINED) {}53 process_model_(oxide::PROCESS_MODEL_UNDEFINED) {
54 content::DeviceInertialSensorService::GetInstance()->SetDataFetcherForTesting(
55 new OxideDataFetcherSharedMemory());
56}
5257
53// static58// static
54BrowserStartup* BrowserStartup::GetInstance() {59BrowserStartup* BrowserStartup::GetInstance() {
5560
=== modified file 'qt/core/core.gyp'
--- qt/core/core.gyp 2015-10-28 19:09:39 +0000
+++ qt/core/core.gyp 2015-11-13 20:15:31 +0000
@@ -30,6 +30,7 @@
30 '../build/system.gyp:Qt5Gui-private',30 '../build/system.gyp:Qt5Gui-private',
31 '../build/system.gyp:Qt5Positioning',31 '../build/system.gyp:Qt5Positioning',
32 '../build/system.gyp:Qt5Network',32 '../build/system.gyp:Qt5Network',
33 '../build/system.gyp:Qt5Sensors',
33 '../../shared/shared.gyp:oxide_shared',34 '../../shared/shared.gyp:oxide_shared',
34 '<(DEPTH)/base/base.gyp:base',35 '<(DEPTH)/base/base.gyp:base',
35 '<(DEPTH)/content/content.gyp:content_browser',36 '<(DEPTH)/content/content.gyp:content_browser',
@@ -60,6 +61,7 @@
60 'sources': [61 'sources': [
61 '<(INTERMEDIATE_DIR)/moc_oxide_qt_browser_platform_integration.cc',62 '<(INTERMEDIATE_DIR)/moc_oxide_qt_browser_platform_integration.cc',
62 '<(INTERMEDIATE_DIR)/moc_oxide_qt_input_method_context.cc',63 '<(INTERMEDIATE_DIR)/moc_oxide_qt_input_method_context.cc',
64 '<(INTERMEDIATE_DIR)/moc_oxide_qt_accelerometer_p.cc',
63 'api/internal/oxideqmediacapturedevices_p.cc',65 'api/internal/oxideqmediacapturedevices_p.cc',
64 'api/internal/oxideqwebpreferences_p.cc',66 'api/internal/oxideqwebpreferences_p.cc',
65 'app/oxide_qt_main.cc',67 'app/oxide_qt_main.cc',
@@ -69,6 +71,11 @@
69 'browser/input/oxide_qt_input_method_context.cc',71 'browser/input/oxide_qt_input_method_context.cc',
70 'browser/input/oxide_qt_input_method_context.h',72 'browser/input/oxide_qt_input_method_context.h',
71 'browser/input/oxide_qt_input_method_context_client.h',73 'browser/input/oxide_qt_input_method_context_client.h',
74 'browser/oxide_qt_accelerometer_p.h',
75 'browser/oxide_qt_accelerometer.h',
76 'browser/oxide_qt_accelerometer.cc',
77 'browser/oxide_data_fetcher_shared_memory.cc',
78 'browser/oxide_data_fetcher_shared_memory.h',
72 'browser/oxide_qt_browser_platform_integration.cc',79 'browser/oxide_qt_browser_platform_integration.cc',
73 'browser/oxide_qt_browser_platform_integration.h',80 'browser/oxide_qt_browser_platform_integration.h',
74 'browser/oxide_qt_browser_startup.cc',81 'browser/oxide_qt_browser_startup.cc',
@@ -151,6 +158,11 @@
151 ],158 ],
152 'actions': [159 'actions': [
153 {160 {
161 'action_name': 'moc_oxide_qt_accelerometer_p.cc',
162 'moc_input': 'browser/oxide_qt_accelerometer_p.h',
163 'includes': [ 'moc.gypi' ]
164 },
165 {
154 'action_name': 'oxide_qt_clipboard.moc',166 'action_name': 'oxide_qt_clipboard.moc',
155 'moc_input': 'browser/oxide_qt_clipboard.cc',167 'moc_input': 'browser/oxide_qt_clipboard.cc',
156 'includes': [ 'moc.gypi' ]168 'includes': [ 'moc.gypi' ]

Subscribers

People subscribed via source and target branches