aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/wave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alc/backends/wave.cpp')
-rw-r--r--alc/backends/wave.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/alc/backends/wave.cpp b/alc/backends/wave.cpp
index 1b40640c..794d5cb8 100644
--- a/alc/backends/wave.cpp
+++ b/alc/backends/wave.cpp
@@ -32,19 +32,18 @@
#include <exception>
#include <functional>
#include <thread>
+#include <vector>
#include "albit.h"
-#include "albyte.h"
#include "alc/alconfig.h"
#include "almalloc.h"
#include "alnumeric.h"
+#include "althrd_setname.h"
#include "core/device.h"
#include "core/helpers.h"
#include "core/logging.h"
#include "opthelpers.h"
#include "strutils.h"
-#include "threads.h"
-#include "vector.h"
namespace {
@@ -97,7 +96,7 @@ struct WaveBackend final : public BackendBase {
int mixerProc();
- void open(const char *name) override;
+ void open(std::string_view name) override;
bool reset() override;
void start() override;
void stop() override;
@@ -105,7 +104,7 @@ struct WaveBackend final : public BackendBase {
FILE *mFile{nullptr};
long mDataStart{-1};
- al::vector<al::byte> mBuffer;
+ std::vector<std::byte> mBuffer;
std::atomic<bool> mKillNow{true};
std::thread mThread;
@@ -155,13 +154,13 @@ int WaveBackend::mixerProc()
if(bytesize == 2)
{
- const size_t len{mBuffer.size() & ~size_t{1}};
+ const size_t len{mBuffer.size() & ~1_uz};
for(size_t i{0};i < len;i+=2)
std::swap(mBuffer[i], mBuffer[i+1]);
}
else if(bytesize == 4)
{
- const size_t len{mBuffer.size() & ~size_t{3}};
+ const size_t len{mBuffer.size() & ~3_uz};
for(size_t i{0};i < len;i+=4)
{
std::swap(mBuffer[i ], mBuffer[i+3]);
@@ -195,24 +194,24 @@ int WaveBackend::mixerProc()
return 0;
}
-void WaveBackend::open(const char *name)
+void WaveBackend::open(std::string_view name)
{
auto fname = ConfigValueStr(nullptr, "wave", "file");
if(!fname) throw al::backend_exception{al::backend_error::NoDevice,
"No wave output filename"};
- if(!name)
+ if(name.empty())
name = waveDevice;
- else if(strcmp(name, waveDevice) != 0)
- throw al::backend_exception{al::backend_error::NoDevice, "Device name \"%s\" not found",
- name};
+ else if(name != waveDevice)
+ throw al::backend_exception{al::backend_error::NoDevice, "Device name \"%.*s\" not found",
+ static_cast<int>(name.length()), name.data()};
/* There's only one "device", so if it's already open, we're done. */
if(mFile) return;
#ifdef _WIN32
{
- std::wstring wname{utf8_to_wstr(fname->c_str())};
+ std::wstring wname{utf8_to_wstr(fname.value())};
mFile = _wfopen(wname.c_str(), L"wb");
}
#else