Android Open Source - drive-mount Bit Stitching






From Project

Back to project page drive-mount.

License

The source code is released under:

Apache License

If you think the Android project drive-mount 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

/**
 * Copyright  2014 Jan Seeger/*from  ww w.  jav a  2s .  c  o  m*/
 *
 * 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 net.alphadev.usbstorage.util;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
 * @author Jan Seeger <jan@alphadev.net>
 */
@SuppressWarnings("unused")
public final class BitStitching {
    public static int convertToInt(byte[] byteArray, int offset, ByteOrder order) {
        ByteBuffer b = ByteBuffer.allocate(4);
        b.order(order);
        b.put(byteArray, offset, 4);
        b.rewind();
        return b.getInt();
    }

    public static void setBytesFromInt(int integer, byte[] array, int offset, ByteOrder order) {
        ByteBuffer b = ByteBuffer.allocate(4);
        b.order(order);
        b.putInt(integer);
        byte[] temp = b.array();

        setBytes(temp, array, offset, 4);
    }

    public static String convertBytesToHex(byte[] a) {
        StringBuilder sb = new StringBuilder(a.length * 2);
        for (byte b : a)
            sb.append(String.format("%02x ", b & 0xff));
        return sb.toString();
    }

    public static String convertByteBufferToHex(final ByteBuffer buffer) {
        final byte[] bytes = new byte[buffer.remaining()];
        buffer.duplicate().get(bytes);
        return convertBytesToHex(bytes);
    }

    public static short convertToShort(byte[] byteArray, int offset, ByteOrder order) {
        ByteBuffer b = ByteBuffer.allocate(2);
        b.order(order);
        b.put(byteArray, offset, 2);
        b.rewind();
        return b.getShort();
    }

    /**
     * Used to read the Vendor and Model descriptions.
     */
    public static String bytesToString(byte[] answer, int offset, int length) {
        ByteBuffer buffer = ByteBuffer.allocate(length);
        buffer.put(answer, offset, length);
        return new String(buffer.array());
    }

    public static void setBytesFromShort(short value, byte[] array, int offset, ByteOrder order) {
        ByteBuffer b = ByteBuffer.allocate(2);
        b.order(order);
        b.putShort(value);
        byte[] temp = b.array();

        setBytes(temp, array, offset, 2);
    }

    private static void setBytes(byte[] a, byte[] array, int offset, int length) {
        for (int i = 0; i < length; i++) {
            int index = offset + i;
            array[index] = a[i];
        }
    }

    public static byte[] forceCast(int[] input) {
        byte[] output = new byte[input.length];
        for (int i = 0; i < output.length; i++) {
            output[i] = (byte) input[i];
        }
        return output;
    }
}




Java Source Code List

net.alphadev.fat32wrapper.Fat32Provider.java
net.alphadev.fat32wrapper.FatBlockDeviceWrapper.java
net.alphadev.fat32wrapper.FatStorage.java
net.alphadev.fat32wrapper.ReadingFileHandle.java
net.alphadev.usbstorage.DeviceManager.java
net.alphadev.usbstorage.DocumentProviderImpl.java
net.alphadev.usbstorage.StorageManager.java
net.alphadev.usbstorage.UsbBulkDevice.java
net.alphadev.usbstorage.api.Identifiable.java
net.alphadev.usbstorage.api.device.BlockDevice.java
net.alphadev.usbstorage.api.device.BulkDevice.java
net.alphadev.usbstorage.api.device.ReadOnlyException.java
net.alphadev.usbstorage.api.filesystem.FileAttribute.java
net.alphadev.usbstorage.api.filesystem.FileHandle.java
net.alphadev.usbstorage.api.filesystem.FileSystemProvider.java
net.alphadev.usbstorage.api.filesystem.Path.java
net.alphadev.usbstorage.api.filesystem.StorageDevice.java
net.alphadev.usbstorage.api.scsi.ScsiTransferable.java
net.alphadev.usbstorage.api.scsi.Transmittable.java
net.alphadev.usbstorage.bbb.BulkBlockDevice.java
net.alphadev.usbstorage.partition.FileSystemDescriptor.java
net.alphadev.usbstorage.partition.MasterBootRecord.java
net.alphadev.usbstorage.partition.PartitionParameters.java
net.alphadev.usbstorage.partition.Partition.java
net.alphadev.usbstorage.scsi.CommandBlockWrapper.java
net.alphadev.usbstorage.scsi.CommandStatusWrapper.java
net.alphadev.usbstorage.scsi.answer.ModeSenseResponse.java
net.alphadev.usbstorage.scsi.answer.ReadCapacityResponse.java
net.alphadev.usbstorage.scsi.answer.ReadFormatCapacitiesEntry.java
net.alphadev.usbstorage.scsi.answer.ReadFormatCapacitiesHeader.java
net.alphadev.usbstorage.scsi.answer.RequestSenseResponse.java
net.alphadev.usbstorage.scsi.answer.StandardInquiryAnswer.java
net.alphadev.usbstorage.scsi.command.Inquiry.java
net.alphadev.usbstorage.scsi.command.ModeSense.java
net.alphadev.usbstorage.scsi.command.Read10.java
net.alphadev.usbstorage.scsi.command.ReadCapacity.java
net.alphadev.usbstorage.scsi.command.ReadFormatCapacities.java
net.alphadev.usbstorage.scsi.command.RequestSense.java
net.alphadev.usbstorage.scsi.command.ScsiCommand.java
net.alphadev.usbstorage.scsi.command.TestUnitReady.java
net.alphadev.usbstorage.util.BitStitching.java
net.alphadev.usbstorage.util.ParcelFileDescriptorUtil.java