ChangeLog
----------
11/13/2004
	* 0.4 released.
	* Fixed up versions and copyright lines for 0.4 release.
10/24/2004
	* Decided that we shouldn't break api compatiblity.  Changed back to using 
	  JACK_GetBytesStored().
	* Discussion with Ed Wildgoose convinced me that user apps should really
	  need to know the exact amount of bytes stored in bio2jack.  Because of this
	  JACK_GetBytesStored() was dropped and renamed JACK_GetBytesStoredRealTimeApproximation()
	  to replace it since this shouldn't have any detrimental effects on bio2jack clients.
10/23/2004
	* JACK_Write() should early out if the user tells us to write
	  0 bytes. (Found by Ed Wildgoose)
	* Renamed JACK_GetBytesStored/JACK_GetBytesStoredFromDriver() to
	  JACK_GetBytesStoredRealTimeApproximation/
		JACK_GetBytesStoredRealTimeApproximationFromDriver() since the values
	  that these functions now return aren't real values
	* Put back JACK_GetBytesStored/JACK_GetBytesStoredFromDriver() to their
	  original implementation prior to the 10/21/2004 changes so we don't
	  break any api.
10/21/2004
	* JACK_GetJackLatency() should use jack_port_get_total_latency() instead of
	  jack_port_get_latency() because we want to know the amount of latency from
	  the output port until we've actually output the data to a physical device.
	* JACK_GetBytesStoredFromDriver() should use JACK_GetPositionFromDriver() for
	  the drv->played_client_bytes value so we get a more accurate real-time update
	  of the bytes stored.
10/08/2004
	* Compiled bio2jack under C++ and decided to change 'this' to 'drv'.  This makes more
	  sense considering that jack_driver_t is the structure and it doesn't namespace
	  conflict with the c++ 'this' keyword.
	* Added a few casts to silence warnings
	* Changed a few 'char*' to 'unsigned char*'
	* Added support for 0 input channels.
	* Fixed a few comparisons between 'unsigned int' and 'int'
	* JACK_OpenEx() 'char **jack_port_name' can be 'const char **' because we never
	  modify the port names
9/29/2004
	* Added #ifndef __cplusplus wrapper around the #define 
	  for bool.  C++ has its own boolean type.
	* JACK_Write() should take an unsigned char* instead of 
	  a char*.
	* Add JACK_GetJackBufferedBytes(int deviceID); to let 
	  the user of bio2jack see how much data the jack server
	  is buffering.
	Thanks again to Ed for these suggestions ;-)
9/12/2004 v0.3 released
	* Bumped revision in configure.in and bio2jack-config up to 0.3
9/9/2004
	* JACK_Write() was missing a releaseDriver(this); in the out of space path so
	  we were returning without unlocking the driver.  This would no doubt cause a
	  deadlock.  Thanks to Ed Wildgoose for reporting this.
	* Fix 3 signed/unsigned conversions.  I'm not seeing these here using
	  gcc 3.3.4 so I'll take Ed's word on this.
	* Apply volume to the audio data after it has been converted into floating
	  point values.  This should improve the output quality by a minor amount
	  as we will preserve more of the original data prior to the conversion to
	  float.  Float is of higher precision so we keep more information after
	  applying the volume effect to it.  Also suggested by Ed ;-)
	* Add the ability to have the volume be either 'linear' or 'dbAttenuation'.
	  JACK_SetVolumeEffectType() controls this setting, bio2jack defaults to 'linear'
	  If you set dbAttenuation then the volume level is the number of dBs of
	  attenuation to apply, 0 being 0dB or full volume.
	* Fix a couple of warnings for unused values that were only used for tracing.
	  Wrapped them in the TRACE_ENABLE conditional so they are only compiled in
	  when we are tracing.
9/7/2004
	* Added checks in configure.in so if we don't find 
	  jack/jack.h or if we don't find jack_activate in -ljack 
	  then we should report these errors to the user and exit 
	  out of the configure script.  Thanks to Jim Snyder for 
	  reporting this issue.
8/9/2004
	* Bumped revision in configure.in up to 0.2
	* Added bio2jack-config to allow configure scripts to retrieve information
	  about bio2jack
	* Modified Makefile.am to build bio2jack's library the same way that xmms-jack
	  builds its.
4/1/2004
	* Fixed warnings that popped up when I realized -Wall wasn't a cflag
	* Made bio2jack calls (almost) threadsafe. The only remaining issue is with
	  the global first_free_device. Added getDriver(int deviceID); and
	  releaseDriver(int device ID); to implement the locking.
	* Added jack reconnection attempts to getDriver() as this function is called from
	  all of the interface functions.  We attempt to reconnect every 250ms.
	  This change is for and dedicated to  Paul Davis(the author of jack and ardour)
		for his linux audio work.
	* Fixed some indenting.
2/16/2004
	* Fixed bug with JACK_GetPosition() due to JACK_Callback() not updatting the current
	  time when we were paused.  Not updating the previous callback time has the effect
	  of advancing the value returned by JACK_GetPosition() even if we are paused,
	  naturally not what we want to do.  JACK_Callback() now updates the previous callback
	  time even if we are paused.
	
2/01/2004
	* Added JACK_OpenDevice() error return values.  JACK_OpenDevice() also checks to see that
	  we have enough ports to meet the number of channels that were requested, missed this
	  condition during the initial implementation of the port specification code.
	* Support any number of input and output channels.  This generalizes a lot of code
	  that was using only two channels for stereo output.
	* Support apps that would like to have bio2jack output to ports other than the default
	  physical ports.  JACK_OpenEx() gives them hooks so they can open ports to any
	  other jack.

1/16/2004
	* JACK_callback() changes so everything is in terms of frames, simplifies the code a bit
	* JACK_Open() now takes a pointer to a rate to try and if there is a mismatch
	  between the requested and server rates sets this value to the server rate
	* Added JACK_SetNumChannels() to support stereo/mono, rough implementation thus far
	
12/27/3003
	* Add a handful of error defines to bio2jack.h for JACK_Open()
	* JACK_Callback() shouldn't print ERR when we have underruns because
	  this is actually a pretty normal thing to do at the very end of playing.
	
12/15/2003
	* Added pid to the client name to prevent name collisions with
	  multiple bio2jack's running.
		- patch from Kasper Souren

11/28/2003
	* Fixed JACK_SetPosition(), we only modify position_byte_offset 
	  now, and not other internal values like played_bytes and 
  	  bytes_in_jack.  This fixes a bug where JACK_GetBytesStore()
	  was returning negative values, something that really should be
	  impossible.
	* Initialize this->previousTime in JACK_Init() from the current 
	  time
	* JACK_GetBytesStored() should display error if returned time
	  is going to be negative
	* TRACE() should be conditional, ERR() should be unconditional
	  so we always have error printing enabled
	* JACK_Callback() now performs the flushing of any buffered
	  data, this avoids zeroing pointers in JACK_Reset() that the
	  callback routine could be using.
	* Added a CMD_SET_POSITION command message as the first fix
	  for JACK_SetPosition(). This turned out to be a poor choice
	  as the user could call JACK_SetPosition() then immediately
	  start sending new data to be played.  The set position command
	  would be processed from the callback at a later time but
	  this is simply more complex than it has to be.  Simplified
	  JACK_SetPosition() so this is all unnecessary.

11/24/2003
        * Fixed a few outstanding bugs with xmms-jack, things now work smoothly. 

10/25/2003
        * Fixed to be comparible with latest jack api, fixed a bunch of bugs.

5/5/2003
	* Cleaned up autogen.sh and the building of libraries.
	
3/7/2003 
	* Cleaned up the updating of state variables/counters
	* Removed mutexes, no longer necessary with state variable cleanup, so
          the driver is no completely non-blocking.
	  Some values may be read incorrectly but they should only be off by
	  small amounts

3/6/2003 - Merged in patch from Philipp Thomas <pthomas@suse.de>
	* Add missing <sys/time.h> include
	* Define _GNU_SOURCE to get pthread_mutexattr_settype defined
	* Fix GCC warnings
	
1/7/2003 - Fix a bug in JACK_Callback() where we were updating the value of 
bytesInJack before using it.  Fix a bug in the computation of the PLAYED 
position where if we had no bytesInJack we could compute a bogus value.  
Cleanup the names of some variables to be more explicit about what they 
indicate.  Add a state variable for the number of bytes written into the 
bio2jack library via JACK_Write().

12/30/2002 - Initial version of bio2jack, cvs import onto 
sourceforge.
