OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/browser/api/serial/serial_connection.h" | 5 #include "extensions/browser/api/serial/serial_connection.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
13 #include "base/stl_util.h" | 13 #include "base/stl_util.h" |
14 #include "extensions/browser/api/api_resource_manager.h" | 14 #include "extensions/browser/api/api_resource_manager.h" |
15 #include "extensions/common/api/serial.h" | 15 #include "extensions/common/api/serial.h" |
16 | 16 |
17 namespace extensions { | 17 namespace extensions { |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 const int kDefaultBufferSize = 4096; | 21 const int kDefaultBufferSize = 4096; |
22 | 22 |
23 core_api::serial::SendError ConvertSendErrorFromMojo( | 23 api::serial::SendError ConvertSendErrorFromMojo( |
24 device::serial::SendError input) { | 24 device::serial::SendError input) { |
25 switch (input) { | 25 switch (input) { |
26 case device::serial::SEND_ERROR_NONE: | 26 case device::serial::SEND_ERROR_NONE: |
27 return core_api::serial::SEND_ERROR_NONE; | 27 return api::serial::SEND_ERROR_NONE; |
28 case device::serial::SEND_ERROR_DISCONNECTED: | 28 case device::serial::SEND_ERROR_DISCONNECTED: |
29 return core_api::serial::SEND_ERROR_DISCONNECTED; | 29 return api::serial::SEND_ERROR_DISCONNECTED; |
30 case device::serial::SEND_ERROR_PENDING: | 30 case device::serial::SEND_ERROR_PENDING: |
31 return core_api::serial::SEND_ERROR_PENDING; | 31 return api::serial::SEND_ERROR_PENDING; |
32 case device::serial::SEND_ERROR_TIMEOUT: | 32 case device::serial::SEND_ERROR_TIMEOUT: |
33 return core_api::serial::SEND_ERROR_TIMEOUT; | 33 return api::serial::SEND_ERROR_TIMEOUT; |
34 case device::serial::SEND_ERROR_SYSTEM_ERROR: | 34 case device::serial::SEND_ERROR_SYSTEM_ERROR: |
35 return core_api::serial::SEND_ERROR_SYSTEM_ERROR; | 35 return api::serial::SEND_ERROR_SYSTEM_ERROR; |
36 } | 36 } |
37 return core_api::serial::SEND_ERROR_NONE; | 37 return api::serial::SEND_ERROR_NONE; |
38 } | 38 } |
39 | 39 |
40 core_api::serial::ReceiveError ConvertReceiveErrorFromMojo( | 40 api::serial::ReceiveError ConvertReceiveErrorFromMojo( |
41 device::serial::ReceiveError input) { | 41 device::serial::ReceiveError input) { |
42 switch (input) { | 42 switch (input) { |
43 case device::serial::RECEIVE_ERROR_NONE: | 43 case device::serial::RECEIVE_ERROR_NONE: |
44 return core_api::serial::RECEIVE_ERROR_NONE; | 44 return api::serial::RECEIVE_ERROR_NONE; |
45 case device::serial::RECEIVE_ERROR_DISCONNECTED: | 45 case device::serial::RECEIVE_ERROR_DISCONNECTED: |
46 return core_api::serial::RECEIVE_ERROR_DISCONNECTED; | 46 return api::serial::RECEIVE_ERROR_DISCONNECTED; |
47 case device::serial::RECEIVE_ERROR_TIMEOUT: | 47 case device::serial::RECEIVE_ERROR_TIMEOUT: |
48 return core_api::serial::RECEIVE_ERROR_TIMEOUT; | 48 return api::serial::RECEIVE_ERROR_TIMEOUT; |
49 case device::serial::RECEIVE_ERROR_DEVICE_LOST: | 49 case device::serial::RECEIVE_ERROR_DEVICE_LOST: |
50 return core_api::serial::RECEIVE_ERROR_DEVICE_LOST; | 50 return api::serial::RECEIVE_ERROR_DEVICE_LOST; |
51 case device::serial::RECEIVE_ERROR_BREAK: | 51 case device::serial::RECEIVE_ERROR_BREAK: |
52 return core_api::serial::RECEIVE_ERROR_BREAK; | 52 return api::serial::RECEIVE_ERROR_BREAK; |
53 case device::serial::RECEIVE_ERROR_FRAME_ERROR: | 53 case device::serial::RECEIVE_ERROR_FRAME_ERROR: |
54 return core_api::serial::RECEIVE_ERROR_FRAME_ERROR; | 54 return api::serial::RECEIVE_ERROR_FRAME_ERROR; |
55 case device::serial::RECEIVE_ERROR_OVERRUN: | 55 case device::serial::RECEIVE_ERROR_OVERRUN: |
56 return core_api::serial::RECEIVE_ERROR_OVERRUN; | 56 return api::serial::RECEIVE_ERROR_OVERRUN; |
57 case device::serial::RECEIVE_ERROR_BUFFER_OVERFLOW: | 57 case device::serial::RECEIVE_ERROR_BUFFER_OVERFLOW: |
58 return core_api::serial::RECEIVE_ERROR_BUFFER_OVERFLOW; | 58 return api::serial::RECEIVE_ERROR_BUFFER_OVERFLOW; |
59 case device::serial::RECEIVE_ERROR_PARITY_ERROR: | 59 case device::serial::RECEIVE_ERROR_PARITY_ERROR: |
60 return core_api::serial::RECEIVE_ERROR_PARITY_ERROR; | 60 return api::serial::RECEIVE_ERROR_PARITY_ERROR; |
61 case device::serial::RECEIVE_ERROR_SYSTEM_ERROR: | 61 case device::serial::RECEIVE_ERROR_SYSTEM_ERROR: |
62 return core_api::serial::RECEIVE_ERROR_SYSTEM_ERROR; | 62 return api::serial::RECEIVE_ERROR_SYSTEM_ERROR; |
63 } | 63 } |
64 return core_api::serial::RECEIVE_ERROR_NONE; | 64 return api::serial::RECEIVE_ERROR_NONE; |
65 } | 65 } |
66 | 66 |
67 core_api::serial::DataBits ConvertDataBitsFromMojo( | 67 api::serial::DataBits ConvertDataBitsFromMojo(device::serial::DataBits input) { |
68 device::serial::DataBits input) { | |
69 switch (input) { | 68 switch (input) { |
70 case device::serial::DATA_BITS_NONE: | 69 case device::serial::DATA_BITS_NONE: |
71 return core_api::serial::DATA_BITS_NONE; | 70 return api::serial::DATA_BITS_NONE; |
72 case device::serial::DATA_BITS_SEVEN: | 71 case device::serial::DATA_BITS_SEVEN: |
73 return core_api::serial::DATA_BITS_SEVEN; | 72 return api::serial::DATA_BITS_SEVEN; |
74 case device::serial::DATA_BITS_EIGHT: | 73 case device::serial::DATA_BITS_EIGHT: |
75 return core_api::serial::DATA_BITS_EIGHT; | 74 return api::serial::DATA_BITS_EIGHT; |
76 } | 75 } |
77 return core_api::serial::DATA_BITS_NONE; | 76 return api::serial::DATA_BITS_NONE; |
78 } | 77 } |
79 | 78 |
80 device::serial::DataBits ConvertDataBitsToMojo( | 79 device::serial::DataBits ConvertDataBitsToMojo(api::serial::DataBits input) { |
81 core_api::serial::DataBits input) { | |
82 switch (input) { | 80 switch (input) { |
83 case core_api::serial::DATA_BITS_NONE: | 81 case api::serial::DATA_BITS_NONE: |
84 return device::serial::DATA_BITS_NONE; | 82 return device::serial::DATA_BITS_NONE; |
85 case core_api::serial::DATA_BITS_SEVEN: | 83 case api::serial::DATA_BITS_SEVEN: |
86 return device::serial::DATA_BITS_SEVEN; | 84 return device::serial::DATA_BITS_SEVEN; |
87 case core_api::serial::DATA_BITS_EIGHT: | 85 case api::serial::DATA_BITS_EIGHT: |
88 return device::serial::DATA_BITS_EIGHT; | 86 return device::serial::DATA_BITS_EIGHT; |
89 } | 87 } |
90 return device::serial::DATA_BITS_NONE; | 88 return device::serial::DATA_BITS_NONE; |
91 } | 89 } |
92 | 90 |
93 core_api::serial::ParityBit ConvertParityBitFromMojo( | 91 api::serial::ParityBit ConvertParityBitFromMojo( |
94 device::serial::ParityBit input) { | 92 device::serial::ParityBit input) { |
95 switch (input) { | 93 switch (input) { |
96 case device::serial::PARITY_BIT_NONE: | 94 case device::serial::PARITY_BIT_NONE: |
97 return core_api::serial::PARITY_BIT_NONE; | 95 return api::serial::PARITY_BIT_NONE; |
98 case device::serial::PARITY_BIT_ODD: | 96 case device::serial::PARITY_BIT_ODD: |
99 return core_api::serial::PARITY_BIT_ODD; | 97 return api::serial::PARITY_BIT_ODD; |
100 case device::serial::PARITY_BIT_NO: | 98 case device::serial::PARITY_BIT_NO: |
101 return core_api::serial::PARITY_BIT_NO; | 99 return api::serial::PARITY_BIT_NO; |
102 case device::serial::PARITY_BIT_EVEN: | 100 case device::serial::PARITY_BIT_EVEN: |
103 return core_api::serial::PARITY_BIT_EVEN; | 101 return api::serial::PARITY_BIT_EVEN; |
104 } | 102 } |
105 return core_api::serial::PARITY_BIT_NONE; | 103 return api::serial::PARITY_BIT_NONE; |
106 } | 104 } |
107 | 105 |
108 device::serial::ParityBit ConvertParityBitToMojo( | 106 device::serial::ParityBit ConvertParityBitToMojo(api::serial::ParityBit input) { |
109 core_api::serial::ParityBit input) { | |
110 switch (input) { | 107 switch (input) { |
111 case core_api::serial::PARITY_BIT_NONE: | 108 case api::serial::PARITY_BIT_NONE: |
112 return device::serial::PARITY_BIT_NONE; | 109 return device::serial::PARITY_BIT_NONE; |
113 case core_api::serial::PARITY_BIT_NO: | 110 case api::serial::PARITY_BIT_NO: |
114 return device::serial::PARITY_BIT_NO; | 111 return device::serial::PARITY_BIT_NO; |
115 case core_api::serial::PARITY_BIT_ODD: | 112 case api::serial::PARITY_BIT_ODD: |
116 return device::serial::PARITY_BIT_ODD; | 113 return device::serial::PARITY_BIT_ODD; |
117 case core_api::serial::PARITY_BIT_EVEN: | 114 case api::serial::PARITY_BIT_EVEN: |
118 return device::serial::PARITY_BIT_EVEN; | 115 return device::serial::PARITY_BIT_EVEN; |
119 } | 116 } |
120 return device::serial::PARITY_BIT_NONE; | 117 return device::serial::PARITY_BIT_NONE; |
121 } | 118 } |
122 | 119 |
123 core_api::serial::StopBits ConvertStopBitsFromMojo( | 120 api::serial::StopBits ConvertStopBitsFromMojo(device::serial::StopBits input) { |
124 device::serial::StopBits input) { | |
125 switch (input) { | 121 switch (input) { |
126 case device::serial::STOP_BITS_NONE: | 122 case device::serial::STOP_BITS_NONE: |
127 return core_api::serial::STOP_BITS_NONE; | 123 return api::serial::STOP_BITS_NONE; |
128 case device::serial::STOP_BITS_ONE: | 124 case device::serial::STOP_BITS_ONE: |
129 return core_api::serial::STOP_BITS_ONE; | 125 return api::serial::STOP_BITS_ONE; |
130 case device::serial::STOP_BITS_TWO: | 126 case device::serial::STOP_BITS_TWO: |
131 return core_api::serial::STOP_BITS_TWO; | 127 return api::serial::STOP_BITS_TWO; |
132 } | 128 } |
133 return core_api::serial::STOP_BITS_NONE; | 129 return api::serial::STOP_BITS_NONE; |
134 } | 130 } |
135 | 131 |
136 device::serial::StopBits ConvertStopBitsToMojo( | 132 device::serial::StopBits ConvertStopBitsToMojo(api::serial::StopBits input) { |
137 core_api::serial::StopBits input) { | |
138 switch (input) { | 133 switch (input) { |
139 case core_api::serial::STOP_BITS_NONE: | 134 case api::serial::STOP_BITS_NONE: |
140 return device::serial::STOP_BITS_NONE; | 135 return device::serial::STOP_BITS_NONE; |
141 case core_api::serial::STOP_BITS_ONE: | 136 case api::serial::STOP_BITS_ONE: |
142 return device::serial::STOP_BITS_ONE; | 137 return device::serial::STOP_BITS_ONE; |
143 case core_api::serial::STOP_BITS_TWO: | 138 case api::serial::STOP_BITS_TWO: |
144 return device::serial::STOP_BITS_TWO; | 139 return device::serial::STOP_BITS_TWO; |
145 } | 140 } |
146 return device::serial::STOP_BITS_NONE; | 141 return device::serial::STOP_BITS_NONE; |
147 } | 142 } |
148 | 143 |
149 class SendBuffer : public device::ReadOnlyBuffer { | 144 class SendBuffer : public device::ReadOnlyBuffer { |
150 public: | 145 public: |
151 SendBuffer( | 146 SendBuffer( |
152 const std::vector<char>& data, | 147 const std::vector<char>& data, |
153 const base::Callback<void(int, device::serial::SendError)>& callback) | 148 const base::Callback<void(int, device::serial::SendError)>& callback) |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 send_timeout_ = send_timeout; | 237 send_timeout_ = send_timeout; |
243 } | 238 } |
244 | 239 |
245 void SerialConnection::set_paused(bool paused) { | 240 void SerialConnection::set_paused(bool paused) { |
246 paused_ = paused; | 241 paused_ = paused; |
247 if (paused) { | 242 if (paused) { |
248 io_handler_->CancelRead(device::serial::RECEIVE_ERROR_NONE); | 243 io_handler_->CancelRead(device::serial::RECEIVE_ERROR_NONE); |
249 } | 244 } |
250 } | 245 } |
251 | 246 |
252 void SerialConnection::Open(const core_api::serial::ConnectionOptions& options, | 247 void SerialConnection::Open(const api::serial::ConnectionOptions& options, |
253 const OpenCompleteCallback& callback) { | 248 const OpenCompleteCallback& callback) { |
254 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 249 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
255 if (options.persistent.get()) | 250 if (options.persistent.get()) |
256 set_persistent(*options.persistent); | 251 set_persistent(*options.persistent); |
257 if (options.name.get()) | 252 if (options.name.get()) |
258 set_name(*options.name); | 253 set_name(*options.name); |
259 if (options.buffer_size.get()) | 254 if (options.buffer_size.get()) |
260 set_buffer_size(*options.buffer_size); | 255 set_buffer_size(*options.buffer_size); |
261 if (options.receive_timeout.get()) | 256 if (options.receive_timeout.get()) |
262 set_receive_timeout(*options.receive_timeout); | 257 set_receive_timeout(*options.receive_timeout); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 send_timeout_task_.reset(); | 291 send_timeout_task_.reset(); |
297 if (send_timeout_ > 0) { | 292 if (send_timeout_ > 0) { |
298 send_timeout_task_.reset(new TimeoutTask( | 293 send_timeout_task_.reset(new TimeoutTask( |
299 base::Bind(&SerialConnection::OnSendTimeout, AsWeakPtr()), | 294 base::Bind(&SerialConnection::OnSendTimeout, AsWeakPtr()), |
300 base::TimeDelta::FromMilliseconds(send_timeout_))); | 295 base::TimeDelta::FromMilliseconds(send_timeout_))); |
301 } | 296 } |
302 return true; | 297 return true; |
303 } | 298 } |
304 | 299 |
305 bool SerialConnection::Configure( | 300 bool SerialConnection::Configure( |
306 const core_api::serial::ConnectionOptions& options) { | 301 const api::serial::ConnectionOptions& options) { |
307 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 302 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
308 if (options.persistent.get()) | 303 if (options.persistent.get()) |
309 set_persistent(*options.persistent); | 304 set_persistent(*options.persistent); |
310 if (options.name.get()) | 305 if (options.name.get()) |
311 set_name(*options.name); | 306 set_name(*options.name); |
312 if (options.buffer_size.get()) | 307 if (options.buffer_size.get()) |
313 set_buffer_size(*options.buffer_size); | 308 set_buffer_size(*options.buffer_size); |
314 if (options.receive_timeout.get()) | 309 if (options.receive_timeout.get()) |
315 set_receive_timeout(*options.receive_timeout); | 310 set_receive_timeout(*options.receive_timeout); |
316 if (options.send_timeout.get()) | 311 if (options.send_timeout.get()) |
317 set_send_timeout(*options.send_timeout); | 312 set_send_timeout(*options.send_timeout); |
318 bool success = io_handler_->ConfigurePort( | 313 bool success = io_handler_->ConfigurePort( |
319 *device::serial::ConnectionOptions::From(options)); | 314 *device::serial::ConnectionOptions::From(options)); |
320 io_handler_->CancelRead(device::serial::RECEIVE_ERROR_NONE); | 315 io_handler_->CancelRead(device::serial::RECEIVE_ERROR_NONE); |
321 return success; | 316 return success; |
322 } | 317 } |
323 | 318 |
324 void SerialConnection::SetIoHandlerForTest( | 319 void SerialConnection::SetIoHandlerForTest( |
325 scoped_refptr<device::SerialIoHandler> handler) { | 320 scoped_refptr<device::SerialIoHandler> handler) { |
326 io_handler_ = handler; | 321 io_handler_ = handler; |
327 } | 322 } |
328 | 323 |
329 bool SerialConnection::GetInfo(core_api::serial::ConnectionInfo* info) const { | 324 bool SerialConnection::GetInfo(api::serial::ConnectionInfo* info) const { |
330 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 325 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
331 info->paused = paused_; | 326 info->paused = paused_; |
332 info->persistent = persistent_; | 327 info->persistent = persistent_; |
333 info->name = name_; | 328 info->name = name_; |
334 info->buffer_size = buffer_size_; | 329 info->buffer_size = buffer_size_; |
335 info->receive_timeout = receive_timeout_; | 330 info->receive_timeout = receive_timeout_; |
336 info->send_timeout = send_timeout_; | 331 info->send_timeout = send_timeout_; |
337 device::serial::ConnectionInfoPtr port_info = io_handler_->GetPortInfo(); | 332 device::serial::ConnectionInfoPtr port_info = io_handler_->GetPortInfo(); |
338 if (!port_info) | 333 if (!port_info) |
339 return false; | 334 return false; |
340 | 335 |
341 info->bitrate.reset(new int(port_info->bitrate)); | 336 info->bitrate.reset(new int(port_info->bitrate)); |
342 info->data_bits = ConvertDataBitsFromMojo(port_info->data_bits); | 337 info->data_bits = ConvertDataBitsFromMojo(port_info->data_bits); |
343 info->parity_bit = ConvertParityBitFromMojo(port_info->parity_bit); | 338 info->parity_bit = ConvertParityBitFromMojo(port_info->parity_bit); |
344 info->stop_bits = ConvertStopBitsFromMojo(port_info->stop_bits); | 339 info->stop_bits = ConvertStopBitsFromMojo(port_info->stop_bits); |
345 info->cts_flow_control.reset(new bool(port_info->cts_flow_control)); | 340 info->cts_flow_control.reset(new bool(port_info->cts_flow_control)); |
346 return true; | 341 return true; |
347 } | 342 } |
348 | 343 |
349 bool SerialConnection::Flush() const { | 344 bool SerialConnection::Flush() const { |
350 return io_handler_->Flush(); | 345 return io_handler_->Flush(); |
351 } | 346 } |
352 | 347 |
353 bool SerialConnection::GetControlSignals( | 348 bool SerialConnection::GetControlSignals( |
354 core_api::serial::DeviceControlSignals* control_signals) const { | 349 api::serial::DeviceControlSignals* control_signals) const { |
355 device::serial::DeviceControlSignalsPtr signals = | 350 device::serial::DeviceControlSignalsPtr signals = |
356 io_handler_->GetControlSignals(); | 351 io_handler_->GetControlSignals(); |
357 if (!signals) | 352 if (!signals) |
358 return false; | 353 return false; |
359 | 354 |
360 control_signals->dcd = signals->dcd; | 355 control_signals->dcd = signals->dcd; |
361 control_signals->cts = signals->cts; | 356 control_signals->cts = signals->cts; |
362 control_signals->ri = signals->ri; | 357 control_signals->ri = signals->ri; |
363 control_signals->dsr = signals->dsr; | 358 control_signals->dsr = signals->dsr; |
364 return true; | 359 return true; |
365 } | 360 } |
366 | 361 |
367 bool SerialConnection::SetControlSignals( | 362 bool SerialConnection::SetControlSignals( |
368 const core_api::serial::HostControlSignals& control_signals) { | 363 const api::serial::HostControlSignals& control_signals) { |
369 return io_handler_->SetControlSignals( | 364 return io_handler_->SetControlSignals( |
370 *device::serial::HostControlSignals::From(control_signals)); | 365 *device::serial::HostControlSignals::From(control_signals)); |
371 } | 366 } |
372 | 367 |
373 bool SerialConnection::SetBreak() { | 368 bool SerialConnection::SetBreak() { |
374 return io_handler_->SetBreak(); | 369 return io_handler_->SetBreak(); |
375 } | 370 } |
376 | 371 |
377 bool SerialConnection::ClearBreak() { | 372 bool SerialConnection::ClearBreak() { |
378 return io_handler_->ClearBreak(); | 373 return io_handler_->ClearBreak(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 closure_.Run(); | 422 closure_.Run(); |
428 } | 423 } |
429 | 424 |
430 } // namespace extensions | 425 } // namespace extensions |
431 | 426 |
432 namespace mojo { | 427 namespace mojo { |
433 | 428 |
434 // static | 429 // static |
435 device::serial::HostControlSignalsPtr | 430 device::serial::HostControlSignalsPtr |
436 TypeConverter<device::serial::HostControlSignalsPtr, | 431 TypeConverter<device::serial::HostControlSignalsPtr, |
437 extensions::core_api::serial::HostControlSignals>:: | 432 extensions::api::serial::HostControlSignals>:: |
438 Convert(const extensions::core_api::serial::HostControlSignals& input) { | 433 Convert(const extensions::api::serial::HostControlSignals& input) { |
439 device::serial::HostControlSignalsPtr output( | 434 device::serial::HostControlSignalsPtr output( |
440 device::serial::HostControlSignals::New()); | 435 device::serial::HostControlSignals::New()); |
441 if (input.dtr.get()) { | 436 if (input.dtr.get()) { |
442 output->has_dtr = true; | 437 output->has_dtr = true; |
443 output->dtr = *input.dtr; | 438 output->dtr = *input.dtr; |
444 } | 439 } |
445 if (input.rts.get()) { | 440 if (input.rts.get()) { |
446 output->has_rts = true; | 441 output->has_rts = true; |
447 output->rts = *input.rts; | 442 output->rts = *input.rts; |
448 } | 443 } |
449 return output.Pass(); | 444 return output.Pass(); |
450 } | 445 } |
451 | 446 |
452 // static | 447 // static |
453 device::serial::ConnectionOptionsPtr | 448 device::serial::ConnectionOptionsPtr |
454 TypeConverter<device::serial::ConnectionOptionsPtr, | 449 TypeConverter<device::serial::ConnectionOptionsPtr, |
455 extensions::core_api::serial::ConnectionOptions>:: | 450 extensions::api::serial::ConnectionOptions>:: |
456 Convert(const extensions::core_api::serial::ConnectionOptions& input) { | 451 Convert(const extensions::api::serial::ConnectionOptions& input) { |
457 device::serial::ConnectionOptionsPtr output( | 452 device::serial::ConnectionOptionsPtr output( |
458 device::serial::ConnectionOptions::New()); | 453 device::serial::ConnectionOptions::New()); |
459 if (input.bitrate.get() && *input.bitrate > 0) | 454 if (input.bitrate.get() && *input.bitrate > 0) |
460 output->bitrate = *input.bitrate; | 455 output->bitrate = *input.bitrate; |
461 output->data_bits = extensions::ConvertDataBitsToMojo(input.data_bits); | 456 output->data_bits = extensions::ConvertDataBitsToMojo(input.data_bits); |
462 output->parity_bit = extensions::ConvertParityBitToMojo(input.parity_bit); | 457 output->parity_bit = extensions::ConvertParityBitToMojo(input.parity_bit); |
463 output->stop_bits = extensions::ConvertStopBitsToMojo(input.stop_bits); | 458 output->stop_bits = extensions::ConvertStopBitsToMojo(input.stop_bits); |
464 if (input.cts_flow_control.get()) { | 459 if (input.cts_flow_control.get()) { |
465 output->has_cts_flow_control = true; | 460 output->has_cts_flow_control = true; |
466 output->cts_flow_control = *input.cts_flow_control; | 461 output->cts_flow_control = *input.cts_flow_control; |
467 } | 462 } |
468 return output.Pass(); | 463 return output.Pass(); |
469 } | 464 } |
470 | 465 |
471 } // namespace mojo | 466 } // namespace mojo |
OLD | NEW |