Index: media/midi/usb_midi_descriptor_parser.h |
diff --git a/media/midi/usb_midi_descriptor_parser.h b/media/midi/usb_midi_descriptor_parser.h |
index 826a449ef6e39cb91cf14a5c8d70b90edef00a42..cc07be3b259673ed64ca33e0b377730a39b401e3 100644 |
--- a/media/midi/usb_midi_descriptor_parser.h |
+++ b/media/midi/usb_midi_descriptor_parser.h |
@@ -5,6 +5,7 @@ |
#ifndef MEDIA_MIDI_USB_MIDI_DESCRIPTOR_PARSER_H_ |
#define MEDIA_MIDI_USB_MIDI_DESCRIPTOR_PARSER_H_ |
+#include <string> |
#include <vector> |
#include "base/basictypes.h" |
@@ -21,6 +22,24 @@ class UsbMidiDevice; |
// for collecting USB-MIDI jacks information from the descriptor. |
class MEDIA_EXPORT UsbMidiDescriptorParser { |
public: |
+ struct DeviceInfo { |
+ DeviceInfo() |
+ : vendor_id(0), |
+ product_id(0), |
+ bcd_device_version(0), |
+ manufacturer_index(0), |
+ product_index(0) {} |
+ uint16 vendor_id; |
+ uint16 product_id; |
+ // The higher one byte represents the "major" number and the lower one byte |
+ // represents the "minor" number. |
+ uint16 bcd_device_version; |
+ uint8 manufacturer_index; |
+ uint8 product_index; |
+ |
+ static std::string BcdVersionToString(uint16); |
+ }; |
+ |
UsbMidiDescriptorParser(); |
~UsbMidiDescriptorParser(); |
@@ -32,11 +51,14 @@ class MEDIA_EXPORT UsbMidiDescriptorParser { |
size_t size, |
std::vector<UsbMidiJack>* jacks); |
+ bool ParseDeviceInfo(const uint8* data, size_t size, DeviceInfo* info); |
+ |
private: |
bool ParseInternal(UsbMidiDevice* device, |
const uint8* data, |
size_t size, |
std::vector<UsbMidiJack>* jacks); |
+ bool ParseDevice(const uint8* data, size_t size, DeviceInfo* info); |
bool ParseInterface(const uint8* data, size_t size); |
bool ParseCSInterface(UsbMidiDevice* device, const uint8* data, size_t size); |
bool ParseEndpoint(const uint8* data, size_t size); |