Get rid of the COUNTOF macro

This commit is contained in:
Chris Robinson
2019-05-26 21:28:51 -07:00
parent f6f220025b
commit f57fedec7f
5 changed files with 34 additions and 39 deletions
+8 -9
View File
@@ -1151,11 +1151,11 @@ static void alc_initconfig(void)
continue;
size_t len{next ? static_cast<size_t>(next-str) : strlen(str)};
for(size_t n{0u};n < countof(gEffectList);n++)
for(const EffectList &effectitem : gEffectList)
{
if(len == strlen(gEffectList[n].name) &&
strncmp(gEffectList[n].name, str, len) == 0)
DisabledEffects[gEffectList[n].type] = AL_TRUE;
if(len == strlen(effectitem.name) &&
strncmp(effectitem.name, str, len) == 0)
DisabledEffects[effectitem.type] = AL_TRUE;
}
} while(next++);
}
@@ -1280,14 +1280,13 @@ static ALboolean DecomposeDevFormat(ALenum format, DevFmtChannels *chans, DevFmt
{ AL_FORMAT_71CHN16, DevFmtX71, DevFmtShort },
{ AL_FORMAT_71CHN32, DevFmtX71, DevFmtFloat },
};
ALuint i;
for(i = 0;i < COUNTOF(list);i++)
for(const auto &item : list)
{
if(list[i].format == format)
if(item.format == format)
{
*chans = list[i].channels;
*type = list[i].type;
*chans = item.channels;
*type = item.type;
return AL_TRUE;
}
}
+9 -12
View File
@@ -27,6 +27,7 @@
#include <jni.h>
#include <new>
#include <array>
#include <thread>
#include <functional>
@@ -352,8 +353,6 @@ ALCboolean OpenSLPlayback::reset()
SLDataLocator_OutputMix loc_outmix;
SLDataSource audioSrc;
SLDataSink audioSnk;
SLInterfaceID ids[2];
SLboolean reqs[2];
SLresult result;
if(mBufferQueueObj)
@@ -437,6 +436,9 @@ ALCboolean OpenSLPlayback::reset()
mFrameSize = mDevice->frameSizeFromFmt();
const std::array<SLInterfaceID,2> ids{{ SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION }};
const std::array<SLboolean,2> reqs{{ SL_BOOLEAN_TRUE, SL_BOOLEAN_FALSE }};
loc_bufq.locatorType = SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE;
loc_bufq.numBuffers = mDevice->BufferSize / mDevice->UpdateSize;
@@ -472,13 +474,8 @@ ALCboolean OpenSLPlayback::reset()
audioSnk.pFormat = nullptr;
ids[0] = SL_IID_ANDROIDSIMPLEBUFFERQUEUE;
reqs[0] = SL_BOOLEAN_TRUE;
ids[1] = SL_IID_ANDROIDCONFIGURATION;
reqs[1] = SL_BOOLEAN_FALSE;
result = VCALL(mEngine,CreateAudioPlayer)(&mBufferQueueObj, &audioSrc, &audioSnk, COUNTOF(ids),
ids, reqs);
result = VCALL(mEngine,CreateAudioPlayer)(&mBufferQueueObj, &audioSrc, &audioSnk, ids.size(),
ids.data(), reqs.data());
PRINTERR(result, "engine->CreateAudioPlayer");
if(SL_RESULT_SUCCESS == result)
{
@@ -704,8 +701,8 @@ ALCenum OpenSLCapture::open(const ALCchar* name)
}
if(SL_RESULT_SUCCESS == result)
{
const SLInterfaceID ids[2] = { SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION };
const SLboolean reqs[2] = { SL_BOOLEAN_TRUE, SL_BOOLEAN_FALSE };
const std::array<SLInterfaceID,2> ids{{ SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION }};
const std::array<SLboolean,2> reqs{{ SL_BOOLEAN_TRUE, SL_BOOLEAN_FALSE }};
SLDataLocator_IODevice loc_dev{};
loc_dev.locatorType = SL_DATALOCATOR_IODEVICE;
@@ -747,7 +744,7 @@ ALCenum OpenSLCapture::open(const ALCchar* name)
audioSnk.pFormat = &format_pcm;
result = VCALL(mEngine,CreateAudioRecorder)(&mRecordObj, &audioSrc, &audioSnk,
COUNTOF(ids), ids, reqs);
ids.size(), ids.data(), reqs.data());
PRINTERR(result, "engine->CreateAudioRecorder");
}
if(SL_RESULT_SUCCESS == result)
-6
View File
@@ -33,12 +33,6 @@
#include "hrtf.h"
template<typename T, size_t N>
constexpr inline size_t countof(const T(&)[N]) noexcept
{ return N; }
#define COUNTOF countof
#ifndef UNUSED
#if defined(__cplusplus)
#define UNUSED(x)
+14 -10
View File
@@ -320,11 +320,17 @@ START_API_FUNC
{
if(param == AL_EFFECT_TYPE)
{
ALboolean isOk = (value == AL_EFFECT_NULL);
for(size_t i{0u};!isOk && i < countof(gEffectList);i++)
ALboolean isOk{value == AL_EFFECT_NULL};
if(!isOk)
{
if(value == gEffectList[i].val && !DisabledEffects[gEffectList[i].type])
isOk = AL_TRUE;
for(const EffectList &effectitem : gEffectList)
{
if(value == effectitem.val && !DisabledEffects[effectitem.type])
{
isOk = AL_TRUE;
break;
}
}
}
if(isOk)
@@ -669,8 +675,6 @@ static const struct {
void LoadReverbPreset(const char *name, ALeffect *effect)
{
size_t i;
if(strcasecmp(name, "NONE") == 0)
{
InitEffectParams(effect, AL_EFFECT_NULL);
@@ -684,15 +688,15 @@ void LoadReverbPreset(const char *name, ALeffect *effect)
InitEffectParams(effect, AL_EFFECT_REVERB);
else
InitEffectParams(effect, AL_EFFECT_NULL);
for(i = 0;i < COUNTOF(reverblist);i++)
for(const auto &reverbitem : reverblist)
{
const EFXEAXREVERBPROPERTIES *props;
if(strcasecmp(name, reverblist[i].name) != 0)
if(strcasecmp(name, reverbitem.name) != 0)
continue;
TRACE("Loading reverb '%s'\n", reverblist[i].name);
props = &reverblist[i].props;
TRACE("Loading reverb '%s'\n", reverbitem.name);
props = &reverbitem.props;
effect->Props.Reverb.Density = props->flDensity;
effect->Props.Reverb.Diffusion = props->flDiffusion;
effect->Props.Reverb.Gain = props->flGain;
+3 -2
View File
@@ -30,6 +30,7 @@
#include "alu.h"
#include "alError.h"
#include "alexcpt.h"
#include "alspan.h"
#include "backends/base.h"
@@ -788,7 +789,7 @@ START_API_FUNC
alCubicResampler, alBSinc12Resampler,
alBSinc24Resampler,
};
static_assert(COUNTOF(ResamplerNames) == ResamplerMax+1, "Incorrect ResamplerNames list");
static_assert(al::size(ResamplerNames) == ResamplerMax+1, "Incorrect ResamplerNames list");
ContextRef context{GetContextRef()};
if(UNLIKELY(!context)) return nullptr;
@@ -797,7 +798,7 @@ START_API_FUNC
switch(pname)
{
case AL_RESAMPLER_NAME_SOFT:
if(index < 0 || static_cast<size_t>(index) >= COUNTOF(ResamplerNames))
if(index < 0 || static_cast<size_t>(index) >= al::size(ResamplerNames))
alSetError(context.get(), AL_INVALID_VALUE, "Resampler name index %d out of range",
index);
else