From c1546d818f63f0f53aaafd3d3cf0c58c8f9c2d41 Mon Sep 17 00:00:00 2001 From: edouard Date: Mon, 7 Mar 2011 20:38:34 +0000 Subject: [PATCH] OP-328 Stub for MacOS support of USB Monitor. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2999 ebee16cc-31ac-478f-84a7-5cbb03baadba --- .../src/plugins/rawhid/rawhid.pro | 3 +- .../src/plugins/rawhid/usbmonitor_mac.cpp | 78 +++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 ground/openpilotgcs/src/plugins/rawhid/usbmonitor_mac.cpp diff --git a/ground/openpilotgcs/src/plugins/rawhid/rawhid.pro b/ground/openpilotgcs/src/plugins/rawhid/rawhid.pro index d7020ac73..4a3557982 100644 --- a/ground/openpilotgcs/src/plugins/rawhid/rawhid.pro +++ b/ground/openpilotgcs/src/plugins/rawhid/rawhid.pro @@ -23,7 +23,8 @@ win32 { -lsetupapi } macx { - SOURCES += pjrc_rawhid_mac.cpp + SOURCES += pjrc_rawhid_mac.cpp \ + usbmonitor_mac.cpp SDK = /Developer/SDKs/MacOSX10.5.sdk ARCH = -mmacosx-version-min=10.5 \ -arch \ diff --git a/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_mac.cpp b/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_mac.cpp new file mode 100644 index 000000000..85694b3d0 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_mac.cpp @@ -0,0 +1,78 @@ +/** + ****************************************************************************** + * + * @file usbmonitor_mac.cpp + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup RawHIDPlugin Raw HID Plugin + * @{ + * @brief Implements the USB monitor on Mac using XXXXX + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include "usbmonitor.h" +#include + +#define printf qDebug + +void USBMonitor::deviceEventReceived() { + + qDebug() << "Device event"; +} + +/** + Initialize the USB monitor here + */ +USBMonitor::USBMonitor(QObject *parent): QThread(parent) { + + qDebug() << "TODO: implement the Mac version of USB Monitor!!!"; + + start(); // Start the thread event loop so that the socketnotifier works +} + +USBMonitor::~USBMonitor() +{ + quit(); +} + +/** +Returns a list of all currently available devices +*/ +QList USBMonitor::availableDevices() +{ + QList devicesList; + + return devicesList; + +} + +/** + Be a bit more picky and ask only for a specific type of device: + */ +QList USBMonitor::availableDevices(int vid, int pid, int bcdDevice) +{ + QList allPorts = availableDevices(); + QList thePortsWeWant; + + foreach (USBPortInfo port, allPorts) { + if((port.vendorID==vid || vid==-1) && (port.productID==pid || vid==-1) && (port.bcdDevice==bcdDevice || bcdDevice==-1)) + thePortsWeWant.append(port); + } + return thePortsWeWant; +}