| // Copyright 2014 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. |
| |
| #ifndef MEDIA_MIDI_USB_MIDI_JACK_H_ |
| #define MEDIA_MIDI_USB_MIDI_JACK_H_ |
| |
| #include <stdint.h> |
| |
| #include "media/midi/usb_midi_export.h" |
| |
| namespace midi { |
| |
| class UsbMidiDevice; |
| |
| // UsbMidiJack represents an EMBEDDED MIDI jack. |
| struct USB_MIDI_EXPORT UsbMidiJack { |
| // The direction of the endpoint associated with an EMBEDDED MIDI jack. |
| // Note that an IN MIDI jack associated with an OUT endpoint has |
| // ***DIRECTION_OUT*** direction. |
| enum Direction { |
| DIRECTION_IN, |
| DIRECTION_OUT, |
| }; |
| UsbMidiJack(UsbMidiDevice* device, |
| uint8_t jack_id, |
| uint8_t cable_number, |
| uint8_t endpoint_address) |
| : device(device), |
| jack_id(jack_id), |
| cable_number(cable_number), |
| endpoint_address(endpoint_address) {} |
| // Not owned |
| UsbMidiDevice* device; |
| // The id of this jack unique in the interface. |
| uint8_t jack_id; |
| // The cable number of this jack in the associated endpoint. |
| uint8_t cable_number; |
| // The address of the endpoint that this jack is associated with. |
| uint8_t endpoint_address; |
| |
| Direction direction() const { |
| return (endpoint_address & 0x80) ? DIRECTION_IN : DIRECTION_OUT; |
| } |
| uint8_t endpoint_number() const { return (endpoint_address & 0xf); } |
| }; |
| |
| } // namespace midi |
| |
| #endif // MEDIA_MIDI_USB_MIDI_JACK_H_ |