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
3 // found in the LICENSE file.
5 #ifndef DEVICE_USB_USB_DEVICE_FILTER_H_
6 #define DEVICE_USB_USB_DEVICE_FILTER_H_
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
21 class UsbDeviceFilter
{
26 void SetVendorId(uint16 vendor_id
);
27 void SetProductId(uint16 product_id
);
28 void SetInterfaceClass(uint8 interface_class
);
29 void SetInterfaceSubclass(uint8 interface_subclass
);
30 void SetInterfaceProtocol(uint8 interface_protocol
);
32 bool Matches(scoped_refptr
<UsbDevice
> device
) const;
33 scoped_ptr
<base::Value
> ToValue() const;
35 static bool MatchesAny(scoped_refptr
<UsbDevice
> device
,
36 const std::vector
<UsbDeviceFilter
>& filters
);
41 uint8 interface_class_
;
42 uint8 interface_subclass_
;
43 uint8 interface_protocol_
;
44 bool vendor_id_set_
: 1;
45 bool product_id_set_
: 1;
46 bool interface_class_set_
: 1;
47 bool interface_subclass_set_
: 1;
48 bool interface_protocol_set_
: 1;
53 #endif // DEVICE_USB_USB_DEVICE_FILTER_H_