diff options
-rw-r--r-- | alc/alc.cpp | 6 | ||||
-rw-r--r-- | alc/backends/alsa.cpp | 34 | ||||
-rw-r--r-- | alc/backends/base.cpp | 2 | ||||
-rw-r--r-- | alc/backends/coreaudio.cpp | 30 | ||||
-rw-r--r-- | alc/backends/dsound.cpp | 16 | ||||
-rw-r--r-- | alc/backends/jack.cpp | 20 | ||||
-rw-r--r-- | alc/backends/null.cpp | 6 | ||||
-rw-r--r-- | alc/backends/oboe.cpp | 4 | ||||
-rw-r--r-- | alc/backends/opensl.cpp | 34 | ||||
-rw-r--r-- | alc/backends/oss.cpp | 57 | ||||
-rw-r--r-- | alc/backends/portaudio.cpp | 22 | ||||
-rw-r--r-- | alc/backends/pulseaudio.cpp | 32 | ||||
-rw-r--r-- | alc/backends/sdl2.cpp | 6 | ||||
-rw-r--r-- | alc/backends/sndio.cpp | 18 | ||||
-rw-r--r-- | alc/backends/solaris.cpp | 61 | ||||
-rw-r--r-- | alc/backends/wasapi.cpp | 34 | ||||
-rw-r--r-- | alc/backends/wave.cpp | 117 | ||||
-rw-r--r-- | alc/backends/winmm.cpp | 54 |
18 files changed, 277 insertions, 276 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index 1a45cbe3..67787ab6 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -2130,7 +2130,7 @@ static ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) uint64_t usemask{~sublist.FreeMask}; while(usemask) { - const ALsizei idx{CountTrailingZeros(usemask)}; + const int idx{CountTrailingZeros(usemask)}; ALeffectslot *slot{sublist.EffectSlots + idx}; usemask &= ~(1_u64 << idx); @@ -2153,7 +2153,7 @@ static ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) uint64_t usemask{~sublist.FreeMask}; while(usemask) { - const ALsizei idx{CountTrailingZeros(usemask)}; + const int idx{CountTrailingZeros(usemask)}; ALsource *source{sublist.Sources + idx}; usemask &= ~(1_u64 << idx); @@ -2724,7 +2724,7 @@ START_API_FUNC END_API_FUNC -static inline ALCsizei NumAttrsForDevice(ALCdevice *device) +static inline int NumAttrsForDevice(ALCdevice *device) { if(device->Type == DeviceType::Capture) return 9; if(device->Type != DeviceType::Loopback) return 29; diff --git a/alc/backends/alsa.cpp b/alc/backends/alsa.cpp index eaa787ea..4adf64b3 100644 --- a/alc/backends/alsa.cpp +++ b/alc/backends/alsa.cpp @@ -56,7 +56,7 @@ namespace { -constexpr ALCchar alsaDevice[] = "ALSA Default"; +constexpr char alsaDevice[] = "ALSA Default"; #ifdef HAVE_DYNLOAD @@ -325,7 +325,7 @@ al::vector<DevMap> probe_devices(snd_pcm_stream_t stream) ERR("snd_ctl_pcm_next_device failed\n"); if(dev < 0) break; - snd_pcm_info_set_device(pcminfo, static_cast<ALuint>(dev)); + snd_pcm_info_set_device(pcminfo, static_cast<uint>(dev)); snd_pcm_info_set_subdevice(pcminfo, 0); snd_pcm_info_set_stream(pcminfo, stream); if((err=snd_ctl_pcm_info(handle, pcminfo)) < 0) @@ -416,7 +416,7 @@ struct AlsaPlayback final : public BackendBase { int mixerProc(); int mixerNoMMapProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -510,7 +510,7 @@ int AlsaPlayback::mixerProc() } char *WritePtr{static_cast<char*>(areas->addr) + (offset * areas->step / 8)}; - mDevice->renderSamples(WritePtr, static_cast<ALuint>(frames), areas->step/samplebits); + mDevice->renderSamples(WritePtr, static_cast<uint>(frames), areas->step/samplebits); snd_pcm_sframes_t commitres{snd_pcm_mmap_commit(mPcmHandle, offset, frames)}; if(commitres < 0 || static_cast<snd_pcm_uframes_t>(commitres) != frames) @@ -578,7 +578,7 @@ int AlsaPlayback::mixerNoMMapProc() al::byte *WritePtr{mBuffer.data()}; avail = snd_pcm_bytes_to_frames(mPcmHandle, static_cast<ssize_t>(mBuffer.size())); std::lock_guard<std::mutex> _{mMutex}; - mDevice->renderSamples(WritePtr, static_cast<ALuint>(avail), frame_step); + mDevice->renderSamples(WritePtr, static_cast<uint>(avail), frame_step); while(avail > 0) { snd_pcm_sframes_t ret{snd_pcm_writei(mPcmHandle, WritePtr, @@ -616,7 +616,7 @@ int AlsaPlayback::mixerNoMMapProc() } -void AlsaPlayback::open(const ALCchar *name) +void AlsaPlayback::open(const char *name) { const char *driver{}; if(name) @@ -680,9 +680,9 @@ bool AlsaPlayback::reset() } bool allowmmap{!!GetConfigValueBool(mDevice->DeviceName.c_str(), "alsa", "mmap", 1)}; - ALuint periodLen{static_cast<ALuint>(mDevice->UpdateSize * 1000000_u64 / mDevice->Frequency)}; - ALuint bufferLen{static_cast<ALuint>(mDevice->BufferSize * 1000000_u64 / mDevice->Frequency)}; - ALuint rate{mDevice->Frequency}; + uint periodLen{static_cast<uint>(mDevice->UpdateSize * 1000000_u64 / mDevice->Frequency)}; + uint bufferLen{static_cast<uint>(mDevice->BufferSize * 1000000_u64 / mDevice->Frequency)}; + uint rate{mDevice->Frequency}; int err{}; HwParamsPtr hp{CreateHwParams()}; @@ -785,8 +785,8 @@ bool AlsaPlayback::reset() #undef CHECK sp = nullptr; - mDevice->BufferSize = static_cast<ALuint>(bufferSizeInFrames); - mDevice->UpdateSize = static_cast<ALuint>(periodSizeInFrames); + mDevice->BufferSize = static_cast<uint>(bufferSizeInFrames); + mDevice->UpdateSize = static_cast<uint>(periodSizeInFrames); mDevice->Frequency = rate; setDefaultChannelOrder(); @@ -869,7 +869,7 @@ struct AlsaCapture final : public BackendBase { AlsaCapture(ALCdevice *device) noexcept : BackendBase{device} { } ~AlsaCapture() override; - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -896,7 +896,7 @@ AlsaCapture::~AlsaCapture() } -void AlsaCapture::open(const ALCchar *name) +void AlsaCapture::open(const char *name) { const char *driver{}; if(name) @@ -1017,7 +1017,7 @@ void AlsaCapture::stop() * snd_pcm_drain is unreliable and snd_pcm_drop drops it. Capture what's * available now so it'll be available later after the drop. */ - ALCuint avail{availableSamples()}; + uint avail{availableSamples()}; if(!mRing && avail > 0) { /* The ring buffer implicitly captures when checking availability. @@ -1088,7 +1088,7 @@ void AlsaCapture::captureSamples(al::byte *buffer, uint samples) } buffer = buffer + amt; - samples -= static_cast<ALCuint>(amt); + samples -= static_cast<uint>(amt); } if(samples > 0) std::fill_n(buffer, snd_pcm_frames_to_bytes(mPcmHandle, samples), @@ -1199,10 +1199,10 @@ bool AlsaBackendFactory::init() if(!alsa_handle) { WARN("Failed to load %s\n", "libasound.so.2"); - return ALC_FALSE; + return false; } - error = ALC_FALSE; + error = false; #define LOAD_FUNC(f) do { \ p##f = reinterpret_cast<decltype(p##f)>(GetSymbol(alsa_handle, #f)); \ if(p##f == nullptr) { \ diff --git a/alc/backends/base.cpp b/alc/backends/base.cpp index 6e78ae26..60d99bff 100644 --- a/alc/backends/base.cpp +++ b/alc/backends/base.cpp @@ -12,8 +12,6 @@ #include <mmreg.h> #endif -#include "AL/alc.h" - #include "alcmain.h" #include "alexcpt.h" #include "alnumeric.h" diff --git a/alc/backends/coreaudio.cpp b/alc/backends/coreaudio.cpp index 4ad7ab84..a4c93819 100644 --- a/alc/backends/coreaudio.cpp +++ b/alc/backends/coreaudio.cpp @@ -44,7 +44,7 @@ namespace { -static const ALCchar ca_device[] = "CoreAudio Default"; +static const char ca_device[] = "CoreAudio Default"; struct CoreAudioPlayback final : public BackendBase { @@ -62,14 +62,14 @@ struct CoreAudioPlayback final : public BackendBase { inBusNumber, inNumberFrames, ioData); } - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; AudioUnit mAudioUnit{}; - ALuint mFrameSize{0u}; + uint mFrameSize{0u}; AudioStreamBasicDescription mFormat{}; // This is the OpenAL format as a CoreAudio ASBD DEF_NEWDEL(CoreAudioPlayback) @@ -95,7 +95,7 @@ OSStatus CoreAudioPlayback::MixerProc(AudioUnitRenderActionFlags*, const AudioTi } -void CoreAudioPlayback::open(const ALCchar *name) +void CoreAudioPlayback::open(const char *name) { if(!name) name = ca_device; @@ -171,9 +171,9 @@ bool CoreAudioPlayback::reset() if(mDevice->Frequency != streamFormat.mSampleRate) { - mDevice->BufferSize = static_cast<ALuint>(uint64_t{mDevice->BufferSize} * + mDevice->BufferSize = static_cast<uint>(uint64_t{mDevice->BufferSize} * streamFormat.mSampleRate / mDevice->Frequency); - mDevice->Frequency = static_cast<ALuint>(streamFormat.mSampleRate); + mDevice->Frequency = static_cast<uint>(streamFormat.mSampleRate); } /* FIXME: How to tell what channels are what in the output device, and how @@ -309,7 +309,7 @@ struct CoreAudioCapture final : public BackendBase { inBusNumber, inNumberFrames, ioData); } - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -317,7 +317,7 @@ struct CoreAudioCapture final : public BackendBase { AudioUnit mAudioUnit{0}; - ALuint mFrameSize{0u}; + uint mFrameSize{0u}; AudioStreamBasicDescription mFormat{}; // This is the OpenAL format as a CoreAudio ASBD SampleConverterPtr mConverter; @@ -359,7 +359,7 @@ OSStatus CoreAudioCapture::RecordProc(AudioUnitRenderActionFlags*, } else { - const auto remaining = static_cast<ALuint>(inNumberFrames - rec_vec.first.len); + const auto remaining = static_cast<uint>(inNumberFrames - rec_vec.first.len); audiobuf.list.mNumberBuffers = 2; audiobuf.list.mBuffers[0].mNumberChannels = mFormat.mChannelsPerFrame; audiobuf.list.mBuffers[0].mData = rec_vec.first.buf; @@ -382,7 +382,7 @@ OSStatus CoreAudioCapture::RecordProc(AudioUnitRenderActionFlags*, } -void CoreAudioCapture::open(const ALCchar *name) +void CoreAudioCapture::open(const char *name) { AudioStreamBasicDescription requestedFormat; // The application requested format AudioStreamBasicDescription hardwareFormat; // The hardware format @@ -424,7 +424,7 @@ void CoreAudioCapture::open(const ALCchar *name) // Turn off AudioUnit output enableIO = 0; err = AudioUnitSetProperty(mAudioUnit, kAudioOutputUnitProperty_EnableIO, - kAudioUnitScope_Output, 0, &enableIO, sizeof(ALuint)); + kAudioUnitScope_Output, 0, &enableIO, sizeof(enableIO)); if(err != noErr) throw al::backend_exception{al::backend_error::DeviceError, "Could not disable audio unit output property: %u", err}; @@ -432,7 +432,7 @@ void CoreAudioCapture::open(const ALCchar *name) // Turn on AudioUnit input enableIO = 1; err = AudioUnitSetProperty(mAudioUnit, kAudioOutputUnitProperty_EnableIO, - kAudioUnitScope_Input, 1, &enableIO, sizeof(ALuint)); + kAudioUnitScope_Input, 1, &enableIO, sizeof(enableIO)); if(err != noErr) throw al::backend_exception{al::backend_error::DeviceError, "Could not enable audio unit input property: %u", err}; @@ -598,7 +598,7 @@ void CoreAudioCapture::open(const ALCchar *name) /* Set up sample converter if needed */ if(outputFormat.mSampleRate != mDevice->Frequency) mConverter = CreateSampleConverter(mDevice->FmtType, mDevice->FmtType, - mFormat.mChannelsPerFrame, static_cast<ALuint>(hardwareFormat.mSampleRate), + mFormat.mChannelsPerFrame, static_cast<uint>(hardwareFormat.mSampleRate), mDevice->Frequency, Resampler::FastBSinc24); mDevice->DeviceName = name; @@ -630,13 +630,13 @@ void CoreAudioCapture::captureSamples(al::byte *buffer, uint samples) auto rec_vec = mRing->getReadVector(); const void *src0{rec_vec.first.buf}; - auto src0len = static_cast<ALuint>(rec_vec.first.len); + auto src0len = static_cast<uint>(rec_vec.first.len); uint got{mConverter->convert(&src0, &src0len, buffer, samples)}; size_t total_read{rec_vec.first.len - src0len}; if(got < samples && !src0len && rec_vec.second.len > 0) { const void *src1{rec_vec.second.buf}; - auto src1len = static_cast<ALuint>(rec_vec.second.len); + auto src1len = static_cast<uint>(rec_vec.second.len); got += mConverter->convert(&src1, &src1len, buffer + got*mFrameSize, samples-got); total_read += rec_vec.second.len - src1len; } diff --git a/alc/backends/dsound.cpp b/alc/backends/dsound.cpp index 3aa4567c..a8577dbc 100644 --- a/alc/backends/dsound.cpp +++ b/alc/backends/dsound.cpp @@ -229,7 +229,7 @@ FORCE_ALIGN int DSoundPlayback::mixerProc() } const size_t FrameStep{mDevice->channelsFromFmt()}; - ALuint FrameSize{mDevice->frameSizeFromFmt()}; + uint FrameSize{mDevice->frameSizeFromFmt()}; DWORD FragSize{mDevice->UpdateSize * FrameSize}; bool Playing{false}; @@ -306,7 +306,7 @@ FORCE_ALIGN int DSoundPlayback::mixerProc() return 0; } -void DSoundPlayback::open(const ALCchar *name) +void DSoundPlayback::open(const char *name) { HRESULT hr; if(PlaybackDevices.empty()) @@ -474,7 +474,7 @@ retry_open: if(SUCCEEDED(hr)) { - ALuint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; + uint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; if(num_updates > MAX_UPDATES) num_updates = MAX_UPDATES; mDevice->BufferSize = mDevice->UpdateSize * num_updates; @@ -502,11 +502,11 @@ retry_open: { mNotifies = static_cast<IDirectSoundNotify*>(ptr); - ALuint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; + uint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; assert(num_updates <= MAX_UPDATES); std::array<DSBPOSITIONNOTIFY,MAX_UPDATES> nots; - for(ALuint i{0};i < num_updates;++i) + for(uint i{0};i < num_updates;++i) { nots[i].dwOffset = i * mDevice->UpdateSize * OutputType.Format.nBlockAlign; nots[i].hEventNotify = mNotifyEvent; @@ -562,7 +562,7 @@ struct DSoundCapture final : public BackendBase { DSoundCapture(ALCdevice *device) noexcept : BackendBase{device} { } ~DSoundCapture() override; - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -593,7 +593,7 @@ DSoundCapture::~DSoundCapture() } -void DSoundCapture::open(const ALCchar *name) +void DSoundCapture::open(const char *name) { HRESULT hr; if(CaptureDevices.empty()) @@ -684,7 +684,7 @@ void DSoundCapture::open(const ALCchar *name) InputType.Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); } - ALuint samples{mDevice->BufferSize}; + uint samples{mDevice->BufferSize}; samples = maxu(samples, 100 * mDevice->Frequency / 1000); DSCBUFFERDESC DSCBDescription{}; diff --git a/alc/backends/jack.cpp b/alc/backends/jack.cpp index c03bd77f..c70e5b0d 100644 --- a/alc/backends/jack.cpp +++ b/alc/backends/jack.cpp @@ -46,7 +46,7 @@ namespace { -constexpr ALCchar jackDevice[] = "JACK Default"; +constexpr char jackDevice[] = "JACK Default"; #ifdef HAVE_DYNLOAD @@ -214,7 +214,7 @@ struct JackPlayback final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -266,7 +266,7 @@ int JackPlayback::process(jack_nframes_t numframes) noexcept if LIKELY(mPlaying.load(std::memory_order_acquire)) { auto data = mRing->getReadVector(); - jack_nframes_t todo{minu(numframes, static_cast<ALuint>(data.first.len))}; + jack_nframes_t todo{minu(numframes, static_cast<uint>(data.first.len))}; auto write_first = [&data,numchans,todo](float *outbuf) -> float* { const float *RESTRICT in = reinterpret_cast<float*>(data.first.buf); @@ -283,7 +283,7 @@ int JackPlayback::process(jack_nframes_t numframes) noexcept std::transform(out.begin(), out.begin()+numchans, out.begin(), write_first); total += todo; - todo = minu(numframes-total, static_cast<ALuint>(data.second.len)); + todo = minu(numframes-total, static_cast<uint>(data.second.len)); if(todo > 0) { auto write_second = [&data,numchans,todo](float *outbuf) -> float* @@ -334,11 +334,11 @@ int JackPlayback::mixerProc() } auto data = mRing->getWriteVector(); - auto todo = static_cast<ALuint>(data.first.len + data.second.len); + size_t todo{data.first.len + data.second.len}; todo -= todo%mDevice->UpdateSize; - ALuint len1{minu(static_cast<ALuint>(data.first.len), todo)}; - ALuint len2{minu(static_cast<ALuint>(data.second.len), todo-len1)}; + const auto len1 = static_cast<uint>(minz(data.first.len, todo)); + const auto len2 = static_cast<uint>(minz(data.second.len, todo-len1)); std::lock_guard<std::mutex> _{mMutex}; mDevice->renderSamples(data.first.buf, len1, frame_step); @@ -351,7 +351,7 @@ int JackPlayback::mixerProc() } -void JackPlayback::open(const ALCchar *name) +void JackPlayback::open(const char *name) { mPortPattern.clear(); @@ -406,7 +406,7 @@ bool JackPlayback::reset() mDevice->BufferSize = mDevice->UpdateSize * 2; const char *devname{mDevice->DeviceName.c_str()}; - ALuint bufsize{ConfigValueUInt(devname, "jack", "buffer-size").value_or(mDevice->UpdateSize)}; + uint bufsize{ConfigValueUInt(devname, "jack", "buffer-size").value_or(mDevice->UpdateSize)}; bufsize = maxu(NextPowerOf2(bufsize), mDevice->UpdateSize); mDevice->BufferSize = bufsize + mDevice->UpdateSize; @@ -487,7 +487,7 @@ void JackPlayback::start() mDevice->UpdateSize = jack_get_buffer_size(mClient); mDevice->BufferSize = mDevice->UpdateSize * 2; - ALuint bufsize{ConfigValueUInt(devname, "jack", "buffer-size").value_or(mDevice->UpdateSize)}; + uint bufsize{ConfigValueUInt(devname, "jack", "buffer-size").value_or(mDevice->UpdateSize)}; bufsize = maxu(NextPowerOf2(bufsize), mDevice->UpdateSize); mDevice->BufferSize = bufsize + mDevice->UpdateSize; diff --git a/alc/backends/null.cpp b/alc/backends/null.cpp index dd22a56b..87fb2689 100644 --- a/alc/backends/null.cpp +++ b/alc/backends/null.cpp @@ -43,7 +43,7 @@ using std::chrono::seconds; using std::chrono::milliseconds; using std::chrono::nanoseconds; -constexpr ALCchar nullDevice[] = "No Output"; +constexpr char nullDevice[] = "No Output"; struct NullBackend final : public BackendBase { @@ -51,7 +51,7 @@ struct NullBackend final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -106,7 +106,7 @@ int NullBackend::mixerProc() } -void NullBackend::open(const ALCchar *name) +void NullBackend::open(const char *name) { if(!name) name = nullDevice; diff --git a/alc/backends/oboe.cpp b/alc/backends/oboe.cpp index 94e3b8f2..2913b6db 100644 --- a/alc/backends/oboe.cpp +++ b/alc/backends/oboe.cpp @@ -25,7 +25,7 @@ struct OboePlayback final : public BackendBase, public oboe::AudioStreamCallback oboe::DataCallbackResult onAudioReady(oboe::AudioStream *oboeStream, void *audioData, int32_t numFrames) override; - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -55,7 +55,7 @@ oboe::DataCallbackResult OboePlayback::onAudioReady(oboe::AudioStream *oboeStrea } -void OboePlayback::open(const ALCchar *name) +void OboePlayback::open(const char *name) { if(!name) name = device_name; diff --git a/alc/backends/opensl.cpp b/alc/backends/opensl.cpp index dccc7410..b41a4d84 100644 --- a/alc/backends/opensl.cpp +++ b/alc/backends/opensl.cpp @@ -54,7 +54,7 @@ namespace { #define VCALL0(obj, func) ((*(obj))->func((obj) EXTRACT_VCALL_ARGS -constexpr ALCchar opensl_device[] = "OpenSL"; +constexpr char opensl_device[] = "OpenSL"; SLuint32 GetChannelMask(DevFmtChannels chans) @@ -153,7 +153,7 @@ struct OpenSLPlayback final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -266,10 +266,10 @@ int OpenSLPlayback::mixerProc() std::unique_lock<std::mutex> dlock{mMutex}; auto data = mRing->getWriteVector(); mDevice->renderSamples(data.first.buf, - static_cast<ALuint>(data.first.len*mDevice->UpdateSize), frame_step); + static_cast<uint>(data.first.len)*mDevice->UpdateSize, frame_step); if(data.second.len > 0) mDevice->renderSamples(data.second.buf, - static_cast<ALuint>(data.second.len*mDevice->UpdateSize), frame_step); + static_cast<uint>(data.second.len)*mDevice->UpdateSize, frame_step); size_t todo{data.first.len + data.second.len}; mRing->writeAdvance(todo); @@ -301,7 +301,7 @@ int OpenSLPlayback::mixerProc() } -void OpenSLPlayback::open(const ALCchar *name) +void OpenSLPlayback::open(const char *name) { if(!name) name = opensl_device; @@ -525,7 +525,7 @@ bool OpenSLPlayback::reset() } if(SL_RESULT_SUCCESS == result) { - const ALuint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; + const uint num_updates{mDevice->BufferSize / mDevice->UpdateSize}; mRing = RingBuffer::Create(num_updates, mFrameSize*mDevice->UpdateSize, true); } @@ -630,7 +630,7 @@ struct OpenSLCapture final : public BackendBase { static void processC(SLAndroidSimpleBufferQueueItf bq, void *context) noexcept { static_cast<OpenSLCapture*>(context)->process(bq); } - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -671,7 +671,7 @@ void OpenSLCapture::process(SLAndroidSimpleBufferQueueItf) noexcept } -void OpenSLCapture::open(const ALCchar* name) +void OpenSLCapture::open(const char* name) { if(!name) name = opensl_device; @@ -695,16 +695,16 @@ void OpenSLCapture::open(const ALCchar* name) { mFrameSize = mDevice->frameSizeFromFmt(); /* Ensure the total length is at least 100ms */ - ALuint length{maxu(mDevice->BufferSize, mDevice->Frequency/10)}; + uint length{maxu(mDevice->BufferSize, mDevice->Frequency/10)}; /* Ensure the per-chunk length is at least 10ms, and no more than 50ms. */ - ALuint update_len{clampu(mDevice->BufferSize/3, mDevice->Frequency/100, + uint update_len{clampu(mDevice->BufferSize/3, mDevice->Frequency/100, mDevice->Frequency/100*5)}; - ALuint num_updates{(length+update_len-1) / update_len}; + uint num_updates{(length+update_len-1) / update_len}; mRing = RingBuffer::Create(num_updates, update_len*mFrameSize, false); mDevice->UpdateSize = update_len; - mDevice->BufferSize = static_cast<ALuint>(mRing->writeSpace() * update_len); + mDevice->BufferSize = static_cast<uint>(mRing->writeSpace() * update_len); } if(SL_RESULT_SUCCESS == result) { @@ -805,7 +805,7 @@ void OpenSLCapture::open(const ALCchar* name) } if(SL_RESULT_SUCCESS == result) { - const ALuint chunk_size{mDevice->UpdateSize * mFrameSize}; + const uint chunk_size{mDevice->UpdateSize * mFrameSize}; auto data = mRing->getWriteVector(); for(size_t i{0u};i < data.first.len && SL_RESULT_SUCCESS == result;i++) @@ -882,16 +882,16 @@ void OpenSLCapture::captureSamples(al::byte *buffer, uint samples) } } - const ALuint update_size{mDevice->UpdateSize}; - const ALuint chunk_size{update_size * mFrameSize}; + const uint update_size{mDevice->UpdateSize}; + const uint chunk_size{update_size * mFrameSize}; /* Read the desired samples from the ring buffer then advance its read * pointer. */ auto data = mRing->getReadVector(); - for(ALCuint i{0};i < samples;) + for(uint i{0};i < samples;) { - const ALCuint rem{minu(samples - i, update_size - mSplOffset)}; + const uint rem{minu(samples - i, update_size - mSplOffset)}; std::copy_n(data.first.buf + mSplOffset*mFrameSize, rem*mFrameSize, buffer + i*mFrameSize); mSplOffset += rem; diff --git a/alc/backends/oss.cpp b/alc/backends/oss.cpp index ff4b6eb9..1178a3ac 100644 --- a/alc/backends/oss.cpp +++ b/alc/backends/oss.cpp @@ -45,6 +45,7 @@ #include "alcmain.h" #include "alconfig.h" +#include "albyte.h" #include "alexcpt.h" #include "almalloc.h" #include "alnumeric.h" @@ -215,9 +216,9 @@ done: #endif -ALCuint log2i(ALCuint x) +uint log2i(uint x) { - ALCuint y{0}; + uint y{0}; while(x > 1) { x >>= 1; @@ -233,14 +234,14 @@ struct OSSPlayback final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; int mFd{-1}; - al::vector<ALubyte> mMixData; + al::vector<al::byte> mMixData; std::atomic<bool> mKillNow{true}; std::thread mThread; @@ -262,10 +263,10 @@ int OSSPlayback::mixerProc() althrd_setname(MIXER_THREAD_NAME); const size_t frame_step{mDevice->channelsFromFmt()}; - const ALuint frame_size{mDevice->frameSizeFromFmt()}; + const size_t frame_size{mDevice->frameSizeFromFmt()}; - while(!mKillNow.load(std::memory_order_acquire) && - mDevice->Connected.load(std::memory_order_acquire)) + while(!mKillNow.load(std::memory_order_acquire) + && mDevice->Connected.load(std::memory_order_acquire)) { pollfd pollitem{}; pollitem.fd = mFd; @@ -286,9 +287,9 @@ int OSSPlayback::mixerProc() continue; } - ALubyte *write_ptr{mMixData.data()}; + al::byte *write_ptr{mMixData.data()}; size_t to_write{mMixData.size()}; - mDevice->renderSamples(write_ptr, static_cast<ALuint>(to_write/frame_size), frame_step); + mDevice->renderSamples(write_ptr, static_cast<uint>(to_write/frame_size), frame_step); while(to_write > 0 && !mKillNow.load(std::memory_order_acquire)) { ssize_t wrote{write(mFd, write_ptr, to_write)}; @@ -310,7 +311,7 @@ int OSSPlayback::mixerProc() } -void OSSPlayback::open(const ALCchar *name) +void OSSPlayback::open(const char *name) { const char *devname{DefaultPlayback.c_str()}; if(!name) @@ -360,13 +361,13 @@ bool OSSPlayback::reset() break; } - ALuint periods{mDevice->BufferSize / mDevice->UpdateSize}; - ALuint numChannels{mDevice->channelsFromFmt()}; - ALuint ossSpeed{mDevice->Frequency}; - ALuint frameSize{numChannels * mDevice->bytesFromFmt()}; + uint periods{mDevice->BufferSize / mDevice->UpdateSize}; + uint numChannels{mDevice->channelsFromFmt()}; + uint ossSpeed{mDevice->Frequency}; + uint frameSize{numChannels * mDevice->bytesFromFmt()}; /* According to the OSS spec, 16 bytes (log2(16)) is the minimum. */ - ALuint log2FragmentSize{maxu(log2i(mDevice->UpdateSize*frameSize), 4)}; - ALuint numFragmentsLogSize{(periods << 16) | log2FragmentSize}; + uint log2FragmentSize{maxu(log2i(mDevice->UpdateSize*frameSize), 4)}; + uint numFragmentsLogSize{(periods << 16) | log2FragmentSize}; audio_buf_info info{}; const char *err; @@ -406,8 +407,8 @@ bool OSSPlayback::reset() } mDevice->Frequency = ossSpeed; - mDevice->UpdateSize = static_cast<ALuint>(info.fragsize) / frameSize; - mDevice->BufferSize = static_cast<ALuint>(info.fragments) * mDevice->UpdateSize; + mDevice->UpdateSize = static_cast<uint>(info.fragsize) / frameSize; + mDevice->BufferSize = static_cast<uint>(info.fragments) * mDevice->UpdateSize; setDefaultChannelOrder(); @@ -445,7 +446,7 @@ struct OSScapture final : public BackendBase { int recordProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -474,7 +475,7 @@ int OSScapture::recordProc() SetRTPriority(); althrd_setname(RECORD_THREAD_NAME); - const ALuint frame_size{mDevice->frameSizeFromFmt()}; + const size_t frame_size{mDevice->frameSizeFromFmt()}; while(!mKillNow.load(std::memory_order_acquire)) { pollfd pollitem{}; @@ -506,7 +507,7 @@ int OSScapture::recordProc() mDevice->handleDisconnect("Failed reading capture samples: %s", strerror(errno)); break; } - mRing->writeAdvance(static_cast<ALuint>(amt)/frame_size); + mRing->writeAdvance(static_cast<size_t>(amt)/frame_size); } } @@ -514,7 +515,7 @@ int OSScapture::recordProc() } -void OSScapture::open(const ALCchar *name) +void OSScapture::open(const char *name) { const char *devname{DefaultCapture.c_str()}; if(!name) @@ -559,13 +560,13 @@ void OSScapture::open(const ALCchar *name) "%s capture samples not supported", DevFmtTypeString(mDevice->FmtType)}; } - ALuint periods{4}; - ALuint numChannels{mDevice->channelsFromFmt()}; - ALuint frameSize{numChannels * mDevice->bytesFromFmt()}; - ALuint ossSpeed{mDevice->Frequency}; + uint periods{4}; + uint numChannels{mDevice->channelsFromFmt()}; + uint frameSize{numChannels * mDevice->bytesFromFmt()}; + uint ossSpeed{mDevice->Frequency}; /* according to the OSS spec, 16 bytes are the minimum */ - ALuint log2FragmentSize{maxu(log2i(mDevice->BufferSize * frameSize / periods), 4)}; - ALuint numFragmentsLogSize{(periods << 16) | log2FragmentSize}; + uint log2FragmentSize{maxu(log2i(mDevice->BufferSize * frameSize / periods), 4)}; + uint numFragmentsLogSize{(periods << 16) | log2FragmentSize}; audio_buf_info info{}; #define CHECKERR(func) if((func) < 0) { \ diff --git a/alc/backends/portaudio.cpp b/alc/backends/portaudio.cpp index e8b91365..4cb9fe0a 100644 --- a/alc/backends/portaudio.cpp +++ b/alc/backends/portaudio.cpp @@ -39,7 +39,7 @@ namespace { -constexpr ALCchar pa_device[] = "PortAudio Default"; +constexpr char pa_device[] = "PortAudio Default"; #ifdef HAVE_DYNLOAD @@ -86,14 +86,14 @@ struct PortPlayback final : public BackendBase { framesPerBuffer, timeInfo, statusFlags); } - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; PaStream *mStream{nullptr}; PaStreamParameters mParams{}; - ALuint mUpdateSize{0u}; + uint mUpdateSize{0u}; DEF_NEWDEL(PortPlayback) }; @@ -110,13 +110,13 @@ PortPlayback::~PortPlayback() int PortPlayback::writeCallback(const void*, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo*, const PaStreamCallbackFlags) noexcept { - mDevice->renderSamples(outputBuffer, static_cast<ALuint>(framesPerBuffer), - static_cast<ALuint>(mParams.channelCount)); + mDevice->renderSamples(outputBuffer, static_cast<uint>(framesPerBuffer), + static_cast<uint>(mParams.channelCount)); return 0; } -void PortPlayback::open(const ALCchar *name) +void PortPlayback::open(const char *name) { if(!name) name = pa_device; @@ -177,7 +177,7 @@ retry_open: bool PortPlayback::reset() { const PaStreamInfo *streamInfo{Pa_GetStreamInfo(mStream)}; - mDevice->Frequency = static_cast<ALuint>(streamInfo->sampleRate); + mDevice->Frequency = static_cast<uint>(streamInfo->sampleRate); mDevice->UpdateSize = mUpdateSize; if(mParams.sampleFormat == paInt8) @@ -240,7 +240,7 @@ struct PortCapture final : public BackendBase { framesPerBuffer, timeInfo, statusFlags); } - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -271,7 +271,7 @@ int PortCapture::readCallback(const void *inputBuffer, void*, unsigned long fram } -void PortCapture::open(const ALCchar *name) +void PortCapture::open(const char *name) { if(!name) name = pa_device; @@ -279,9 +279,9 @@ void PortCapture::open(const ALCchar *name) throw al::backend_exception{al::backend_error::NoDevice, "Device name \"%s\" not found", name}; - ALuint samples{mDevice->BufferSize}; + uint samples{mDevice->BufferSize}; samples = maxu(samples, 100 * mDevice->Frequency / 1000); - ALuint frame_size{mDevice->frameSizeFromFmt()}; + uint frame_size{mDevice->frameSizeFromFmt()}; mRing = RingBuffer::Create(samples, frame_size, false); diff --git a/alc/backends/pulseaudio.cpp b/alc/backends/pulseaudio.cpp index 1f6b8fae..9e5424de 100644 --- a/alc/backends/pulseaudio.cpp +++ b/alc/backends/pulseaudio.cpp @@ -286,7 +286,7 @@ al::optional<Channel> ChannelFromPulse(pa_channel_position_t chan) void SetChannelOrderFromMap(ALCdevice *device, const pa_channel_map &chanmap) { device->RealOut.ChannelIndex.fill(INVALID_CHANNEL_INDEX); - for(ALuint i{0};i < chanmap.channels;++i) + for(uint i{0};i < chanmap.channels;++i) { if(auto label = ChannelFromPulse(chanmap.map[i])) device->RealOut.ChannelIndex[*label] = i; @@ -719,7 +719,7 @@ struct PulsePlayback final : public BackendBase { static void streamMovedCallbackC(pa_stream *stream, void *pdata) noexcept { static_cast<PulsePlayback*>(pdata)->streamMovedCallback(stream); } - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -735,7 +735,7 @@ struct PulsePlayback final : public BackendBase { pa_stream *mStream{nullptr}; pa_context *mContext{nullptr}; - ALuint mFrameSize{0u}; + uint mFrameSize{0u}; DEF_NEWDEL(PulsePlayback) }; @@ -788,7 +788,7 @@ void PulsePlayback::streamWriteCallback(pa_stream *stream, size_t nbytes) noexce buflen = minz(buflen, nbytes); nbytes -= buflen; - mDevice->renderSamples(buf, static_cast<ALuint>(buflen/mFrameSize), mSpec.channels); + mDevice->renderSamples(buf, static_cast<uint>(buflen/mFrameSize), mSpec.channels); int ret{pa_stream_write(stream, buf, buflen, free_func, 0, PA_SEEK_RELATIVE)}; if UNLIKELY(ret != PA_OK) @@ -857,7 +857,7 @@ void PulsePlayback::streamMovedCallback(pa_stream *stream) noexcept } -void PulsePlayback::open(const ALCchar *name) +void PulsePlayback::open(const char *name) { const char *pulse_name{nullptr}; const char *dev_name{nullptr}; @@ -899,7 +899,7 @@ void PulsePlayback::open(const ALCchar *name) BackendType::Playback); pa_stream_set_moved_callback(mStream, &PulsePlayback::streamMovedCallbackC, this); - mFrameSize = static_cast<ALuint>(pa_frame_size(pa_stream_get_sample_spec(mStream))); + mFrameSize = static_cast<uint>(pa_frame_size(pa_stream_get_sample_spec(mStream))); mDeviceName = pa_stream_get_device_name(mStream); if(!dev_name) @@ -1007,7 +1007,7 @@ bool PulsePlayback::reset() if(pa_sample_spec_valid(&mSpec) == 0) throw al::backend_exception{al::backend_error::DeviceError, "Invalid sample spec"}; - const ALuint frame_size{static_cast<ALuint>(pa_frame_size(&mSpec))}; + const auto frame_size = static_cast<uint>(pa_frame_size(&mSpec)); mAttr.maxlength = ~0u; mAttr.tlength = mDevice->BufferSize * frame_size; mAttr.prebuf = 0u; @@ -1021,7 +1021,7 @@ bool PulsePlayback::reset() pa_stream_set_moved_callback(mStream, &PulsePlayback::streamMovedCallbackC, this); mSpec = *(pa_stream_get_sample_spec(mStream)); - mFrameSize = static_cast<ALuint>(pa_frame_size(&mSpec)); + mFrameSize = static_cast<uint>(pa_frame_size(&mSpec)); if(mDevice->Frequency != mSpec.rate) { @@ -1029,10 +1029,10 @@ bool PulsePlayback::reset() * accordingly. */ const auto scale = static_cast<double>(mSpec.rate) / mDevice->Frequency; - const ALuint perlen{static_cast<ALuint>(clampd(scale*mDevice->UpdateSize + 0.5, 64.0, - 8192.0))}; - const ALuint buflen{static_cast<ALuint>(clampd(scale*mDevice->BufferSize + 0.5, perlen*2, - std::numeric_limits<int>::max()/mFrameSize))}; + const auto perlen = static_cast<uint>(clampd(scale*mDevice->UpdateSize + 0.5, 64.0, + 8192.0)); + const auto buflen = static_cast<uint>(clampd(scale*mDevice->BufferSize + 0.5, perlen*2, + std::numeric_limits<int>::max()/mFrameSize)); mAttr.maxlength = ~0u; mAttr.tlength = buflen * mFrameSize; @@ -1148,7 +1148,7 @@ struct PulseCapture final : public BackendBase { static void streamMovedCallbackC(pa_stream *stream, void *pdata) noexcept { static_cast<PulseCapture*>(pdata)->streamMovedCallback(stream); } - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -1212,7 +1212,7 @@ void PulseCapture::streamMovedCallback(pa_stream *stream) noexcept } -void PulseCapture::open(const ALCchar *name) +void PulseCapture::open(const char *name) { const char *pulse_name{nullptr}; if(name) @@ -1288,8 +1288,8 @@ void PulseCapture::open(const ALCchar *name) if(pa_sample_spec_valid(&mSpec) == 0) throw al::backend_exception{al::backend_error::DeviceError, "Invalid sample format"}; - const ALuint frame_size{static_cast<ALuint>(pa_frame_size(&mSpec))}; - const ALuint samples{maxu(mDevice->BufferSize, 100 * mDevice->Frequency / 1000)}; + const auto frame_size = static_cast<uint>(pa_frame_size(&mSpec)); + const uint samples{maxu(mDevice->BufferSize, 100 * mDevice->Frequency / 1000)}; mAttr.minreq = ~0u; mAttr.prebuf = ~0u; mAttr.maxlength = samples * frame_size; diff --git a/alc/backends/sdl2.cpp b/alc/backends/sdl2.cpp index 7563689b..fd695480 100644 --- a/alc/backends/sdl2.cpp +++ b/alc/backends/sdl2.cpp @@ -46,7 +46,7 @@ namespace { #define DEVNAME_PREFIX "" #endif -constexpr ALCchar defaultDeviceName[] = DEVNAME_PREFIX "Default Device"; +constexpr char defaultDeviceName[] = DEVNAME_PREFIX "Default Device"; struct Sdl2Backend final : public BackendBase { Sdl2Backend(ALCdevice *device) noexcept : BackendBase{device} { } @@ -56,7 +56,7 @@ struct Sdl2Backend final : public BackendBase { static void audioCallbackC(void *ptr, Uint8 *stream, int len) noexcept { static_cast<Sdl2Backend*>(ptr)->audioCallback(stream, len); } - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -86,7 +86,7 @@ void Sdl2Backend::audioCallback(Uint8 *stream, int len) noexcept mDevice->renderSamples(stream, ulen / mFrameSize, mDevice->channelsFromFmt()); } -void Sdl2Backend::open(const ALCchar *name) +void Sdl2Backend::open(const char *name) { SDL_AudioSpec want{}, have{}; diff --git a/alc/backends/sndio.cpp b/alc/backends/sndio.cpp index 874e98b9..258eda19 100644 --- a/alc/backends/sndio.cpp +++ b/alc/backends/sndio.cpp @@ -42,7 +42,7 @@ namespace { -static const ALCchar sndio_device[] = "SndIO Default"; +static const char sndio_device[] = "SndIO Default"; struct SndioPlayback final : public BackendBase { @@ -51,7 +51,7 @@ struct SndioPlayback final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -95,7 +95,7 @@ int SndioPlayback::mixerProc() al::byte *WritePtr{mBuffer.data()}; size_t len{mBuffer.size()}; - mDevice->renderSamples(WritePtr, static_cast<ALuint>(len)/frameSize, frameStep); + mDevice->renderSamples(WritePtr, static_cast<uint>(len/frameSize), frameStep); while(len > 0 && !mKillNow.load(std::memory_order_acquire)) { size_t wrote{sio_write(mSndHandle, WritePtr, len)}; @@ -115,7 +115,7 @@ int SndioPlayback::mixerProc() } -void SndioPlayback::open(const ALCchar *name) +void SndioPlayback::open(const char *name) { if(!name) name = sndio_device; @@ -294,7 +294,7 @@ struct SndioCapture final : public BackendBase { int recordProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; @@ -322,10 +322,10 @@ int SndioCapture::recordProc() SetRTPriority(); althrd_setname(RECORD_THREAD_NAME); - const ALuint frameSize{mDevice->frameSizeFromFmt()}; + const uint frameSize{mDevice->frameSizeFromFmt()}; - while(!mKillNow.load(std::memory_order_acquire) && - mDevice->Connected.load(std::memory_order_acquire)) + while(!mKillNow.load(std::memory_order_acquire) + && mDevice->Connected.load(std::memory_order_acquire)) { auto data = mRing->getWriteVector(); size_t todo{data.first.len + data.second.len}; @@ -364,7 +364,7 @@ int SndioCapture::recordProc() } -void SndioCapture::open(const ALCchar *name) +void SndioCapture::open(const char *name) { if(!name) name = sndio_device; diff --git a/alc/backends/solaris.cpp b/alc/backends/solaris.cpp index df62892b..6a2c2da0 100644 --- a/alc/backends/solaris.cpp +++ b/alc/backends/solaris.cpp @@ -39,6 +39,7 @@ #include <functional> #include "alcmain.h" +#include "albyte.h" #include "alexcpt.h" #include "alu.h" #include "alconfig.h" @@ -52,7 +53,7 @@ namespace { -constexpr ALCchar solaris_device[] = "Solaris Default"; +constexpr char solaris_device[] = "Solaris Default"; std::string solaris_driver{"/dev/audio"}; @@ -63,14 +64,14 @@ struct SolarisBackend final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; int mFd{-1}; - al::vector<ALubyte> mBuffer; + al::vector<al::byte> mBuffer; std::atomic<bool> mKillNow{true}; std::thread mThread; @@ -91,10 +92,10 @@ int SolarisBackend::mixerProc() althrd_setname(MIXER_THREAD_NAME); const size_t frame_step{mDevice->channelsFromFmt()}; - const ALuint frame_size{mDevice->frameSizeFromFmt()}; + const uint frame_size{mDevice->frameSizeFromFmt()}; - while(!mKillNow.load(std::memory_order_acquire) && - mDevice->Connected.load(std::memory_order_acquire)) + while(!mKillNow.load(std::memory_order_acquire) + && mDevice->Connected.load(std::memory_order_acquire)) { pollfd pollitem{}; pollitem.fd = mFd; @@ -115,9 +116,9 @@ int SolarisBackend::mixerProc() continue; } - ALubyte *write_ptr{mBuffer.data()}; + al::byte *write_ptr{mBuffer.data()}; size_t to_write{mBuffer.size()}; - mDevice->renderSamples(write_ptr, static_cast<ALuint>(to_write/frame_size), frame_step); + mDevice->renderSamples(write_ptr, static_cast<uint>(to_write/frame_size), frame_step); while(to_write > 0 && !mKillNow.load(std::memory_order_acquire)) { ssize_t wrote{write(mFd, write_ptr, to_write)}; @@ -139,7 +140,7 @@ int SolarisBackend::mixerProc() } -void SolarisBackend::open(const ALCchar *name) +void SolarisBackend::open(const char *name) { if(!name) name = solaris_device; @@ -164,32 +165,32 @@ bool SolarisBackend::reset() if(mDevice->FmtChans != DevFmtMono) mDevice->FmtChans = DevFmtStereo; - ALuint numChannels{mDevice->channelsFromFmt()}; + uint numChannels{mDevice->channelsFromFmt()}; info.play.channels = numChannels; switch(mDevice->FmtType) { - case DevFmtByte: - info.play.precision = 8; - info.play.encoding = AUDIO_ENCODING_LINEAR; - break; - case DevFmtUByte: - info.play.precision = 8; - info.play.encoding = AUDIO_ENCODING_LINEAR8; - break; - case DevFmtUShort: - case DevFmtInt: - case DevFmtUInt: - case DevFmtFloat: - mDevice->FmtType = DevFmtShort; - /* fall-through */ - case DevFmtShort: - info.play.precision = 16; - info.play.encoding = AUDIO_ENCODING_LINEAR; - break; + case DevFmtByte: + info.play.precision = 8; + info.play.encoding = AUDIO_ENCODING_LINEAR; + break; + case DevFmtUByte: + info.play.precision = 8; + info.play.encoding = AUDIO_ENCODING_LINEAR8; + break; + case DevFmtUShort: + case DevFmtInt: + case DevFmtUInt: + case DevFmtFloat: + mDevice->FmtType = DevFmtShort; + /* fall-through */ + case DevFmtShort: + info.play.precision = 16; + info.play.encoding = AUDIO_ENCODING_LINEAR; + break; } - ALuint frameSize{numChannels * mDevice->bytesFromFmt()}; + uint frameSize{numChannels * mDevice->bytesFromFmt()}; info.play.buffer_size = mDevice->BufferSize * frameSize; if(ioctl(mFd, AUDIO_SETINFO, &info) < 0) @@ -222,7 +223,7 @@ bool SolarisBackend::reset() setDefaultChannelOrder(); mBuffer.resize(mDevice->UpdateSize * mDevice->frameSizeFromFmt()); - std::fill(mBuffer.begin(), mBuffer.end(), 0); + std::fill(mBuffer.begin(), mBuffer.end(), al::byte{}); return true; } diff --git a/alc/backends/wasapi.cpp b/alc/backends/wasapi.cpp index 099a05ec..45359bf6 100644 --- a/alc/backends/wasapi.cpp +++ b/alc/backends/wasapi.cpp @@ -122,10 +122,10 @@ constexpr DWORD X71Mask{MaskFromTopBits(X7DOT1)}; /* Scales the given reftime value, rounding the result. */ -inline ALuint RefTime2Samples(const ReferenceTime &val, ALuint srate) +inline uint RefTime2Samples(const ReferenceTime &val, uint srate) { const auto retval = (val*srate + ReferenceTime{seconds{1}}/2) / seconds{1}; - return static_cast<ALuint>(mini64(retval, std::numeric_limits<ALuint>::max())); + return static_cast<uint>(mini64(retval, std::numeric_limits<uint>::max())); } @@ -596,12 +596,12 @@ int WasapiProxy::messageHandler(std::promise<HRESULT> *promise) promise = nullptr; TRACE("Starting message loop\n"); - ALuint deviceCount{0}; + uint deviceCount{0}; Msg msg; while(popMessage(msg)) { TRACE("Got message \"%s\" (0x%04x, this=%p)\n", - MessageStr[static_cast<size_t>(msg.mType)], static_cast<int>(msg.mType), + MessageStr[static_cast<size_t>(msg.mType)], static_cast<uint>(msg.mType), decltype(std::declval<void*>()){msg.mProxy}); switch(msg.mType) @@ -670,7 +670,7 @@ int WasapiProxy::messageHandler(std::promise<HRESULT> *promise) continue; default: - ERR("Unexpected message: %u\n", static_cast<unsigned int>(msg.mType)); + ERR("Unexpected message: %u\n", static_cast<uint>(msg.mType)); msg.mPromise.set_value(E_FAIL); continue; } @@ -687,7 +687,7 @@ struct WasapiPlayback final : public BackendBase, WasapiProxy { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; HRESULT openProxy() override; void closeProxy() override; @@ -744,7 +744,7 @@ FORCE_ALIGN int WasapiPlayback::mixerProc() SetRTPriority(); althrd_setname(MIXER_THREAD_NAME); - const ALuint update_size{mDevice->UpdateSize}; + const uint update_size{mDevice->UpdateSize}; const UINT32 buffer_len{mDevice->BufferSize}; while(!mKillNow.load(std::memory_order_relaxed)) { @@ -758,7 +758,7 @@ FORCE_ALIGN int WasapiPlayback::mixerProc() } mPadding.store(written, std::memory_order_relaxed); - ALuint len{buffer_len - written}; + uint len{buffer_len - written}; if(len < update_size) { DWORD res{WaitForSingleObjectEx(mNotifyEvent, 2000, FALSE)}; @@ -792,7 +792,7 @@ FORCE_ALIGN int WasapiPlayback::mixerProc() } -void WasapiPlayback::open(const ALCchar *name) +void WasapiPlayback::open(const char *name) { HRESULT hr{S_OK}; @@ -1225,7 +1225,7 @@ struct WasapiCapture final : public BackendBase, WasapiProxy { int recordProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; HRESULT openProxy() override; void closeProxy() override; @@ -1311,10 +1311,10 @@ FORCE_ALIGN int WasapiCapture::recordProc() if(mSampleConv) { const void *srcdata{rdata}; - ALuint srcframes{numsamples}; + uint srcframes{numsamples}; dstframes = mSampleConv->convert(&srcdata, &srcframes, data.first.buf, - static_cast<ALuint>(minz(data.first.len, INT_MAX))); + static_cast<uint>(minz(data.first.len, INT_MAX))); if(srcframes > 0 && dstframes == data.first.len && data.second.len > 0) { /* If some source samples remain, all of the first dest @@ -1322,12 +1322,12 @@ FORCE_ALIGN int WasapiCapture::recordProc() * dest block, do another run for the second block. */ dstframes += mSampleConv->convert(&srcdata, &srcframes, data.second.buf, - static_cast<ALuint>(minz(data.second.len, INT_MAX))); + static_cast<uint>(minz(data.second.len, INT_MAX))); } } else { - const auto framesize = static_cast<ALuint>(mDevice->frameSizeFromFmt()); + const uint framesize{mDevice->frameSizeFromFmt()}; size_t len1{minz(data.first.len, numsamples)}; size_t len2{minz(data.second.len, numsamples-len1)}; @@ -1360,7 +1360,7 @@ FORCE_ALIGN int WasapiCapture::recordProc() } -void WasapiCapture::open(const ALCchar *name) +void WasapiCapture::open(const char *name) { HRESULT hr{S_OK}; @@ -1639,7 +1639,7 @@ HRESULT WasapiCapture::resetProxy() if(mDevice->FmtChans == DevFmtMono && InputType.Format.nChannels != 1) { - ALuint chanmask{(1u<<InputType.Format.nChannels) - 1u}; + uint chanmask{(1u<<InputType.Format.nChannels) - 1u}; /* Exclude LFE from the downmix. */ if((InputType.dwChannelMask&SPEAKER_LOW_FREQUENCY)) { @@ -1799,7 +1799,7 @@ bool WasapiBackendFactory::init() catch(...) { } - return SUCCEEDED(InitResult) ? ALC_TRUE : ALC_FALSE; + return SUCCEEDED(InitResult); } bool WasapiBackendFactory::querySupport(BackendType type) diff --git a/alc/backends/wave.cpp b/alc/backends/wave.cpp index b4e38d02..7e076e47 100644 --- a/alc/backends/wave.cpp +++ b/alc/backends/wave.cpp @@ -56,37 +56,40 @@ using std::chrono::seconds; using std::chrono::milliseconds; using std::chrono::nanoseconds; -constexpr ALCchar waveDevice[] = "Wave File Writer"; +using ubyte = unsigned char; +using ushort = unsigned short; -constexpr ALubyte SUBTYPE_PCM[]{ +constexpr char waveDevice[] = "Wave File Writer"; + +constexpr ubyte SUBTYPE_PCM[]{ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }; -constexpr ALubyte SUBTYPE_FLOAT[]{ +constexpr ubyte SUBTYPE_FLOAT[]{ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }; -constexpr ALubyte SUBTYPE_BFORMAT_PCM[]{ +constexpr ubyte SUBTYPE_BFORMAT_PCM[]{ 0x01, 0x00, 0x00, 0x00, 0x21, 0x07, 0xd3, 0x11, 0x86, 0x44, 0xc8, 0xc1, 0xca, 0x00, 0x00, 0x00 }; -constexpr ALubyte SUBTYPE_BFORMAT_FLOAT[]{ +constexpr ubyte SUBTYPE_BFORMAT_FLOAT[]{ 0x03, 0x00, 0x00, 0x00, 0x21, 0x07, 0xd3, 0x11, 0x86, 0x44, 0xc8, 0xc1, 0xca, 0x00, 0x00, 0x00 }; -void fwrite16le(ALushort val, FILE *f) +void fwrite16le(ushort val, FILE *f) { - ALubyte data[2]{ static_cast<ALubyte>(val&0xff), static_cast<ALubyte>((val>>8)&0xff) }; + ubyte data[2]{ static_cast<ubyte>(val&0xff), static_cast<ubyte>((val>>8)&0xff) }; fwrite(data, 1, 2, f); } -void fwrite32le(ALuint val, FILE *f) +void fwrite32le(uint val, FILE *f) { - ALubyte data[4]{ static_cast<ALubyte>(val&0xff), static_cast<ALubyte>((val>>8)&0xff), - static_cast<ALubyte>((val>>16)&0xff), static_cast<ALubyte>((val>>24)&0xff) }; + ubyte data[4]{ static_cast<ubyte>(val&0xff), static_cast<ubyte>((val>>8)&0xff), + static_cast<ubyte>((val>>16)&0xff), static_cast<ubyte>((val>>24)&0xff) }; fwrite(data, 1, 4, f); } @@ -97,7 +100,7 @@ struct WaveBackend final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; @@ -127,7 +130,7 @@ int WaveBackend::mixerProc() althrd_setname(MIXER_THREAD_NAME); const size_t frameStep{mDevice->channelsFromFmt()}; - const ALuint frameSize{mDevice->frameSizeFromFmt()}; + const size_t frameSize{mDevice->frameSizeFromFmt()}; int64_t done{0}; auto start = std::chrono::steady_clock::now(); @@ -151,25 +154,25 @@ int WaveBackend::mixerProc() if /*constexpr*/(!IS_LITTLE_ENDIAN) { - const ALuint bytesize{mDevice->bytesFromFmt()}; + const uint bytesize{mDevice->bytesFromFmt()}; if(bytesize == 2) { - ALushort *samples = reinterpret_cast<ALushort*>(mBuffer.data()); + ushort *samples = reinterpret_cast<ushort*>(mBuffer.data()); const size_t len{mBuffer.size() / 2}; for(size_t i{0};i < len;i++) { - const ALushort samp{samples[i]}; - samples[i] = static_cast<ALushort>((samp>>8) | (samp<<8)); + const ushort samp{samples[i]}; + samples[i] = static_cast<ushort>((samp>>8) | (samp<<8)); } } else if(bytesize == 4) { - ALuint *samples = reinterpret_cast<ALuint*>(mBuffer.data()); + uint *samples = reinterpret_cast<uint*>(mBuffer.data()); const size_t len{mBuffer.size() / 4}; for(size_t i{0};i < len;i++) { - const ALuint samp{samples[i]}; + const uint samp{samples[i]}; samples[i] = (samp>>24) | ((samp>>8)&0x0000ff00) | ((samp<<8)&0x00ff0000) | (samp<<24); } @@ -202,7 +205,7 @@ int WaveBackend::mixerProc() return 0; } -void WaveBackend::open(const ALCchar *name) +void WaveBackend::open(const char *name) { const char *fname{GetConfigValue(nullptr, "wave", "file", "")}; if(!fname[0]) throw al::backend_exception{al::backend_error::NoDevice, @@ -231,8 +234,8 @@ void WaveBackend::open(const ALCchar *name) bool WaveBackend::reset() { - ALuint channels=0, bytes=0, chanmask=0; - int isbformat = 0; + uint channels{0}, bytes{0}, chanmask{0}; + bool isbformat{false}; size_t val; fseek(mFile, 0, SEEK_SET); @@ -246,38 +249,38 @@ bool WaveBackend::reset() switch(mDevice->FmtType) { - case DevFmtByte: - mDevice->FmtType = DevFmtUByte; - break; - case DevFmtUShort: - mDevice->FmtType = DevFmtShort; - break; - case DevFmtUInt: - mDevice->FmtType = DevFmtInt; - break; - case DevFmtUByte: - case DevFmtShort: - case DevFmtInt: - case DevFmtFloat: - break; + case DevFmtByte: + mDevice->FmtType = DevFmtUByte; + break; + case DevFmtUShort: + mDevice->FmtType = DevFmtShort; + break; + case DevFmtUInt: + mDevice->FmtType = DevFmtInt; + break; + case DevFmtUByte: + case DevFmtShort: + case DevFmtInt: + case DevFmtFloat: + break; } switch(mDevice->FmtChans) { - case DevFmtMono: chanmask = 0x04; break; - case DevFmtStereo: chanmask = 0x01 | 0x02; break; - case DevFmtQuad: chanmask = 0x01 | 0x02 | 0x10 | 0x20; break; - case DevFmtX51: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x200 | 0x400; break; - case DevFmtX51Rear: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x010 | 0x020; break; - case DevFmtX61: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x100 | 0x200 | 0x400; break; - case DevFmtX71: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x010 | 0x020 | 0x200 | 0x400; break; - case DevFmtAmbi3D: - /* .amb output requires FuMa */ - mDevice->mAmbiOrder = minu(mDevice->mAmbiOrder, 3); - mDevice->mAmbiLayout = DevAmbiLayout::FuMa; - mDevice->mAmbiScale = DevAmbiScaling::FuMa; - isbformat = 1; - chanmask = 0; - break; + case DevFmtMono: chanmask = 0x04; break; + case DevFmtStereo: chanmask = 0x01 | 0x02; break; + case DevFmtQuad: chanmask = 0x01 | 0x02 | 0x10 | 0x20; break; + case DevFmtX51: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x200 | 0x400; break; + case DevFmtX51Rear: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x010 | 0x020; break; + case DevFmtX61: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x100 | 0x200 | 0x400; break; + case DevFmtX71: chanmask = 0x01 | 0x02 | 0x04 | 0x08 | 0x010 | 0x020 | 0x200 | 0x400; break; + case DevFmtAmbi3D: + /* .amb output requires FuMa */ + mDevice->mAmbiOrder = minu(mDevice->mAmbiOrder, 3); + mDevice->mAmbiLayout = DevAmbiLayout::FuMa; + mDevice->mAmbiScale = DevAmbiScaling::FuMa; + isbformat = true; + chanmask = 0; + break; } bytes = mDevice->bytesFromFmt(); channels = mDevice->channelsFromFmt(); @@ -295,19 +298,19 @@ bool WaveBackend::reset() // 16-bit val, format type id (extensible: 0xFFFE) fwrite16le(0xFFFE, mFile); // 16-bit val, channel count - fwrite16le(static_cast<ALushort>(channels), mFile); + fwrite16le(static_cast<ushort>(channels), mFile); // 32-bit val, frequency fwrite32le(mDevice->Frequency, mFile); // 32-bit val, bytes per second fwrite32le(mDevice->Frequency * channels * bytes, mFile); // 16-bit val, frame size - fwrite16le(static_cast<ALushort>(channels * bytes), mFile); + fwrite16le(static_cast<ushort>(channels * bytes), mFile); // 16-bit val, bits per sample - fwrite16le(static_cast<ALushort>(bytes * 8), mFile); + fwrite16le(static_cast<ushort>(bytes * 8), mFile); // 16-bit val, extra byte count fwrite16le(22, mFile); // 16-bit val, valid bits per sample - fwrite16le(static_cast<ALushort>(bytes * 8), mFile); + fwrite16le(static_cast<ushort>(bytes * 8), mFile); // 32-bit val, channel mask fwrite32le(chanmask, mFile); // 16 byte GUID, sub-type format @@ -328,7 +331,7 @@ bool WaveBackend::reset() setDefaultWFXChannelOrder(); - const ALuint bufsize{mDevice->frameSizeFromFmt() * mDevice->UpdateSize}; + const uint bufsize{mDevice->frameSizeFromFmt() * mDevice->UpdateSize}; mBuffer.resize(bufsize); return true; @@ -357,9 +360,9 @@ void WaveBackend::stop() { long dataLen{size - mDataStart}; if(fseek(mFile, mDataStart-4, SEEK_SET) == 0) - fwrite32le(static_cast<ALuint>(dataLen), mFile); // 'data' header len + fwrite32le(static_cast<uint>(dataLen), mFile); // 'data' header len if(fseek(mFile, 4, SEEK_SET) == 0) - fwrite32le(static_cast<ALuint>(size-8), mFile); // 'WAVE' header len + fwrite32le(static_cast<uint>(size-8), mFile); // 'WAVE' header len } } diff --git a/alc/backends/winmm.cpp b/alc/backends/winmm.cpp index a7c94a07..2474a316 100644 --- a/alc/backends/winmm.cpp +++ b/alc/backends/winmm.cpp @@ -66,9 +66,9 @@ void ProbePlaybackDevices(void) { PlaybackDevices.clear(); - ALuint numdevs{waveOutGetNumDevs()}; + UINT numdevs{waveOutGetNumDevs()}; PlaybackDevices.reserve(numdevs); - for(ALuint i{0};i < numdevs;i++) + for(UINT i{0};i < numdevs;++i) { std::string dname; @@ -97,9 +97,9 @@ void ProbeCaptureDevices(void) { CaptureDevices.clear(); - ALuint numdevs{waveInGetNumDevs()}; + UINT numdevs{waveInGetNumDevs()}; CaptureDevices.reserve(numdevs); - for(ALuint i{0};i < numdevs;i++) + for(UINT i{0};i < numdevs;++i) { std::string dname; @@ -135,14 +135,14 @@ struct WinMMPlayback final : public BackendBase { int mixerProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; bool reset() override; void start() override; void stop() override; - std::atomic<ALuint> mWritable{0u}; + std::atomic<uint> mWritable{0u}; al::semaphore mSem; - ALuint mIdx{0u}; + uint mIdx{0u}; std::array<WAVEHDR,4> mWaveBuffer{}; HWAVEOUT mOutHdl{nullptr}; @@ -184,10 +184,10 @@ FORCE_ALIGN int WinMMPlayback::mixerProc() const size_t frame_step{mDevice->channelsFromFmt()}; - while(!mKillNow.load(std::memory_order_acquire) && - mDevice->Connected.load(std::memory_order_acquire)) + while(!mKillNow.load(std::memory_order_acquire) + && mDevice->Connected.load(std::memory_order_acquire)) { - ALsizei todo = mWritable.load(std::memory_order_acquire); + uint todo{mWritable.load(std::memory_order_acquire)}; if(todo < 1) { mSem.wait(); @@ -203,14 +203,14 @@ FORCE_ALIGN int WinMMPlayback::mixerProc() mWritable.fetch_sub(1, std::memory_order_acq_rel); waveOutWrite(mOutHdl, &waveHdr, sizeof(WAVEHDR)); } while(--todo); - mIdx = static_cast<ALuint>(widx); + mIdx = static_cast<uint>(widx); } return 0; } -void WinMMPlayback::open(const ALCchar *name) +void WinMMPlayback::open(const char *name) { if(PlaybackDevices.empty()) ProbePlaybackDevices(); @@ -263,7 +263,7 @@ retry_open: bool WinMMPlayback::reset() { - mDevice->BufferSize = static_cast<ALuint>(uint64_t{mDevice->BufferSize} * + mDevice->BufferSize = static_cast<uint>(uint64_t{mDevice->BufferSize} * mFormat.nSamplesPerSec / mDevice->Frequency); mDevice->BufferSize = (mDevice->BufferSize+3) & ~0x3u; mDevice->UpdateSize = mDevice->BufferSize / 4; @@ -297,7 +297,7 @@ bool WinMMPlayback::reset() return false; } - ALuint chanmask{}; + uint chanmask{}; if(mFormat.nChannels == 2) { mDevice->FmtChans = DevFmtStereo; @@ -315,7 +315,7 @@ bool WinMMPlayback::reset() } setChannelOrderFromWFXMask(chanmask); - ALuint BufferSize{mDevice->UpdateSize * mDevice->frameSizeFromFmt()}; + uint BufferSize{mDevice->UpdateSize * mDevice->frameSizeFromFmt()}; al_free(mWaveBuffer[0].lpData); mWaveBuffer[0] = WAVEHDR{}; @@ -337,9 +337,8 @@ void WinMMPlayback::start() try { std::for_each(mWaveBuffer.begin(), mWaveBuffer.end(), [this](WAVEHDR &waveHdr) -> void - { waveOutPrepareHeader(mOutHdl, &waveHdr, static_cast<UINT>(sizeof(WAVEHDR))); } - ); - mWritable.store(static_cast<ALuint>(mWaveBuffer.size()), std::memory_order_release); + { waveOutPrepareHeader(mOutHdl, &waveHdr, sizeof(WAVEHDR)); }); + mWritable.store(static_cast<uint>(mWaveBuffer.size()), std::memory_order_release); mKillNow.store(false, std::memory_order_release); mThread = std::thread{std::mem_fn(&WinMMPlayback::mixerProc), this}; @@ -360,8 +359,7 @@ void WinMMPlayback::stop() mSem.wait(); std::for_each(mWaveBuffer.begin(), mWaveBuffer.end(), [this](WAVEHDR &waveHdr) -> void - { waveOutUnprepareHeader(mOutHdl, &waveHdr, sizeof(WAVEHDR)); } - ); + { waveOutUnprepareHeader(mOutHdl, &waveHdr, sizeof(WAVEHDR)); }); mWritable.store(0, std::memory_order_release); } @@ -376,15 +374,15 @@ struct WinMMCapture final : public BackendBase { int captureProc(); - void open(const ALCchar *name) override; + void open(const char *name) override; void start() override; void stop() override; void captureSamples(al::byte *buffer, uint samples) override; uint availableSamples() override; - std::atomic<ALuint> mReadable{0u}; + std::atomic<uint> mReadable{0u}; al::semaphore mSem; - ALuint mIdx{0}; + uint mIdx{0}; std::array<WAVEHDR,4> mWaveBuffer{}; HWAVEIN mInHdl{nullptr}; @@ -429,7 +427,7 @@ int WinMMCapture::captureProc() while(!mKillNow.load(std::memory_order_acquire) && mDevice->Connected.load(std::memory_order_acquire)) { - ALuint todo{mReadable.load(std::memory_order_acquire)}; + uint todo{mReadable.load(std::memory_order_acquire)}; if(todo < 1) { mSem.wait(); @@ -445,14 +443,14 @@ int WinMMCapture::captureProc() mReadable.fetch_sub(1, std::memory_order_acq_rel); waveInAddBuffer(mInHdl, &waveHdr, sizeof(WAVEHDR)); } while(--todo); - mIdx = static_cast<ALuint>(widx); + mIdx = static_cast<uint>(widx); } return 0; } -void WinMMCapture::open(const ALCchar *name) +void WinMMCapture::open(const char *name) { if(CaptureDevices.empty()) ProbeCaptureDevices(); @@ -519,8 +517,8 @@ void WinMMCapture::open(const ALCchar *name) // Allocate circular memory buffer for the captured audio // Make sure circular buffer is at least 100ms in size - ALuint CapturedDataSize{mDevice->BufferSize}; - CapturedDataSize = static_cast<ALuint>(maxz(CapturedDataSize, BufferSize*mWaveBuffer.size())); + uint CapturedDataSize{mDevice->BufferSize}; + CapturedDataSize = static_cast<uint>(maxz(CapturedDataSize, BufferSize*mWaveBuffer.size())); mRing = RingBuffer::Create(CapturedDataSize, mFormat.nBlockAlign, false); |