- fixed null pointer access in opensync's HasMultipleVEvents()
[barry.git] / src / probe.h
blob07ea29a0f51a4b714d4bf633b3a2179d4a755903
1 ///
2 /// \file probe.h
3 /// USB Blackberry detection routines
4 ///
6 /*
7 Copyright (C) 2005-2007, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #ifndef __BARRY_PROBE_H__
23 #define __BARRY_PROBE_H__
25 #include "usbwrap.h"
26 #include <vector>
27 #include <iosfwd>
28 #include <stdint.h>
30 namespace Barry {
32 struct ProbeResult
34 Usb::DeviceIDType m_dev;
35 unsigned char m_interface;
36 uint32_t m_pin;
37 Usb::EndpointPair m_ep;
38 uint8_t m_zeroSocketSequence;
41 std::ostream& operator<< (std::ostream &os, const ProbeResult &pr);
44 class Probe
46 std::vector<ProbeResult> m_results;
48 bool Parse(const Data &data, ProbeResult &result);
50 protected:
51 void ProbeDevice(Usb::DeviceIDType devid);
53 public:
54 Probe();
56 int GetCount() const { return m_results.size(); }
57 const ProbeResult& Get(int index) const { return m_results[index]; }
59 int FindActive(uint32_t pin = 0) const; // returns -1 if pin not found
60 // or if no devices
64 } // namespace Barry
66 #endif