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