1b5eaa809da69865cbde156007ae5363f9209f932Paul McLean/* 2b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * Copyright (C) 2017 The Android Open Source Project 3b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * 4b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * Licensed under the Apache License, Version 2.0 (the "License"); 5b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * you may not use this file except in compliance with the License. 6b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * You may obtain a copy of the License at 7b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * 8b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * http://www.apache.org/licenses/LICENSE-2.0 9b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * 10b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * Unless required by applicable law or agreed to in writing, software 11b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * distributed under the License is distributed on an "AS IS" BASIS, 12b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * See the License for the specific language governing permissions and 14b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * limitations under the License. 15b5eaa809da69865cbde156007ae5363f9209f932Paul McLean */ 16b5eaa809da69865cbde156007ae5363f9209f932Paul McLeanpackage com.android.server.usb.descriptors; 17b5eaa809da69865cbde156007ae5363f9209f932Paul McLean 18fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLeanimport com.android.server.usb.descriptors.report.ReportCanvas; 19fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean 20b5eaa809da69865cbde156007ae5363f9209f932Paul McLean/** 21b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * @hide 22b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * An audio class-specific Midi Output Jack Interface. 23b5eaa809da69865cbde156007ae5363f9209f932Paul McLean * see midi10.pdf section B.4.4 24b5eaa809da69865cbde156007ae5363f9209f932Paul McLean */ 25fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLeanpublic final class UsbMSMidiOutputJack extends UsbACInterface { 26fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean private static final String TAG = "UsbMSMidiOutputJack"; 27b5eaa809da69865cbde156007ae5363f9209f932Paul McLean 28b5eaa809da69865cbde156007ae5363f9209f932Paul McLean public UsbMSMidiOutputJack(int length, byte type, byte subtype, byte subclass) { 29b5eaa809da69865cbde156007ae5363f9209f932Paul McLean super(length, type, subtype, subclass); 30b5eaa809da69865cbde156007ae5363f9209f932Paul McLean } 31b5eaa809da69865cbde156007ae5363f9209f932Paul McLean 32b5eaa809da69865cbde156007ae5363f9209f932Paul McLean @Override 33b5eaa809da69865cbde156007ae5363f9209f932Paul McLean public int parseRawDescriptors(ByteStream stream) { 34b5eaa809da69865cbde156007ae5363f9209f932Paul McLean // TODO - read data memebers 35b5eaa809da69865cbde156007ae5363f9209f932Paul McLean stream.advance(mLength - stream.getReadCount()); 36b5eaa809da69865cbde156007ae5363f9209f932Paul McLean return mLength; 37b5eaa809da69865cbde156007ae5363f9209f932Paul McLean } 38fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean 39fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean @Override 40fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean public void report(ReportCanvas canvas) { 41fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean super.report(canvas); 42fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean 43fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean canvas.writeHeader(3, "MS Midi Output Jack: " + ReportCanvas.getHexString(getType()) 44fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean + " SubType: " + ReportCanvas.getHexString(getSubclass()) 45fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean + " Length: " + getLength()); 46fd7cb85feff517f3cc94384102933aa4485e1fc5Paul McLean } 47b5eaa809da69865cbde156007ae5363f9209f932Paul McLean} 48