/* * @(#)ByteBuffer.java 1.2 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media.util; public class ByteBuffer { public byte [] buffer; public int offset; public int length; public int size; public ByteBuffer(int size) { this.size = size; buffer = new byte[size]; } public final void clear() { offset = 0; length = 0; } public final void writeBytes(String s) { byte [] bytes = s.getBytes(); writeBytes(bytes); } public final void writeBytes(byte [] bytes) { System.arraycopy(bytes, 0, buffer, offset, bytes.length); offset += bytes.length; length += bytes.length; } public final void writeInt(int value) { buffer[offset + 0] = (byte)((value >> 24) & 0xFF); buffer[offset + 1] = (byte)((value >> 16) & 0xFF); buffer[offset + 2] = (byte)((value >> 8) & 0xFF); buffer[offset + 3] = (byte)((value >> 0) & 0xFF); offset += 4; length += 4; } public final void writeIntLittleEndian(int value) { buffer[offset + 3] = (byte)((value >>> 24) & 0xFF); buffer[offset + 2] = (byte)((value >>> 16) & 0xFF); buffer[offset + 1] = (byte)((value >>> 8) & 0xFF); buffer[offset + 0] = (byte)((value >>> 0) & 0xFF); offset += 4; length += 4; } public final void writeShort(short value) { buffer[offset + 0] = (byte)((value >> 8) & 0xFF); buffer[offset + 1] = (byte)((value >> 0) & 0xFF); offset += 2; length += 2; } public final void writeShortLittleEndian(short value) { buffer[offset + 1] = (byte)((value >> 8) & 0xFF); buffer[offset + 0] = (byte)((value >> 0) & 0xFF); offset += 2; length += 2; } public final void writeByte(byte value) { buffer[offset] = value; offset++; length++; } }