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
,
26 enum UserFmtChannels
{
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) */
36 ALuint
BytesFromUserFmt(enum UserFmtType type
);
37 ALuint
ChannelsFromUserFmt(enum UserFmtChannels chans
);
38 static __inline ALuint
FrameSizeFromUserFmt(enum UserFmtChannels chans
,
39 enum UserFmtType type
)
41 return ChannelsFromUserFmt(chans
) * BytesFromUserFmt(type
);
45 /* Storable formats */
47 FmtByte
= UserFmtByte
,
48 FmtShort
= UserFmtShort
,
49 FmtFloat
= UserFmtFloat
,
52 FmtMono
= UserFmtMono
,
53 FmtStereo
= UserFmtStereo
,
54 FmtRear
= UserFmtRear
,
55 FmtQuad
= UserFmtQuad
,
61 ALuint
BytesFromFmt(enum FmtType type
);
62 ALuint
ChannelsFromFmt(enum FmtChannels chans
);
63 static __inline ALuint
FrameSizeFromFmt(enum FmtChannels chans
, enum FmtType type
)
65 return ChannelsFromFmt(chans
) * BytesFromFmt(type
);
69 typedef struct ALbuffer
77 enum FmtChannels FmtChannels
;
80 enum UserFmtChannels OriginalChannels
;
81 enum UserFmtType OriginalType
;
87 /* Number of times buffer was attached to a source (deletion can only occur when 0) */
96 ALvoid
ReleaseALBuffers(ALCdevice
*device
);