Version 1.4.0 (2013/04/20)
--------------------------
New features:
* Added the A8CAS_flush() function to API, which ends any chunk being written
  and writes data from buffers to disk.
Fixes:
* Fixed the inability to adjust stop bit length tolerance during recognition
  of data blocks. It was hardcoded at 0.25, now it uses the value of the
  A8CAS_PARAM_BLOCK_HEADER_DEVIATION parameter.
* Fixed crashes when setting A8CAS_PARAM_BLOCK_HEADER_LENGTH lower than 20.

Version 1.3.1 (2011/10/03)
--------------------------
Fixes:
* Fixed a bug with "pwml" chunks being improperly decoded.

Version 1.3.0 (2011/09/24)
--------------------------
New features:
* An FSK file can now contain any text after end of each line. This can be
  used for adding comments in FSK files.
* Changed the build system from Cmake to Autotools.
* A new parameter, A8CAS_PARAM_SILENCE_LEVEL added. When reading from a sound
  file, this value controls level of signal's amplitude under which all signal
  will be ignored and read as logical 1.
* When writing to HEX, length of 'fsk ' blocks now gets written in the
  comments.
* Applied patch sent by FUJI that adds reading of CAS/HEX turbo files. All
  chunk types introduced by a8cas-util.pl
  (http://www.arus.net.pl/FUJI/a8cas-util/) can now be read by liba8cas.
* Added a new adjustable parameter, A8CAS_PARAM_CROSSTALK_VOLUME, that allows
  to set amount of crosstalk from the data track audible in the audio track.
  For stereo tapes, liba8cas automatically mixes the audio and data tracks
  using this parameter when using A8CAS_read_audio().
Changes:
* When a signal of baudrate higher than 65535 is written to a CAS file
  (a high-frequency noise in a 96kHz input signal can be interpreted as such)
  the library no longer fails with A8CAS_ERR_LIMIT. Instead the baudrate gets
  written as 65535 (max. allowed value) and a warning is thrown to a stream
  as set with A8CAS_set_log_stream.
Fixes:
* Fixed a bug with unnecessary "baud" blocks being written to CAS and HEX
  files - was occuring with A8CAS_PARAM_BAUDRATE_DEVIATION=0.0.
* Fixed the libtool library versioning scheme - previously the library's
  version number equaled package's version number, which was incorrect. The
  sideeffect is, the library's verison number has been reset to 0:0:0. From
  now on, versioning will be maintained correctly.
* A minor bug caused very short "bumps" of SPACE signal to be interpreted as
  starts of high-baudrate 'data' blocks. Now they get properly recognised as
  'fsk ' blocks.
* When writing to a HEX file, the "length" value for Turbo 2600 blocks was
  incorrect.
* On certain processors, sometimes baudrate of a "data" block was not detected
  correctly. This was due to instability in comparing of floating-point
  numbers. This has been fixed.
* A8CAS_version now works correctly.

Version 1.2.0 (2010/04/18)
--------------------------
Changes:
* Changed the HEX file format. The lines containing "data" and "fsk " blocks,
  before the contents of the block itself, had the number of elements in
  a block written as a 2nd number in a line (after the IRG length). From now
  on, number of elements is not written to a HEX file (information about
  block's length is instead stored in the comment part of each line).
  Old HEX files that include block lengths are no longer supported by liba8cas.
* Simplified API a bit - there is no longer a distinction between "standard"
  and "non-standard" block types when it comes to adjustable parameters:
  - A8CAS_PARAM_STD_BLOCK_HEADER_DEVIATION and
    A8CAS_PARAM_NONSTD_BLOCK_HEADER_DEVIATION are replaced by
    A8CAS_PARAM_BLOCK_HEADER_DEVIATION;
  - A8CAS_PARAM_NONSTD_BLOCK_HEADER_LENGTH is replaced by
    A8CAS_PARAM_BLOCK_HEADER_LENGTH.
  Old parameter names are left functional, but are considered obsolete and will
  be removed in version 2 of the library.
* Removed upper limit for A8CAS_PARAM_BLOCK_HEADER_LENGTH (previously
  A8CAS_PARAM_NONSTD_BLOCK_HEADER_LENGTH). The parameter now can be set to any
  even value not less than 10, and it affects encoding of both standard 0x55 55
  and non-standard blocks.
* Migrated the project to the CMake build system.
Fixes:
* Fixed a bug in the byte-level read/write interface that slipped by in the
  previous version. Reading and writing using A8CAS_read/write_bytes/signals()
  functions is again functional.
* Fixed the build process - previously all project using liba8cas linked
  directly to the liba8cas.so.x.x.x file instead of the liba8cas.so.x symlink.
  It caused such project to be recompiled after updating liba8cas, thus
  defeating the actual purpose of a shared library.

Version 1.1.0 (2010/04/09)
--------------------------
New features:
* Functions for adjusting read/write parameters: A8CAS_set_param,
  A8CAS_get_param.
* A set of parameters to adjust - allow to influence the internal workings
  of the CAS/HEX encoder. The adjustable parameters are needed to support
  tapes with baudrate changing mid-way (Miecze Valdgira II).
Changes:
* Rewritten the CAS encode algorithm, to support tapes with baudrate changing
  mid-way (Miecze Valdgira II).

Version 1.0.0 (2010/03/01)
--------------------------
First stable release - with stabilised library interface.
New features:
* Function A8CAS_set_log_stream for redirecting (or turning off) a stream for
  log messages produced by liba8cas
* Support for loading/saving "raw" files. New format: A8CAS_FORMAT_RAW.
  Now it is possible to read/write any binary file (BAS, XEX) as a tape image.
  This allows conversion of such files to tape images and back again.
Bugfixes:
* A8CAS_close didn't work properly on files which had a read/write error
  previously.

Version 0.5.0 (2010/02/20)
--------------------------
New features:
* New functions for reading and writing data blocks on a byte-level:
  A8CAS_read_bytes, A8CAS_read_signals, A8CAS_write_bytes. Useful to implement
  reading with SIO patch in Atari800.
* Functions A8CAS_set_PWM_tolerance, A8CAS_PWM_tolerance to adjust the "error
  tolerance" parameter when reading PWM turbo tapes. Seems to help a bit with
  some tapes.
Changes:
* Seeking in sound files is now not block-based, but sample-based.
* A8CAS_errnum enumerator reorganised.
Bugfixes:
* Fixed an error in upsampling when reading with audio

Version 0.4.0 (2010/01/21)
--------------------------
New features:
* Better support for Turbo 2600 blocks (two different 12-byte headers
  supported).
* Preliminary supoprt for reading files from PWM-encoded turbo tapes (AST,
  Turbo Blizzard, Turbo 2000 etc.) - only from sound files. New function
  A8CAS_switch_PWM_decoding() to switch between normal<->turbo mode of reading.

Bugfixes:
* Fixed some timing errors when reading a tape with audio - allows to read
  tapes with baudrate of 2600.

Version 0.3.0 (2010/01/11)
--------------------------
* Compiled successfully on MS Windows.
* Bugfix: under rare circumstances encoding to CAS/HEX looped infinitely.

Version 0.2.1 (2010/01/10)
--------------------------
* Bugfix: blocks of data shorter than 26 signals were not recognised as data
  blocks or completely ignored.

Version 0.2.0 (2010/01/09)
--------------------------
* Added support for non-standard Turbo 2600 blocks. Turbo 2600 is a system for
  reading and writing tapes with baudrates up to 2600. It was created around
  1985 by "Zakład Elektroniczny SZOK" from Świebodzin, Poland.
  A Turbo 2600 block contains a non-standard 12-byte header and non-standard
  way of computing a checksum.

Version 0.1.0 (2010/01/07)
--------------------------
* First public release.
