**parselib**
==========
Classes for parsing and loading audio data.

## Abstract
(Oboe) **parselib** contains facilities for reading and loading audio data from streams. Streams can be wrapped around either files or memory blocks.

**parselib** is written in C++ and is intended to be called from Android native code. It is implemented as a static library.

## Supported Encodings
* Microsoft WAV format

## **parselib** project structure
* stream
Contains classes related to reading audio data from a stream abstraction

* wav
Contains classes to read/load audio data in WAV format

## **stream** Classes
### InputStream
An abstract class that defines the `InputStream` interface.

### FileInputStream
A concrete implementation of `InputStream` that reads data from a file.

### MemInputStream
A concrete implementation of `InputStream` that reads data from a memory block.

## **wav** Classes
Contains classes to read/load audio data in WAV format. WAV format files are "Microsoft Resource Interchange File Format" (RIFF) files. WAV files contain a variety of RIFF "chunks", but only a few are required (see 'Chunk' classes below)

### Utility
#### AudioEncoding
Defines constants for various audio encodings

### WavTypes
Support for **RIFF** file types and managing FOURCC data.

### WAV Data I/O
#### WavStreamReader
Parses and loads WAV data from an InputStream.

### WAV Data
#### WavChunkHeader
Defines common fields and operations for all WAV format RIFF Chunks.

#### WavFmtChunkHeader
Defines fields and operations for RIFF '`fmt `' chunks

#### WavRIFFChunkHeader
Defines fields and operations for RIFF '`data`' chunks