blob: 2bc315ed2d8f3b2e78720dc3af557fbdccbdc535 (
plain)
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
|
#ifndef SOUNDDEVICENETWORK_H
#define SOUNDDEVICENETWORK_H
#include <QString>
#include "soundio/sounddevice.h"
#define CPU_USAGE_UPDATE_RATE 30 // in 1/s, fits to display frame rate
#define CPU_OVERLOAD_DURATION 500 // in ms
class SoundManager;
class EngineNetworkStream;
class SoundDeviceNetwork : public SoundDevice {
public:
SoundDeviceNetwork(UserSettingsPointer config,
SoundManager *sm,
QSharedPointer<EngineNetworkStream> pNetworkStream);
virtual ~SoundDeviceNetwork();
virtual SoundDeviceError open(bool isClkRefDevice, int syncBuffers);
virtual bool isOpen() const;
virtual SoundDeviceError close();
virtual void readProcess();
virtual void writeProcess();
virtual QString getError() const;
virtual unsigned int getDefaultSampleRate() const {
return 44100;
}
private:
QSharedPointer<EngineNetworkStream> m_pNetworkStream;
FIFO<CSAMPLE>* m_outputFifo;
FIFO<CSAMPLE>* m_inputFifo;
bool m_outputDrift;
bool m_inputDrift;
static volatile int m_underflowHappened;
};
#endif // SOUNDDEVICENETWORK_H
|