/* Copyright (c) 2010 Steve Oldmeadow Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. $Id$ */ #define COCOSDENSHION_VERSION "Aphex.rc" /** If enabled code useful for debugging such as parameter check assertions will be performed. If you experience any problems you should enable this and test your code with a debug build. */ //#define CD_DEBUG 1 /** The total number of sounds/buffers that can be loaded assuming memory is sufficient */ //Number of buffers slots that will be initially created #define CD_BUFFERS_START 64 //Number of buffers that will be added #define CD_BUFFERS_INCREMENT 16 /** If enabled, OpenAL code will use static buffers. When static buffers are used the audio data is managed outside of OpenAL, this eliminates a memcpy operation which leads to higher performance when loading sounds. However, the downside is that when the audio data is freed you must be certain that it is no longer being accessed otherwise your app will crash. Testing on OS 2.2.1 and 3.1.2 has shown that this may occur if a buffer is being used by a source with state = AL_PLAYING when the buffer is deleted. If the data is freed too quickly after the source is stopped then a crash will occur. The implemented workaround is that when static buffers are used the unloadBuffer code will wait for any playing sources to finish playing before the associated buffer and data are deleted, however, this delay may negate any performance gains that are achieved during loading. Performance tests on a 1st gen iPod running OS 2.2.1 loading the CocosDenshionDemo sounds were ~0.14 seconds without static buffers and ~0.12 seconds when using static buffers. */ //#define CD_USE_STATIC_BUFFERS 1