1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
/*
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
|