aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/qsa.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2019-10-07 21:37:56 -0700
committerChris Robinson <[email protected]>2019-10-07 21:37:56 -0700
commit02d80cd74dd7b4517550af2f4ea22c409323a1d9 (patch)
treef72a927a6565d76dc7087f1a15f82733d92b4155 /alc/backends/qsa.cpp
parentf8ff4e269bf04aae1c430dbb218b4f4f6605df45 (diff)
Use exceptions for backend open failures
Diffstat (limited to 'alc/backends/qsa.cpp')
-rw-r--r--alc/backends/qsa.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/alc/backends/qsa.cpp b/alc/backends/qsa.cpp
index 5fee2989..872a8541 100644
--- a/alc/backends/qsa.cpp
+++ b/alc/backends/qsa.cpp
@@ -34,6 +34,7 @@
#include <algorithm>
#include "alcmain.h"
+#include "alexcpt.h"
#include "alu.h"
#include "threads.h"
@@ -174,7 +175,7 @@ struct PlaybackWrapper final : public BackendBase {
PlaybackWrapper(ALCdevice *device) noexcept : BackendBase{device} { }
~PlaybackWrapper() override;
- ALCenum open(const ALCchar *name) override;
+ void open(const ALCchar *name) override;
bool reset() override;
bool start() override;
void stop() override;
@@ -613,11 +614,18 @@ PlaybackWrapper::~PlaybackWrapper()
qsa_close_playback(this);
}
-ALCenum PlaybackWrapper::open(const ALCchar *name)
-{ return qsa_open_playback(this, name); }
+void PlaybackWrapper::open(const ALCchar *name)
+{
+ if(auto err = qsa_open_playback(this, name))
+ throw al::backend_exception{ALC_INVALID_VALUE, "%d", err};
+}
bool PlaybackWrapper::reset()
-{ return qsa_reset_playback(this); }
+{
+ if(!qsa_reset_playback(this))
+ throw al::backend_exception{ALC_INVALID_VALUE, ""};
+ return true;
+}
bool PlaybackWrapper::start()
{ return qsa_start_playback(this); }
@@ -634,7 +642,7 @@ struct CaptureWrapper final : public BackendBase {
CaptureWrapper(ALCdevice *device) noexcept : BackendBase{device} { }
~CaptureWrapper() override;
- ALCenum open(const ALCchar *name) override;
+ void open(const ALCchar *name) override;
bool start() override;
void stop() override;
ALCenum captureSamples(al::byte *buffer, ALCuint samples) override;
@@ -891,8 +899,11 @@ CaptureWrapper::~CaptureWrapper()
qsa_close_capture(this);
}
-ALCenum CaptureWrapper::open(const ALCchar *name)
-{ return qsa_open_capture(this, name); }
+void CaptureWrapper::open(const ALCchar *name)
+{
+ if(auto err = qsa_open_capture(this, name))
+ throw al::backend_exception{ALC_INVALID_VALUE, "%d", err};
+}
bool CaptureWrapper::start()
{ qsa_start_capture(this); return true; }