Commit Graph

280 Commits

Author SHA1 Message Date
Joshua Jones 7c8aa15ea2 Work on documenting the library for doxygen. 2010-02-17 01:42:45 +00:00
Raynaldo Rivera 857f2012b4 Fixed the linux build version. 2010-02-16 03:29:51 +00:00
Raynaldo Rivera adeafbdd46 Fixed IAudioManager so it will compile under mingw. also created the two plugins cbp project files and added to workspace. 2010-02-16 03:18:18 +00:00
Raynaldo Rivera b118bdc7ac Fixed the visual studio files to use the _d suffix 2010-02-16 03:00:21 +00:00
Raynaldo Rivera 30346e9df1 Finished fixing the cpb projects created new ones for 1-7 each has a debug and release for mingw and visual studio. Even added workspace for ease of compiling everything with codeblocks. 2010-02-16 02:46:27 +00:00
Raynaldo Rivera 2dfc01ed54 Removed the annoying .layout 2010-02-16 01:40:48 +00:00
Raynaldo Rivera 7db441ce57 Uploading new codeblocks project that compiles cAudio 2010-02-16 01:38:50 +00:00
Raynaldo Rivera 814a64586e Fixed and added needs librarys to compile under mingw32 2010-02-16 01:37:25 +00:00
Joshua Jones d12e0464c7 Deleted the todo list file, we are using another method to coordinate our efforts. 2010-02-15 00:03:45 +00:00
Joshua Jones 4e59f9befc Added a license file and readme for the EAXLegacyPreset plugin. 2010-02-15 00:00:40 +00:00
Raynaldo Rivera 24802ec8e9 Fixed tutorial 6 2010-02-14 23:56:48 +00:00
Raynaldo Rivera d9d36a8ced Added tutorial 7 2010-02-14 23:44:26 +00:00
Joshua Jones 66a52d41dd Fixed a bug that would cause an exception when unregisterAllEventHandlers was called. 2010-02-14 23:33:10 +00:00
Joshua Jones 17aa93f57c Added ability for users to access the plugin manager.
Added plugin for legacy EAX presets.
2010-02-14 23:16:44 +00:00
Raynaldo Rivera cb9ae7a72c Added tutorial 6 shows how to use a custom event handler as well has removed OnInit from the audio source events. 2010-02-14 22:54:19 +00:00
Raynaldo Rivera aae976f3e4 added the damn .close() 2010-02-14 22:09:15 +00:00
Raynaldo Rivera 7d782233c0 Removed the dumpMessages() function made it to act like the console logger. 2010-02-14 22:04:30 +00:00
Raynaldo Rivera 0c0a8d12ac Added the file log receiver and also added the dumpMessages() function to the ILogger class. 2010-02-14 17:08:16 +00:00
Joshua Jones b44bf8a1b2 Forgot to upload /another/ file. 2010-02-14 05:44:36 +00:00
Joshua Jones c5b1505822 Accidentally uploaded a tutorial file that reference a local test mp3. 2010-02-14 05:36:14 +00:00
Joshua Jones b096f1536b Rework of plugin system. Now works better with static linking. Plugin makers are now expected to pass back a fully implemented version of IAudioPlugin for cAudio to use. Create your plugin class with new, cAudio will call drop() on it on unload of your dll.
The MP3Decoder plugin has been updated for the above changes.
Removed the shim that used to exist between dll plugins and the manager.
2010-02-14 05:34:57 +00:00
Joshua Jones f69d925b4f Added ability to add effect presets. 2010-02-14 03:32:24 +00:00
Joshua Jones c3bd49da8d Uploaded missing files. 2010-02-14 01:54:21 +00:00
Raynaldo Rivera 7cf3d7fb0e Changed the tutorails to say cAudio 2.0.0 instead of 1.7.1 2010-02-13 19:56:38 +00:00
Joshua Jones 3a3a3b42ac Small change to mp3Decoder.vcproj to make it place the finished binaries in a better spot.
Updated the Todo list.
2010-02-13 06:00:24 +00:00
Joshua Jones 3f06749573 Minor API changes to the manager, release is now releaseAllSources, createFromFile is now create.
Added the ability for the user to provide a DataSourceFactory, which cAudio will use to get audio data.  This interface can be overridden to provide cAudio the ability to read from zip archives, TCP streams, potentially any location.  DataSourceFactories can also be prioritized.
Made the existing FileSource a factory and registered it by default with the manager.  If the user wishes to prevent cAudio from reading from disk, unRegister the "FileSystem" data source.
Made tutorials conform with the changes to the API.
2010-02-13 05:48:19 +00:00
Raynaldo Rivera 16581113c9 2010-02-13 04:48:57 +00:00
Raynaldo Rivera d3787c0c03 2010-02-13 04:48:35 +00:00
Raynaldo Rivera 5039b834b2 2010-02-13 04:48:23 +00:00
Raynaldo Rivera 08800c5bad Added the event system 2010-02-13 04:47:59 +00:00
Joshua Jones 16f222c8a5 Changes to make sure undefining decoders and EFX actually removes all pieces of them. 2010-02-13 02:34:50 +00:00
Joshua Jones 8a42fbb6e5 Added a todo list. 2010-02-13 01:45:12 +00:00
Joshua Jones f644990896 Added time and position seeking support to the mp3 decoder plugin. 2010-02-13 00:37:10 +00:00
Joshua Jones e5fa03d1d6 Got a basic MP3 Decoder working.
Commented out debug console output in mpaudec.
2010-02-12 23:11:26 +00:00
Raynaldo Rivera f0a5c7411d Added support for adding custom data sources. using registerSource(const char* , IDataSource*) createFromSource(const char*) isSourceRegistered(cont char*) unRegisterSource(cont char*) 2010-02-11 15:29:40 +00:00
Raynaldo Rivera b317412796 changed the IAudio objects and cAudio objects to IAudioSource and cAudioSource 2010-02-10 21:57:09 +00:00
Joshua Jones fbd3ecabb4 Added version checking to plugins. 2010-02-10 04:59:10 +00:00
Joshua Jones 48d264d0be Added a pass in for the logger to plugins, so they don't need to link with cAudio.dll to access logging capabilities.
Fixed a bug that prevented cAudio from getting plugin symbols correctly.
Fixed a bug where cPluginManager would be constructed multiple times.
2010-02-10 04:46:00 +00:00
Raynaldo Rivera 011f4a9fc2 Added the linux defines to cEFXFunctions.h 2010-02-09 06:11:39 +00:00
Raynaldo Rivera e5d91053eb 2010-02-09 06:08:46 +00:00
Joshua Jones 3043f5d4d5 Added plugin manager and plugin system to cAudio.
Started work on an mp3 decoder plugin.
Conflict fixes to earlier commit.
2010-02-09 05:58:27 +00:00
Raynaldo Rivera c261339e57 2010-02-09 05:33:32 +00:00
Raynaldo Rivera 1e914b9796 2010-02-09 04:18:39 +00:00
Joshua Jones 4e5dcd3443 Added support to remove a single audio source. 2010-01-19 04:04:40 +00:00
Joshua Jones 30e5b4a99e Added support for all OpenAL Audio Effects. Access can be gotten through the main audio manager using the AudioEffects interface. IEffect provides access to effect parameters and allows for binding to cAudio sources. IFilter provides access to filters that can be attached to sources and effects.
Added conversion functions from our audio format enum to OpenAL's in preparation for supporting more formats.
Reorganized cAudio defines, made it easier to access some compile time parameters.
Fixed a bug where a source could not be played again after it reached the end of its audio stream.
Added better checking for sources.  IsValid() should provide a more useful indication of whether a source is usable.
Added error checking and logging to cAudioCapture.
Prevented initializing of cAudioManager until shutdown() has been called.
Added a tutorial for Audio Effects.
Added a footsteps sound for showing off Audio Effects.
Moved the default compile location for the main library to lib/.  The msvc project will copy the cAudio.dll to bin/win32-visual/
2010-01-11 00:39:08 +00:00
Joshua Jones 2132eea8bf Added a small spreadsheet with performance information
Changed the 3d tutorial to use the move convenience function in order to have proper doppler effects.
Added relative seek ability to cAudio source.
Updated decoders to have a flag if the data they are working with is valid for their decoder (isValid).
Added reference counting to IAudio, IAudioDecoder, and IDataSource
Added better error checking in cAudio sources and they will do a better job of detecting if they are invalid.
Fixed the spelling on cWavAudioDecoderFactory.h
Ogg decoder support for the isValid check.
Time seek ability added to cRawDecoder
Rewrote cWavDecoder.  It will now read slightly malformed wav files (and conforms to the wav spec), no longer has a bug where 8 bit mono audio samples will play twice as fast as 16 bit mono samples, proper bounds checking to make sure only the audio data is sent to the audio source, and time seeking abilities.  The decoder does not support channels over 2, compressed wavs, wavs with more than 1 data or fmt block, or any other blocks that may be present in a wav file.  All unsupported blocks will be ignored.
2009-12-07 22:25:08 +00:00
Joshua Jones 4c76942a7f Changed IAudioManager to no longer use std::strings in the main interface. It now uses const char* strings. The reason this change was made was to make porting to other languages, or even use with other string libraries easier. std::string is no longer required to interface with the library.
Added a convenience function (move()) to the cAudio source, making it easier to move a source and do velocity for doppler effects with a single call.
Internally, audio sources are now stored in an std::vector for better performance.  This change also makes it so that it is no longer required for the user to name a source.  The user can pass NULL to name to avoid naming it.
Some documentation fixes.
Added a stress test app, allowing users and developers test how well cAudio performs under pressure.
2009-12-01 01:41:15 +00:00
Joshua Jones e1bf4ecc9a Updated the examples to use a better set of characters to denote the default device
Removed an unnecessary include in cAudioManager.h
Added a define to set the number of buffers used by an audio source
Added the last of the previously unsupported OpenAL source parameters (Cones, attenuation tweaking, max/min volume, and rolloff factor)
Cleaned up the implementation of cAudio source.  It no longer keeps a redundant copy of the state information and functions are now in order that they are defined.  Some functions have been renamed to be clearer.
Other changes throughout the code to support the changes to the cAudio source.
2009-11-28 03:58:24 +00:00
Joshua Jones cd1a2a61d9 Increased buffer size for audio sources from 32k to 64k.
Changed song used by Tutorial1_2DSound.
Added some comments.
Changed cVector3 to use a custom Episilon instead of including float.h (less bloat)
Added debug log entries to cAudio
Allowed cOggDecoder to return error values from decoding.  cAudio now handles those errors a little better.
2009-11-21 00:39:46 +00:00
Joshua Jones 0df02507dc Added some missing files. Included is a default log receiver that pipes the information to the standard out stream (Console). 2009-11-20 03:42:20 +00:00