NAME
====
snapshot - What is the state of the NIFF SDK?

SYNOPSIS
========

- VERSION
- WHAT'S NEW
- BUG FIXES
- TODO

I made some significant progress before I got 1.01 out so here is 1.02
instead. niffdump is _much_ improved.

VERSION
=======
1.02

WHAT'S NEW
==========

- Removed sample RIFF files

- Reorganized NIFFSDK into RIFFIO, NIFFIO, and NIFF components.

- Changed build system.

- Autoconfiguration under UNIX

- Everything under CVS

- Documentation in text, man, pod, and HTML

- A few simple regression tests.

- Ran a few checks for memory leaks - looks good.

- Replaced some functions added in 1.0 by Cindy Grande with similar ones.
  NIFFIOFilePrepare() and NIFFIOFileWriteCLT().
 
- NIFFIOStorageNewSTDC(), NIFFIOFileNewSTDC() for simple initialization.

- NIFFIOStoreStbl(), NIFFIOStoreCLT(), NIFFIOStoreDefaultCLT() for 
  NIFFIOStorage operations on special objects.

- NIFFIOStorage now OWNS its NIFFIOFile. Don't call NIFFIOFileDelete()!

- Slightly modified niff.h
 
- No more tabs in source

- fcc.c: Created macro RIFFIO_FOURCC_MIN for string lengths that will
  hold a FOURCC. Don't use the constant "5" anymore.

- Added INFO chunks to NIFFIOCLTMakeDefaultEntries().

- Improved niffdump considerably. Check it out! It decodes many more 
  chunks and a few tags. 

- niffio/names.c: functions to convert between NIFF Ids/enumerated types and 
  strings. (Still need many more)

- niffio/clt.c: don't store length of default CLT array anymore, used sentinel.

- niffio/clt.c: added RIFF INFO chunks to default chunk length table.


BUG FIXES
=========

- RIFFIOChunkStackPush() used wrong expression to check for a full stack.

- STDCRIFFRead() had if statements without parenthesis

- Made sure CPP line continuations had whitespace in front of them.


TODO
====

- Find out what developers _really_ need this thing to do.

- Steve might want a function that reads a String Table into an array
  of strings. Sort of the inverse of NIFFIOStoreStbl().

- Need code that writes standard, example  NIFF files for 
  regression tests.

- Keep adding chunks and tags to niffdump.

- Write a real user's guide.

- Write more example code.

- Implement more regression tests.

- Automate memory leak checks.

- Be explicit about what happens during parsing errors.

- write functions to convert between NIFF enumerated types and strings.

- niffdump should handle all niff objects

- Add parser callback registration functions for RIFF INFO chunks.

- niffdump should generate output in a standard format for a future 
  niff compiler (useful for more regression tests).

- write a niff compiler (useful for regression tests). Syntax similar
  to RIFF.
