AUDIO NEXUS DEVICE (ANX)


SUMMARY OF FILES

mas_anx.[ch]    Client-side API library.

buffer.[ch]     Simple buffering, linked into anx device.  Platform
                independent.

mixer.[ch]      Platform independent mixer channel definition and
                dB <-> linear attenuation conversion routines.

fd_device.[ch]  Functions designed for devices with a file descriptor
                interface (open, close, read, write, etc.)  Certain
                platforms may be able to use some of these functions.

anx_internal.h  ANX device internal platform-independent structure
                definition and platform dependent (pdanx) function
                prototypes. 

mas_anx_device.c  Platform independent ANX device.  Uses symbols
                defined in the platform dependent code.

<platform>.[ch]  Platform dependent audio interface code.  <platform>
                can be oss, solaris, etc.  Symbols are exported to
                device.c via the platform's header file.

<platform>_profile.h  The platform dependent device profile.  



PORTING

mas_anx_device.c makes calls to platform dependent code defined in
<platform>.[ch].  A new <platform>.c file must implement the pdanx_
prefixed functions prototyped at the end of anx_internal.h.  

The <platform>_profile.h files define symbols and may only be included
by one file: typically <platform>.c.

Define a platform-dependent state structure in <platform>.h.  Add an
this structure as an #if defined()-wrapped member named "pdstate" to
the anx_state struct definition in anx_internal.h.  Include
<platform>.h in anx_internal.h.

Try to make only minimal platform-dependent, #ifdef'ed changes to
mas_anx_device.c.  
