 OpenAL Test Notes

 If there are any core OpenAL API shortcomings exposed by these
 tests at the code level, they are marked in this codebase by
 a comment string "*** API Issue ***".

 There are three classes of tests supported by this program:

    1) Fully Automated Testing
         These tests run entirely by themseves and require no
       user input.
    2) Semi-Automated Testing
         These tests require some analysis by the user. 
    3) Interactive Testing
         These tests allow a user to create their own OpenAL
       scenarios.

 To find the menu in the code, search for the string 
 "*** Main Menu ***".



Fully Automatic Tests
Request Object Names
This test checks that OpenAL responds correctly to the creation of either
zero or -1 objects.  The two object types are Buffers and Sources.  When
zero objects are requested, the call should be the equivalent of a NOP.
when -1 objects are requested, an AL_INVALID_VALUE error should be generated.



Fully Automatic Tests
Release Object Names
This test checks that OpenAL responds correctly to the deletion of -1 objects.
The two object types are Buffers and Sources.  When -1 objects are requested, an
AL_INVALID_VALUE error should be generated.



Fully Automatic Tests
Validating Object Names
This test checks that OpenAL can test the validity of a source or buffer.  A
check is made on valid objects for a positive result, and a check is made on
invalid objects to confirm a negative result.



Fully Automatic Tests
State Transition Testing
This test checks that OpenAL can monitor the state of a source properly.  The
source is tested to make sure it can run through all its possible states --
AL_INITIAL, AL_PLAYING, AL_PAUSED, and AL_STOPPED.



Fully Automatic Tests
Vector State Transition Testing
This test checks that OpenAL can monitor the state of multiple sources which
are being controlled using vectors.  The sources are tested to make sure
they properly run through all its possible states -- AL_INITIAL, AL_PLAYING,
AL_PAUSED, and AL_STOPPED.



Fully Automatic Tests
Get Buffer Properties Test
This test checks that OpenAL can retrieve buffer properties properly.



Fully Automatic Tests
Enumeration Value Test
This test checks that the implementation's enumeration values are correct.



Fully Automatic Tests
Queuing Underrun States
This test checks that OpenAL handles state progressions properly during a streaming underrun.



Semi Automatic Tests
String Queries Test
This test outputs the renderer, version #, vendor, and extensions string so that
the user can confirm that the string values are correct.



Semi Automatic Tests
Source Gain Test
This test outputs a source at multiple gain values for testing by the user.



Semi Automatic Tests
Listener Gain Test
This test outputs a source at a fixed gain level, and tests various listener gain levels.



Semi Automatic Tests
Position Test
This tests various source/listener positions, as well as the AL_POSITION get functions.



Semi Automatic Tests
Source Relative Test
This tests the source relative mode.



Semi Automatic Tests
Listener Orientation Test
This test moves and orients the listener around a fixed source.



Semi Automatic Tests
Source Cone Test
This test exercises source cones.



Semi Automatic Tests
MIN/MAX Gain Test
This test checks if minimum and maximum gain settings are working.



Semi Automatic Tests
Reference Distance Test
This test exercises a source's reference distance.



Semi Automatic Tests
Rolloff Factor Test
This test exercises a source's rolloff factor.



Semi Automatic Tests
Distance Model Test
This test exercises the three distance models.



Semi Automatic Tests
Doppler Test
This tests doppler shift capability.



Semi Automatic Tests
Frequency Test
This test alters the frequency of a playing source.



Semi Automatic Tests
Stereo Test
This test plays a stereo buffer.



Semi Automatic Tests
Streaming Test
This test streams audio from a file.



Semi Automatic Tests
Queuing Underrun Performance
This test checks the performance of OpenAL during a buffer underrun.



Interactive Tests
Buffer Test
This test allows the user to dynamically attach and unattach different buffers
to a single source.



Interactive Tests
Position Test
This test creates 2 Sources - one to the front right of the listener, and one to
the rear left of the listener



Interactive Tests
Looping Test
This test checks the ability to switch Looping ON and OFF for a particular source, either before
or during Playback.  (If looping is switched off during playback, the buffer should finish playing
until the end of the sample.)



Interactive Tests
EAX Test
This test Uses 2 Sources to test out EAX 2.0 Reverb, Occlusion and Obstruction.  Also tests the use
of the DEFERRED flag in EAX.



Interactive Tests
Queue Test
This test checks the ability to queue and unqueue a sequence of buffers on a Source. (Buffers
can only be	unqueued if they have been PROCESSED by a Source.)



Interactive Tests
Frequency Test
This test exercises AL_PITCH functionality



Interactive Tests
Stereo Test
This test plays a stereo buffer.



Interactive Tests
Gain Test
This test plays two sources, allowing the control of source and listener gain.



Interactive Tests
Streaming Test
This test streams a long stereo wave file from harddisc - using AL Queuing



Interactive Tests
Multiple Sources Test
This test generates a large number of sources, positions, and plays them.



