MCPcopy Create free account
hub / github.com/LabSound/LabSound / AudioHardwareDeviceNode

Class AudioHardwareDeviceNode

include/LabSound/core/AudioHardwareDeviceNode.h:19–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17struct AudioSourceProvider;
18
19class AudioHardwareDeviceNode : public AudioNode, public AudioDeviceRenderCallback
20{
21protected:
22 // AudioNode interface
23 virtual double tailTime(ContextRenderLock & r) const override { return 0; }
24 virtual double latencyTime(ContextRenderLock & r) const override { return 0; }
25
26 AudioContext * m_context = nullptr;
27
28 // Platform specific implementation
29 std::unique_ptr<AudioDevice> m_platformAudioDevice;
30 AudioHardwareInput * m_audioHardwareInput = nullptr;
31 SamplingInfo last_info = {};
32
33 const AudioStreamConfig outConfig = {};
34 const AudioStreamConfig inConfig = {};
35
36public:
37 AudioHardwareDeviceNode(AudioContext & context,
38 const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig);
39 virtual ~AudioHardwareDeviceNode();
40
41 static const char* static_name() { return "AudioHardwareDevice"; }
42 virtual const char* name() const override { return static_name(); }
43 static AudioNodeDescriptor * desc();
44
45 // AudioNode interface
46 // process should never be called
47 virtual void process(ContextRenderLock &, int bufferSize) override {}
48 virtual void reset(ContextRenderLock &) override;
49 virtual void initialize() override;
50 virtual void uninitialize() override;
51
52 virtual void backendReinitialize();
53
54 // AudioDeviceRenderCallback interface
55 virtual void render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) override;
56 virtual void start() override;
57 virtual void stop() override;
58 virtual bool isRunning() const override;
59 virtual const SamplingInfo & getSamplingInfo() const override;
60 virtual const AudioStreamConfig & getOutputConfig() const override;
61 virtual const AudioStreamConfig & getInputConfig() const override;
62
63 AudioSourceProvider * AudioHardwareInputProvider();
64};
65
66} // namespace lab
67

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected