Move Convert_IMA4 into the template declarations

This commit is contained in:
Chris Robinson 2011-03-21 09:42:03 -07:00
parent d11593eb5c
commit 358d402cd0

View File

@ -1030,6 +1030,7 @@ AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum eParam, ALint* plVal
typedef ALubyte ALmulaw; typedef ALubyte ALmulaw;
typedef ALubyte ALima4;
static __inline ALshort DecodeMuLaw(ALmulaw val) static __inline ALshort DecodeMuLaw(ALmulaw val)
{ return muLawDecompressionTable[val]; } { return muLawDecompressionTable[val]; }
@ -1056,7 +1057,7 @@ static ALmulaw EncodeMuLaw(ALshort val)
return ~(sign | (exp<<4) | mant); return ~(sign | (exp<<4) | mant);
} }
static void DecodeIMA4Block(ALshort *dst, const ALubyte *src, ALint numchans) static void DecodeIMA4Block(ALshort *dst, const ALima4 *src, ALint numchans)
{ {
ALint sample[MAXCHANNELS], index[MAXCHANNELS]; ALint sample[MAXCHANNELS], index[MAXCHANNELS];
ALuint code[MAXCHANNELS]; ALuint code[MAXCHANNELS];
@ -1109,7 +1110,7 @@ static void DecodeIMA4Block(ALshort *dst, const ALubyte *src, ALint numchans)
} }
} }
static void EncodeIMA4Block(ALubyte *dst, const ALshort *src, ALint *sample, ALint *index, ALint numchans) static void EncodeIMA4Block(ALima4 *dst, const ALshort *src, ALint *sample, ALint *index, ALint numchans)
{ {
ALsizei j,k,c; ALsizei j,k,c;
@ -1503,8 +1504,8 @@ DECL_TEMPLATE(ALmulaw, ALmulaw)
#undef DECL_TEMPLATE #undef DECL_TEMPLATE
#define DECL_TEMPLATE(T) \ #define DECL_TEMPLATE(T) \
static void Convert_##T##_IMA4(T *dst, const ALubyte *src, ALuint numchans, \ static void Convert_##T##_ALima4(T *dst, const ALima4 *src, ALuint numchans, \
ALuint numblocks) \ ALuint numblocks) \
{ \ { \
ALuint i, j; \ ALuint i, j; \
ALshort tmp[65*MAXCHANNELS]; /* Max samples an IMA4 frame can be */ \ ALshort tmp[65*MAXCHANNELS]; /* Max samples an IMA4 frame can be */ \
@ -1530,8 +1531,8 @@ DECL_TEMPLATE(ALmulaw)
#undef DECL_TEMPLATE #undef DECL_TEMPLATE
#define DECL_TEMPLATE(T) \ #define DECL_TEMPLATE(T) \
static void Convert_IMA4_##T(ALubyte *dst, const T *src, ALuint numchans, \ static void Convert_ALima4_##T(ALima4 *dst, const T *src, ALuint numchans, \
ALuint numblocks) \ ALuint numblocks) \
{ \ { \
ALuint i, j; \ ALuint i, j; \
ALshort tmp[65*MAXCHANNELS]; /* Max samples an IMA4 frame can be */ \ ALshort tmp[65*MAXCHANNELS]; /* Max samples an IMA4 frame can be */ \
@ -1555,15 +1556,12 @@ DECL_TEMPLATE(ALuint)
DECL_TEMPLATE(ALfloat) DECL_TEMPLATE(ALfloat)
DECL_TEMPLATE(ALdouble) DECL_TEMPLATE(ALdouble)
DECL_TEMPLATE(ALmulaw) DECL_TEMPLATE(ALmulaw)
static void Convert_ALima4_ALima4(ALima4 *dst, const ALima4 *src,
ALuint numchans, ALuint numblocks)
{ memcpy(dst, src, numblocks*36*numchans); }
#undef DECL_TEMPLATE #undef DECL_TEMPLATE
static void Convert_IMA4_IMA4(ALubyte *dst, const ALubyte *src, ALuint numchans,
ALuint numblocks)
{
memcpy(dst, src, numblocks*36*numchans);
}
#define DECL_TEMPLATE(T) \ #define DECL_TEMPLATE(T) \
static void Convert_##T(T *dst, const ALvoid *src, enum UserFmtType srcType, \ static void Convert_##T(T *dst, const ALvoid *src, enum UserFmtType srcType, \
ALsizei numchans, ALsizei len) \ ALsizei numchans, ALsizei len) \
@ -1598,7 +1596,7 @@ static void Convert_##T(T *dst, const ALvoid *src, enum UserFmtType srcType, \
Convert_##T##_ALmulaw(dst, src, numchans, len); \ Convert_##T##_ALmulaw(dst, src, numchans, len); \
break; \ break; \
case UserFmtIMA4: \ case UserFmtIMA4: \
Convert_##T##_IMA4(dst, src, numchans, len); \ Convert_##T##_ALima4(dst, src, numchans, len); \
break; \ break; \
} \ } \
} }
@ -1612,47 +1610,10 @@ DECL_TEMPLATE(ALuint)
DECL_TEMPLATE(ALfloat) DECL_TEMPLATE(ALfloat)
DECL_TEMPLATE(ALdouble) DECL_TEMPLATE(ALdouble)
DECL_TEMPLATE(ALmulaw) DECL_TEMPLATE(ALmulaw)
DECL_TEMPLATE(ALima4)
#undef DECL_TEMPLATE #undef DECL_TEMPLATE
static void Convert_IMA4(ALubyte *dst, const ALvoid *src, enum UserFmtType srcType,
ALint chans, ALsizei len)
{
switch(srcType)
{
case UserFmtByte:
Convert_IMA4_ALbyte(dst, src, chans, len);
break;
case UserFmtUByte:
Convert_IMA4_ALubyte(dst, src, chans, len);
break;
case UserFmtShort:
Convert_IMA4_ALshort(dst, src, chans, len);
break;
case UserFmtUShort:
Convert_IMA4_ALushort(dst, src, chans, len);
break;
case UserFmtInt:
Convert_IMA4_ALint(dst, src, chans, len);
break;
case UserFmtUInt:
Convert_IMA4_ALuint(dst, src, chans, len);
break;
case UserFmtFloat:
Convert_IMA4_ALfloat(dst, src, chans, len);
break;
case UserFmtDouble:
Convert_IMA4_ALdouble(dst, src, chans, len);
break;
case UserFmtMulaw:
Convert_IMA4_ALmulaw(dst, src, chans, len);
break;
case UserFmtIMA4:
Convert_IMA4_IMA4(dst, src, chans, len);
break;
}
}
static void ConvertData(ALvoid *dst, enum UserFmtType dstType, const ALvoid *src, enum UserFmtType srcType, ALsizei numchans, ALsizei len) static void ConvertData(ALvoid *dst, enum UserFmtType dstType, const ALvoid *src, enum UserFmtType srcType, ALsizei numchans, ALsizei len)
{ {
@ -1686,7 +1647,7 @@ static void ConvertData(ALvoid *dst, enum UserFmtType dstType, const ALvoid *src
Convert_ALmulaw(dst, src, srcType, numchans, len); Convert_ALmulaw(dst, src, srcType, numchans, len);
break; break;
case UserFmtIMA4: case UserFmtIMA4:
Convert_IMA4(dst, src, srcType, numchans, len); Convert_ALima4(dst, src, srcType, numchans, len);
break; break;
} }
} }