Go to the documentation of this file. 1 #ifndef AUDIOOUTPUTJACK
2 #define AUDIOOUTPUTJACK
5 #include <QCoreApplication>
8 #include <jack/statistics.h>
36 void WriteAudio(
unsigned char *aubuf,
int size)
override;
jack_client_t * m_staleClient
static jack_client_t * JackClientOpen(void)
const char ** JackGetPorts(void)
void JackClientClose(jack_client_t **client)
bool JackConnectPorts(const char **)
bool OpenDevice(void) override
int JackGraphOrderCallback()
bool StartOutputThread(void) override
void StopOutputThread(void) override
std::array< int, JACK_CHANNELS_MAX > jack_vol_array
int JackCallback(jack_nframes_t nframes)
AudioOutputSettings * GetOutputSettings(bool digital) override
int GetBufferedOnSoundcard(void) const override
Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback lat...
static int JackCallbackHelper(jack_nframes_t nframes, void *arg)
void WriteAudio(unsigned char *aubuf, int size) override
static constexpr int8_t JACK_CHANNELS_MAX
static int JackXRunCallbackHelper(void *arg)
Q_DECLARE_TR_FUNCTIONS(AudioOutputJACK)
static constexpr int8_t JACK_CHANNELS_MIN
maximum number of channels supported, avoids lots of mallocs
void DeinterleaveAudio(const float *aubuf, float **bufs, int nframes, const jack_vol_array &channel_volumes)
jack_vol_array m_chanVolumes
static int JackGraphOrderCallbackHelper(void *arg)
void CloseDevice(void) override
AudioOutputJACK(const AudioSettings &settings)
std::array< jack_port_t *, JACK_CHANNELS_MAX > jack_port_array
void SetVolumeChannel(int channel, int volume) override
~AudioOutputJACK() override
int GetVolumeChannel(int channel) const override