/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; /** * A class representing an endpoint on a {@link android.hardware.UsbInterface}. */ public final class UsbEndpoint implements Parcelable { private int mAddress; private int mAttributes; private int mMaxPacketSize; private int mInterval; private UsbInterface mInterface; private UsbEndpoint() { } /** * UsbEndpoint should only be instantiated by UsbService implementation * @hide */ public UsbEndpoint(int address, int attributes, int maxPacketSize, int interval) { mAddress = address; mAttributes = attributes; mMaxPacketSize = maxPacketSize; mInterval = interval; } /** * Returns the endpoint's address field. * * @return the endpoint's address */ public int getAddress() { return mAddress; } /** * Extracts the endpoint's endpoint number from its address * * @return the endpoint's endpoint number */ public int getEndpointNumber() { return mAddress & UsbConstants.USB_ENDPOINT_NUMBER_MASK; } /** * Returns the endpoint's direction. * Returns {@link android.hardware.UsbConstants#USB_DIR_OUT} * if the direction is host to device, and * {@link android.hardware.UsbConstants#USB_DIR_IN} if the * direction is device to host. * * @return the endpoint's direction */ public int getDirection() { return mAddress & UsbConstants.USB_ENDPOINT_DIR_MASK; } /** * Returns the endpoint's attributes field. * * @return the endpoint's attributes */ public int getAttributes() { return mAttributes; } /** * Returns the endpoint's type. * Possible results are: *