Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.monte.media.iff
Class MC68000InputStream

    java.lang.Object
      java.io.InputStream
          java.io.FilterInputStream
              org.monte.media.iff.MC68000InputStream

All Implemented Interfaces:
  java.io.Closeable

    public class MC68000InputStream

extends java.io.FilterInputStream

A MC 68000 input stream lets an application read primitive data types in the MC 68000 CPU format from an underlying input stream.

This stream filter is suitable for IFF-EA85 files.

Version:
  1.3 2010-08-03 Moved unpackByteRun1 method into this class.
  1.2.1 2004-08-09 Read methods for primitives throw now EOFException's, when the unexpected EOF's occur.
  1.2 2003-04-01 Method skipFully added.
  1.1 2000-06-11 Method readFully added.
  1.0 1999-10-19
  0.1 1999-01-02 Created.
Author:
  Werner Randelshofer, Hausmatt 10, CH-6405 Immensee, Switzerland

Field Summary

Fields inherited from class java.io.FilterInputStream
`in`

Constructor Summary
`MC68000InputStream(java.io.InputStream in)` Creates a new instance.

Method Summary
`void` | `align()` Align to an even byte position in the input stream.
`long` | `getScan()` Get the current read position within the file (as seen by this input stream filter).
`void` | `mark(int readlimit)` Marks the input stream.
`int` | `read()` Reads one byte.
`int` | `read(byte[] b, int offset, int length)` Reads a sequence of bytes.
`int` | `readFully(byte[] b, int offset, int length)` Reads a sequence of bytes.
`int` | `readLONG()` Read 4 bytes from the input stream and interpret them as an MC 68000 32 Bit signed LONG value.
`int` | `readUBYTE()` Read 1 byte from the input stream and interpret them as an MC 68000 8 Bit unsigned UBYTE value.
`long` | `readULONG()` Read 4 Bytes from the input Stream and interpret them as an unsigned Integer value of MC 68000 type ULONG.
`int` | `readUWORD()` Read 2 bytes from the input stream and interpret them as an MC 68000 16 Bit unsigned UWORD value.
`short` | `readWORD()` Read 2 bytes from the input stream and interpret them as an MC 68000 16 Bit signed WORD value.
`void` | `reset()` Repositions the stream at the previously marked position.
`long` | `skip(long n)` Skips over and discards n bytes of data from this input stream.
`void` | `skipFully(long n)` Skips over and discards n bytes of data from this input stream.
`static int` | `unpackByteRun1(byte[] in, byte[] out)` ByteRun1 run decoder.

Methods inherited from class java.io.FilterInputStream
`available, close, markSupported, read`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MC68000InputStream

    public MC68000InputStream(java.io.InputStream in)

  Creates a new instance.

  Parameters:
    `in` - the input stream.

Method Detail

### readUBYTE

    public int readUBYTE()
                  throws java.io.IOException

  Read 1 byte from the input stream and interpret them as an MC 68000 8 Bit unsigned UBYTE value.

  Throws:
    `java.io.IOException`

### readWORD

    public short readWORD()
                   throws java.io.IOException

  Read 2 bytes from the input stream and interpret them as an MC 68000 16 Bit signed WORD value.

  Throws:
    `java.io.IOException`

### readUWORD

    public int readUWORD()
                  throws java.io.IOException

  Read 2 bytes from the input stream and interpret them as an MC 68000 16 Bit unsigned UWORD value.

  Throws:
    `java.io.IOException`

### readLONG

    public int readLONG()
                 throws java.io.IOException

  Read 4 bytes from the input stream and interpret them as an MC 68000 32 Bit signed LONG value.

  Throws:
    `java.io.IOException`

### readULONG

    public long readULONG()
                   throws java.io.IOException

  Read 4 Bytes from the input Stream and interpret them as an unsigned Integer value of MC 68000 type ULONG.

  Throws:
    `java.io.IOException`

### align

    public void align()
               throws java.io.IOException

  Align to an even byte position in the input stream. This will skip one byte in the stream if the current read position is not even.

  Throws:
    `java.io.IOException`

### getScan

    public long getScan()

  Get the current read position within the file (as seen by this input stream filter).

### read

    public int read()
             throws java.io.IOException

  Reads one byte.

  Overrides:
    `read` in class `java.io.FilterInputStream`
  Throws:
    `java.io.IOException`

### readFully

    public int readFully(byte[] b,
                         int offset,
                         int length)
                  throws java.io.IOException

  Reads a sequence of bytes.

  Throws:
    `java.io.IOException`

### read

    public int read(byte[] b,
                    int offset,
                    int length)
             throws java.io.IOException

  Reads a sequence of bytes.

  Overrides:
    `read` in class `java.io.FilterInputStream`
  Throws:
    `java.io.IOException`

### mark

    public void mark(int readlimit)

  Marks the input stream.

  Overrides:
    `mark` in class `java.io.FilterInputStream`
  Parameters:
    `readlimit` - The maximum limit of bytes that can be read before the mark position becomes invalid.

### reset

    public void reset()
               throws java.io.IOException

  Repositions the stream at the previously marked position.

  Overrides:
    `reset` in class `java.io.FilterInputStream`
  Throws:
    `java.io.IOException` - If the stream has not been marked or if the mark has been invalidated.

### skip

    public long skip(long n)
              throws java.io.IOException

  Skips over and discards n bytes of data from this input stream. This skip method tries to skip the p

  Overrides:
    `skip` in class `java.io.FilterInputStream`
  Throws:
    `java.io.IOException`

### skipFully

    public void skipFully(long n)
                   throws java.io.IOException

  Skips over and discards n bytes of data from this input stream. Throws

  Parameters:
    `n` - the number of bytes to be skipped.
  Throws:
    `java.io.EOFException` - if this input stream reaches the end before skipping all the bytes.
    `java.io.IOException`

### unpackByteRun1

    public static int unpackByteRun1(byte[] in,
                                     byte[] out)
                              throws java.io.IOException

  ByteRun1 run decoder.

  The run encoding scheme by byteRun1 is best described by pseudo code for the decoder Unpacker (called UnPackBits in the Macintosh toolbox.

       UnPacker:
        LOOP until produced the desired number of bytes
            Read the next source byte into n
            SELECT n FROM
                [0..127] => copy the next n+1 bytes literally
                [-1..-127] => replicate the next byte -n+1 times
                -128    => no operation
            ENDCASE;
         ENDLOOP;

  Parameters:
    `in` -
    `out` -
  Throws:
    `ParseException`
    `java.io.IOException`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD