Fork of the official USBDevice library

Fork of USBDevice by mbed official

Committer:
screamer
Date:
Fri Apr 28 17:01:10 2017 +0000
Branch:
device-files
Revision:
76:f0fd8d911b24
Parent:
73:8d28a0cb7b43
Changed the layout of USBDevice implementation for various targets to match mbed-os/targets. This also reduces the amount of files being compiled as USBDevice code for other targets is not compiled.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 73:8d28a0cb7b43 1 /* Copyright (c) 2010-2011 mbed.org, MIT License
screamer 73:8d28a0cb7b43 2 *
screamer 73:8d28a0cb7b43 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
screamer 73:8d28a0cb7b43 4 * and associated documentation files (the "Software"), to deal in the Software without
screamer 73:8d28a0cb7b43 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
screamer 73:8d28a0cb7b43 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
screamer 73:8d28a0cb7b43 7 * Software is furnished to do so, subject to the following conditions:
screamer 73:8d28a0cb7b43 8 *
screamer 73:8d28a0cb7b43 9 * The above copyright notice and this permission notice shall be included in all copies or
screamer 73:8d28a0cb7b43 10 * substantial portions of the Software.
screamer 73:8d28a0cb7b43 11 *
screamer 73:8d28a0cb7b43 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
screamer 73:8d28a0cb7b43 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
screamer 73:8d28a0cb7b43 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
screamer 73:8d28a0cb7b43 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
screamer 73:8d28a0cb7b43 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
screamer 73:8d28a0cb7b43 17 */
screamer 73:8d28a0cb7b43 18
screamer 73:8d28a0cb7b43 19 #ifndef USBAUDIO_TYPES_H
screamer 73:8d28a0cb7b43 20 #define USBAUDIO_TYPES_H
screamer 73:8d28a0cb7b43 21
screamer 73:8d28a0cb7b43 22
screamer 73:8d28a0cb7b43 23 #define DEFAULT_CONFIGURATION (1)
screamer 73:8d28a0cb7b43 24
screamer 73:8d28a0cb7b43 25 // Audio Request Codes
screamer 73:8d28a0cb7b43 26 #define REQUEST_SET_CUR 0x01
screamer 73:8d28a0cb7b43 27 #define REQUEST_GET_CUR 0x81
screamer 73:8d28a0cb7b43 28 #define REQUEST_SET_MIN 0x02
screamer 73:8d28a0cb7b43 29 #define REQUEST_GET_MIN 0x82
screamer 73:8d28a0cb7b43 30 #define REQUEST_SET_MAX 0x03
screamer 73:8d28a0cb7b43 31 #define REQUEST_GET_MAX 0x83
screamer 73:8d28a0cb7b43 32 #define REQUEST_SET_RES 0x04
screamer 73:8d28a0cb7b43 33 #define REQUEST_GET_RES 0x84
screamer 73:8d28a0cb7b43 34
screamer 73:8d28a0cb7b43 35 #define MUTE_CONTROL 0x01
screamer 73:8d28a0cb7b43 36 #define VOLUME_CONTROL 0x02
screamer 73:8d28a0cb7b43 37
screamer 73:8d28a0cb7b43 38
screamer 73:8d28a0cb7b43 39 // Audio Descriptor Sizes
screamer 73:8d28a0cb7b43 40 #define CONTROL_INTERFACE_DESCRIPTOR_LENGTH 0x09
screamer 73:8d28a0cb7b43 41 #define STREAMING_INTERFACE_DESCRIPTOR_LENGTH 0x07
screamer 73:8d28a0cb7b43 42 #define INPUT_TERMINAL_DESCRIPTOR_LENGTH 0x0C
screamer 73:8d28a0cb7b43 43 #define OUTPUT_TERMINAL_DESCRIPTOR_LENGTH 0x09
screamer 73:8d28a0cb7b43 44 #define FEATURE_UNIT_DESCRIPTOR_LENGTH 0x09
screamer 73:8d28a0cb7b43 45 #define STREAMING_ENDPOINT_DESCRIPTOR_LENGTH 0x07
screamer 73:8d28a0cb7b43 46
screamer 73:8d28a0cb7b43 47 // Audio Format Type Descriptor Sizes
screamer 73:8d28a0cb7b43 48 #define FORMAT_TYPE_I_DESCRIPTOR_LENGTH 0x0b
screamer 73:8d28a0cb7b43 49
screamer 73:8d28a0cb7b43 50 #define AUDIO_CLASS 0x01
screamer 73:8d28a0cb7b43 51 #define SUBCLASS_AUDIOCONTROL 0x01
screamer 73:8d28a0cb7b43 52 #define SUBCLASS_AUDIOSTREAMING 0x02
screamer 73:8d28a0cb7b43 53
screamer 73:8d28a0cb7b43 54 // Audio Descriptor Types
screamer 73:8d28a0cb7b43 55 #define INTERFACE_DESCRIPTOR_TYPE 0x24
screamer 73:8d28a0cb7b43 56 #define ENDPOINT_DESCRIPTOR_TYPE 0x25
screamer 73:8d28a0cb7b43 57
screamer 73:8d28a0cb7b43 58 // Audio Control Interface Descriptor Subtypes
screamer 73:8d28a0cb7b43 59 #define CONTROL_HEADER 0x01
screamer 73:8d28a0cb7b43 60 #define CONTROL_INPUT_TERMINAL 0x02
screamer 73:8d28a0cb7b43 61 #define CONTROL_OUTPUT_TERMINAL 0x03
screamer 73:8d28a0cb7b43 62 #define CONTROL_FEATURE_UNIT 0x06
screamer 73:8d28a0cb7b43 63
screamer 73:8d28a0cb7b43 64 // USB Terminal Types
screamer 73:8d28a0cb7b43 65 #define TERMINAL_USB_STREAMING 0x0101
screamer 73:8d28a0cb7b43 66
screamer 73:8d28a0cb7b43 67 // Predefined Audio Channel Configuration Bits
screamer 73:8d28a0cb7b43 68 // Mono
screamer 73:8d28a0cb7b43 69 #define CHANNEL_M 0x0000
screamer 73:8d28a0cb7b43 70 #define CHANNEL_L 0x0001 /* Left Front */
screamer 73:8d28a0cb7b43 71 #define CHANNEL_R 0x0002 /* Right Front */
screamer 73:8d28a0cb7b43 72
screamer 73:8d28a0cb7b43 73 // Feature Unit Control Bits
screamer 73:8d28a0cb7b43 74 #define CONTROL_MUTE 0x0001
screamer 73:8d28a0cb7b43 75 #define CONTROL_VOLUME 0x0002
screamer 73:8d28a0cb7b43 76
screamer 73:8d28a0cb7b43 77 // Input Terminal Types
screamer 73:8d28a0cb7b43 78 #define TERMINAL_MICROPHONE 0x0201
screamer 73:8d28a0cb7b43 79
screamer 73:8d28a0cb7b43 80 // Output Terminal Types
screamer 73:8d28a0cb7b43 81 #define TERMINAL_SPEAKER 0x0301
screamer 73:8d28a0cb7b43 82 #define TERMINAL_HEADPHONES 0x0302
screamer 73:8d28a0cb7b43 83
screamer 73:8d28a0cb7b43 84 // Audio Streaming Interface Descriptor Subtypes
screamer 73:8d28a0cb7b43 85 #define STREAMING_GENERAL 0x01
screamer 73:8d28a0cb7b43 86 #define STREAMING_FORMAT_TYPE 0x02
screamer 73:8d28a0cb7b43 87
screamer 73:8d28a0cb7b43 88 // Audio Data Format Type I Codes
screamer 73:8d28a0cb7b43 89 #define FORMAT_PCM 0x0001
screamer 73:8d28a0cb7b43 90
screamer 73:8d28a0cb7b43 91 // Audio Format Types
screamer 73:8d28a0cb7b43 92 #define FORMAT_TYPE_I 0x01
screamer 73:8d28a0cb7b43 93
screamer 73:8d28a0cb7b43 94 // Audio Endpoint Descriptor Subtypes
screamer 73:8d28a0cb7b43 95 #define ENDPOINT_GENERAL 0x01
screamer 73:8d28a0cb7b43 96
screamer 73:8d28a0cb7b43 97 #endif