Android Open Source - libaums Usb Communication






From Project

Back to project page libaums.

License

The source code is released under:

Apache License

If you think the Android project libaums listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * (C) Copyright 2014 mjahnen <jahnen@in.tum.de>
 *//from w  w w .  j a v  a2s.c  om
 * 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 com.github.mjdev.libaums;

/**
 * This Interface describes a low level device to perform USB transfers. At the
 * moment only bulk IN and OUT transfer are supported. Every class that follows
 * {@link com.github.mjdev.libaums.driver.BlockDeviceDriver} can use this to
 * communicate with the underlying USB stack.
 * 
 * @author mjahnen
 * 
 */
public interface UsbCommunication {
  /**
   * Performs a bulk out transfer beginning at offset zero in the
   * <code>buffer</code> with the given <code>length</code>.
   * <p>
   * This is mostly equivalent to the call
   * <code>bulkOutTransfer(buffer, 0, length)</code>.
   * 
   * @param buffer
   *            The data to transfer.
   * @param length
   *            Amount of bytes to transfer.
   * @return Bytes transmitted if successful, or -1.
   * @see #bulkInTransfer(byte[], int, int)
   */
  public int bulkOutTransfer(byte[] buffer, int length);

  /**
   * Performs a bulk out transfer beginning at the given offset in the
   * <code>buffer</code> with the given <code>length</code>.
   * 
   * @param buffer
   *            The data to transfer.
   * @param offset
   *            Starting point to transfer data in the <code>buffer</code>
   *            array.
   * @param length
   *            Amount of bytes to transfer.
   * @return Bytes transmitted if successful, or -1.
   * @see #bulkInTransfer(byte[], int)
   */
  public int bulkOutTransfer(byte[] buffer, int offset, int length);

  /**
   * Performs a bulk in transfer beginning at offset zero in the
   * <code>buffer</code> with the given <code>length</code>.
   * <p>
   * This is mostly equivalent to the call
   * <code>bulkInTransfer(buffer, 0, length)</code>.
   * 
   * @param buffer
   *            The buffer where data should be transferred.
   * @param length
   *            Amount of bytes to transfer.
   * @return Bytes read if successful, or -1.
   * @see #bulkInTransfer(byte[], int, int)
   */
  public int bulkInTransfer(byte[] buffer, int length);

  /**
   * Performs a bulk in transfer beginning at the given offset in the
   * <code>buffer</code> with the given <code>length</code>.
   * 
   * @param buffer
   *            The buffer where data should be transferred.
   * @param offset
   *            Starting point to transfer data into the <code>buffer</code>
   *            array.
   * @param length
   *            Amount of bytes to transfer.
   * @return Bytes read if successful, or -1.
   * @see #bulkInTransfer(byte[], int)
   */
  public int bulkInTransfer(byte[] buffer, int offset, int length);
}




Java Source Code List

com.github.mjdev.libaums.UsbCommunication.java
com.github.mjdev.libaums.UsbMassStorageDevice.java
com.github.mjdev.libaums.driver.BlockDeviceDriverFactory.java
com.github.mjdev.libaums.driver.BlockDeviceDriver.java
com.github.mjdev.libaums.driver.scsi.ScsiBlockDevice.java
com.github.mjdev.libaums.driver.scsi.commands.CommandBlockWrapper.java
com.github.mjdev.libaums.driver.scsi.commands.CommandStatusWrapper.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiInquiryResponse.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiInquiry.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiRead10.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiReadCapacityResponse.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiReadCapacity.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiRequestSense.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiTestUnitReady.java
com.github.mjdev.libaums.driver.scsi.commands.ScsiWrite10.java
com.github.mjdev.libaums.fs.FileSystemFactory.java
com.github.mjdev.libaums.fs.FileSystem.java
com.github.mjdev.libaums.fs.UsbFile.java
com.github.mjdev.libaums.fs.fat32.ClusterChain.java
com.github.mjdev.libaums.fs.fat32.FAT.java
com.github.mjdev.libaums.fs.fat32.Fat32BootSector.java
com.github.mjdev.libaums.fs.fat32.Fat32FileSystem.java
com.github.mjdev.libaums.fs.fat32.FatDirectoryEntry.java
com.github.mjdev.libaums.fs.fat32.FatDirectory.java
com.github.mjdev.libaums.fs.fat32.FatFile.java
com.github.mjdev.libaums.fs.fat32.FatLfnDirectoryEntry.java
com.github.mjdev.libaums.fs.fat32.FsInfoStructure.java
com.github.mjdev.libaums.fs.fat32.ShortNameGenerator.java
com.github.mjdev.libaums.fs.fat32.ShortName.java
com.github.mjdev.libaums.partition.PartitionTableEntry.java
com.github.mjdev.libaums.partition.PartitionTableFactory.java
com.github.mjdev.libaums.partition.PartitionTable.java
com.github.mjdev.libaums.partition.Partition.java
com.github.mjdev.libaums.partition.mbr.MasterBootRecord.java
com.github.mjdev.libaums.usbfileman.MainActivity.java
com.github.mjdev.libaums.usbfileman.MoveClipboard.java
com.github.mjdev.libaums.usbfileman.UsbFileListAdapter.java