diff options
Diffstat (limited to 'Alc/backends/base.h')
-rw-r--r-- | Alc/backends/base.h | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/Alc/backends/base.h b/Alc/backends/base.h deleted file mode 100644 index 437e31d9..00000000 --- a/Alc/backends/base.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef ALC_BACKENDS_BASE_H -#define ALC_BACKENDS_BASE_H - -#include <memory> -#include <chrono> -#include <string> -#include <mutex> - -#include "alcmain.h" - - -struct ClockLatency { - std::chrono::nanoseconds ClockTime; - std::chrono::nanoseconds Latency; -}; - -/* Helper to get the current clock time from the device's ClockBase, and - * SamplesDone converted from the sample rate. - */ -inline std::chrono::nanoseconds GetDeviceClockTime(ALCdevice *device) -{ - using std::chrono::seconds; - using std::chrono::nanoseconds; - - auto ns = nanoseconds{seconds{device->SamplesDone}} / device->Frequency; - return device->ClockBase + ns; -} - -ClockLatency GetClockLatency(ALCdevice *device); - -struct BackendBase { - virtual ALCenum open(const ALCchar *name) = 0; - - virtual ALCboolean reset(); - virtual ALCboolean start() = 0; - virtual void stop() = 0; - - virtual ALCenum captureSamples(void *buffer, ALCuint samples); - virtual ALCuint availableSamples(); - - virtual ClockLatency getClockLatency(); - - virtual void lock() { mMutex.lock(); } - virtual void unlock() { mMutex.unlock(); } - - ALCdevice *mDevice; - - std::recursive_mutex mMutex; - - BackendBase(ALCdevice *device) noexcept; - virtual ~BackendBase(); -}; -using BackendPtr = std::unique_ptr<BackendBase>; -using BackendUniqueLock = std::unique_lock<BackendBase>; -using BackendLockGuard = std::lock_guard<BackendBase>; - -enum class BackendType { - Playback, - Capture -}; - -enum class DevProbe { - Playback, - Capture -}; - - -struct BackendFactory { - virtual bool init() = 0; - - virtual bool querySupport(BackendType type) = 0; - - virtual void probe(DevProbe type, std::string *outnames) = 0; - - virtual BackendPtr createBackend(ALCdevice *device, BackendType type) = 0; -}; - -#endif /* ALC_BACKENDS_BASE_H */ |