33 |
#include "../common/RingBuffer.h" |
#include "../common/RingBuffer.h" |
34 |
#include "../drivers/audio/AudioOutputDevice.h" |
#include "../drivers/audio/AudioOutputDevice.h" |
35 |
#include "common/Event.h" |
#include "common/Event.h" |
36 |
|
#include "common/SignalUnitRack.h" |
37 |
|
|
38 |
namespace LinuxSampler { |
namespace LinuxSampler { |
39 |
|
|
65 |
|
|
66 |
void SetVoiceCount(uint Count);// Simple array wrapper just to make sure memory is freed |
void SetVoiceCount(uint Count);// Simple array wrapper just to make sure memory is freed |
67 |
// when liblinuxsampler is unloaded |
// when liblinuxsampler is unloaded |
68 |
|
|
69 |
class FloatTable { |
class FloatTable { |
70 |
private: |
private: |
71 |
const float* array; |
const float* array; |
105 |
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
106 |
atomic_t ActiveVoiceCount; ///< number of currently active voices |
atomic_t ActiveVoiceCount; ///< number of currently active voices |
107 |
int VoiceSpawnsLeft; ///< We only allow CONFIG_MAX_VOICES voices to be spawned per audio fragment, we use this variable to ensure this limit. |
int VoiceSpawnsLeft; ///< We only allow CONFIG_MAX_VOICES voices to be spawned per audio fragment, we use this variable to ensure this limit. |
108 |
|
EqSupport* pEq; ///< Used for per voice equalization |
109 |
|
|
110 |
void RouteAudio(EngineChannel* pEngineChannel, uint Samples); |
void RouteAudio(EngineChannel* pEngineChannel, uint Samples); |
111 |
void RouteDedicatedVoiceChannels(EngineChannel* pEngineChannel, optional<float> FxSendLevels[2], uint Samples); |
void RouteDedicatedVoiceChannels(EngineChannel* pEngineChannel, optional<float> FxSendLevels[2], uint Samples); |