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

Unified Diff: chrome/browser/extensions/api/serial/serial_api.cc

Issue 158063002: Use udev for serial device enumeration on Linux (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: -___- Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/serial/serial_api.cc
diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc
index c2d6f5a963e3ac410b6890debe6bfa9a9feb84fc..cb5de19254338555872a9aff22b49b6c69c19f3d 100644
--- a/chrome/browser/extensions/api/serial/serial_api.cc
+++ b/chrome/browser/extensions/api/serial/serial_api.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -9,9 +9,9 @@
#include "base/values.h"
#include "chrome/browser/extensions/api/serial/serial_connection.h"
#include "chrome/browser/extensions/api/serial/serial_event_dispatcher.h"
-#include "chrome/browser/extensions/api/serial/serial_port_enumerator.h"
#include "chrome/common/extensions/api/serial.h"
#include "content/public/browser/browser_thread.h"
+#include "device/serial/serial_device_enumerator.h"
#include "extensions/browser/extension_system.h"
using content::BrowserThread;
@@ -84,18 +84,27 @@ bool SerialGetDevicesFunction::Prepare() {
void SerialGetDevicesFunction::Work() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- std::vector<linked_ptr<serial::DeviceInfo> > devices;
- SerialPortEnumerator::StringSet port_names =
- SerialPortEnumerator::GenerateValidSerialPortNames();
- for (SerialPortEnumerator::StringSet::const_iterator iter =
- port_names.begin();
- iter != port_names.end();
+ device::SerialDeviceInfoList devices;
+ scoped_ptr<device::SerialDeviceEnumerator> enumerator =
+ device::SerialDeviceEnumerator::Create();
+ enumerator->GetDevices(&devices);
+
+ std::vector<linked_ptr<serial::DeviceInfo> > out_devices;
+ for (device::SerialDeviceInfoList::const_iterator iter = devices.begin();
+ iter != devices.end();
++iter) {
+ linked_ptr<device::SerialDeviceInfo> device = *iter;
linked_ptr<serial::DeviceInfo> info(new serial::DeviceInfo);
- info->path = *iter;
- devices.push_back(info);
+ info->path = device->path;
+ if (device->vendor_id)
+ info->vendor_id.reset(new int(static_cast<int>(*device->vendor_id)));
+ if (device->product_id)
+ info->product_id.reset(new int(static_cast<int>(*device->product_id)));
+ info->display_name.reset(device->display_name.release());
+ out_devices.push_back(info);
}
- results_ = serial::GetDevices::Results::Create(devices);
+
+ results_ = serial::GetDevices::Results::Create(out_devices);
}
SerialConnectFunction::SerialConnectFunction() {}
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_api.h ('k') | chrome/browser/extensions/api/serial/serial_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698