blob: 6114fbf823a52ba51a21c1d7a7e19c4647c6225c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/*
* WineSoundDeviceStub.h
* ---------------------
* Purpose: Stub sound device driver class connection to WineSupport Wrapper.
* Notes : (currently none)
* Authors: OpenMPT Devs
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
*/
#pragma once
#include "openmpt/all/BuildSettings.hpp"
#include "openmpt/sounddevice/SoundDeviceBase.hpp"
#include "../common/ComponentManager.h"
extern "C" {
typedef struct OpenMPT_Wine_Wrapper_SoundDevice OpenMPT_Wine_Wrapper_SoundDevice;
};
OPENMPT_NAMESPACE_BEGIN
class ComponentWineWrapper;
namespace SoundDevice {
class SoundDeviceStub
: public SoundDevice::IBase
{
public:
static std::unique_ptr<SoundDevice::BackendInitializer> BackendInitializer() { return std::make_unique< SoundDevice::BackendInitializer>(); }
static std::vector<SoundDevice::Info> EnumerateDevices(ILogger &logger, SoundDevice::SysInfo sysInfo);
public:
SoundDeviceStub(ILogger &logger, SoundDevice::Info info, SoundDevice::SysInfo sysInfo);
virtual ~SoundDeviceStub();
public:
virtual void SetCallback(SoundDevice::ICallback *callback);
virtual void SetMessageReceiver(SoundDevice::IMessageReceiver *receiver);
virtual SoundDevice::Info GetDeviceInfo() const;
virtual SoundDevice::Caps GetDeviceCaps() const;
virtual SoundDevice::DynamicCaps GetDeviceDynamicCaps(const std::vector<uint32> &baseSampleRates);
virtual bool Init(const SoundDevice::AppInfo &appInfo);
virtual bool Open(const SoundDevice::Settings &settings);
virtual bool Close();
virtual bool Start();
virtual void Stop();
virtual FlagSet<RequestFlags> GetRequestFlags() const;
virtual bool IsInited() const;
virtual bool IsOpen() const;
virtual bool IsAvailable() const;
virtual bool IsPlaying() const;
virtual bool IsPlayingSilence() const;
virtual void StopAndAvoidPlayingSilence();
virtual void EndPlayingSilence();
virtual bool OnIdle();
virtual SoundDevice::Settings GetSettings() const;
virtual SampleFormat GetActualSampleFormat() const;
virtual SoundDevice::BufferAttributes GetEffectiveBufferAttributes() const;
virtual SoundDevice::TimeInfo GetTimeInfo() const;
virtual SoundDevice::StreamPosition GetStreamPosition() const;
virtual bool DebugIsFragileDevice() const;
virtual bool DebugInRealtimeCallback() const;
virtual SoundDevice::Statistics GetStatistics() const;
virtual bool OpenDriverSettings();
private:
ComponentHandle<ComponentWineWrapper> w;
OpenMPT_Wine_Wrapper_SoundDevice * impl;
};
} // namespace SoundDevice
OPENMPT_NAMESPACE_END
|