~ubuntu-branches/ubuntu/quantal/openal-soft/quantal

« back to all changes in this revision

Viewing changes to OpenAL32/Include/alBuffer.h

  • Committer: Package Import Robot
  • Author(s): Michael Terry
  • Date: 2012-05-22 10:14:53 UTC
  • mfrom: (7.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20120522101453-knsv1m1m8vl5ccfp
Tags: 1:1.14-3ubuntu1
* Merge from Debian testing.  Remaining changes:
  - Add a symbols file for libopenal1
* debian/libopenal1.symbols:
  - Update for 1.14

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
extern "C" {
8
8
#endif
9
9
 
10
 
/* Input formats (some are currently theoretical) */
 
10
/* User formats */
11
11
enum UserFmtType {
12
 
    UserFmtByte,   /* AL_BYTE */
13
 
    UserFmtUByte,  /* AL_UNSIGNED_BYTE */
14
 
    UserFmtShort,  /* AL_SHORT */
15
 
    UserFmtUShort, /* AL_UNSIGNED_SHORT */
16
 
    UserFmtInt,    /* AL_INT */
17
 
    UserFmtUInt,   /* AL_UNSIGNED_INT */
18
 
    UserFmtFloat,  /* AL_FLOAT */
19
 
    UserFmtDouble, /* AL_DOUBLE */
20
 
    UserFmtMulaw,  /* AL_MULAW */
21
 
    UserFmtIMA4,   /* AL_IMA4 */
 
12
    UserFmtByte   = AL_BYTE_SOFT,
 
13
    UserFmtUByte  = AL_UNSIGNED_BYTE_SOFT,
 
14
    UserFmtShort  = AL_SHORT_SOFT,
 
15
    UserFmtUShort = AL_UNSIGNED_SHORT_SOFT,
 
16
    UserFmtInt    = AL_INT_SOFT,
 
17
    UserFmtUInt   = AL_UNSIGNED_INT_SOFT,
 
18
    UserFmtFloat  = AL_FLOAT_SOFT,
 
19
    UserFmtDouble = AL_DOUBLE_SOFT,
 
20
    UserFmtByte3  = AL_BYTE3_SOFT,
 
21
    UserFmtUByte3 = AL_UNSIGNED_BYTE3_SOFT,
 
22
    UserFmtMulaw,
 
23
    UserFmtAlaw,
 
24
    UserFmtIMA4,
22
25
};
23
26
enum UserFmtChannels {
24
 
    UserFmtMono,   /* AL_MONO */
25
 
    UserFmtStereo, /* AL_STEREO */
26
 
    UserFmtRear,   /* AL_REAR */
27
 
    UserFmtQuad,   /* AL_QUAD */
28
 
    UserFmtX51,    /* AL_5POINT1 (WFX order) */
29
 
    UserFmtX61,    /* AL_6POINT1 (WFX order) */
30
 
    UserFmtX71,    /* AL_7POINT1 (WFX order) */
 
27
    UserFmtMono   = AL_MONO_SOFT,
 
28
    UserFmtStereo = AL_STEREO_SOFT,
 
29
    UserFmtRear   = AL_REAR_SOFT,
 
30
    UserFmtQuad   = AL_QUAD_SOFT,
 
31
    UserFmtX51    = AL_5POINT1_SOFT, /* (WFX order) */
 
32
    UserFmtX61    = AL_6POINT1_SOFT, /* (WFX order) */
 
33
    UserFmtX71    = AL_7POINT1_SOFT, /* (WFX order) */
31
34
};
32
35
 
33
 
ALboolean DecomposeUserFormat(ALenum format, enum UserFmtChannels *chans,
34
 
                              enum UserFmtType *type);
35
36
ALuint BytesFromUserFmt(enum UserFmtType type);
36
37
ALuint ChannelsFromUserFmt(enum UserFmtChannels chans);
37
38
static __inline ALuint FrameSizeFromUserFmt(enum UserFmtChannels chans,
43
44
 
44
45
/* Storable formats */
45
46
enum FmtType {
46
 
    FmtUByte = UserFmtUByte,
 
47
    FmtByte  = UserFmtByte,
47
48
    FmtShort = UserFmtShort,
48
49
    FmtFloat = UserFmtFloat,
49
50
};
50
51
enum FmtChannels {
51
 
    FmtMono = UserFmtMono,
 
52
    FmtMono   = UserFmtMono,
52
53
    FmtStereo = UserFmtStereo,
53
 
    FmtRear = UserFmtRear,
54
 
    FmtQuad = UserFmtQuad,
55
 
    FmtX51 = UserFmtX51,
56
 
    FmtX61 = UserFmtX61,
57
 
    FmtX71 = UserFmtX71,
 
54
    FmtRear   = UserFmtRear,
 
55
    FmtQuad   = UserFmtQuad,
 
56
    FmtX51    = UserFmtX51,
 
57
    FmtX61    = UserFmtX61,
 
58
    FmtX71    = UserFmtX71,
58
59
};
59
60
 
60
 
ALboolean DecomposeFormat(ALenum format, enum FmtChannels *chans, enum FmtType *type);
61
61
ALuint BytesFromFmt(enum FmtType type);
62
62
ALuint ChannelsFromFmt(enum FmtChannels chans);
63
63
static __inline ALuint FrameSizeFromFmt(enum FmtChannels chans, enum FmtType type)
69
69
typedef struct ALbuffer
70
70
{
71
71
    ALvoid  *data;
72
 
    ALsizei  size;
73
 
 
74
 
    ALsizei          Frequency;
 
72
 
 
73
    ALsizei  Frequency;
 
74
    ALenum   Format;
 
75
    ALsizei  SampleLen;
 
76
 
75
77
    enum FmtChannels FmtChannels;
76
78
    enum FmtType     FmtType;
77
79
 
78
80
    enum UserFmtChannels OriginalChannels;
79
81
    enum UserFmtType     OriginalType;
80
 
    ALsizei OriginalSize;
81
 
    ALsizei OriginalAlign;
 
82
    ALsizei              OriginalSize;
82
83
 
83
84
    ALsizei  LoopStart;
84
85
    ALsizei  LoopEnd;
85
86
 
86
 
    ALuint   refcount; // Number of sources using this buffer (deletion can only occur when this is 0)
 
87
    RefCount ref; // Number of sources using this buffer (deletion can only occur when this is 0)
 
88
 
 
89
    RWLock lock;
87
90
 
88
91
    // Index to itself
89
92
    ALuint buffer;