25#ifndef LMMS_AUDIO_JACK_H
26#define LMMS_AUDIO_JACK_H
28#include "lmmsconfig.h"
31#ifndef LMMS_HAVE_WEAKJACK
34#include <weak_libjack.h>
39#ifdef AUDIO_BUS_HANDLE_SUPPORT
45#ifdef AUDIO_BUS_HANDLE_SUPPORT
73 inline static QString
name()
75 return QT_TRANSLATE_NOOP(
"AudioDeviceSetupWidget",
"JACK (JACK Audio Connection Kit)");
88 static QMenu*
buildMenu(QToolButton* toolButton,
const std::vector<std::string>& names,
const QString& filteredLMMSClientName);
106 void attemptToConnect(
size_t index,
const char *lmms_port_type,
const char *source_port,
const char *destination_port);
137#ifdef AUDIO_BUS_HANDLE_SUPPORT
140 jack_port_t* ports[2];
143 using JackPortMap = QMap<AudioBusHandle*, StereoPort>;
144 JackPortMap m_portMap;
Job between PlayHandle and MixerChannel.
Definition AudioBusHandle.h:55
AudioEngine * audioEngine()
Definition AudioDevice.h:121
AudioDevice(const ch_cnt_t _channels, AudioEngine *audioEngine)
Definition AudioDevice.cpp:33
Definition AudioEngine.h:66
void renamePort(AudioBusHandle *port) override
Definition AudioJack.cpp:371
std::vector< jack_port_t * > m_outputPorts
Definition AudioJack.h:128
std::atomic< MidiJack * > m_midiClient
Definition AudioJack.h:127
bool m_active
Definition AudioJack.h:124
int processCallback(jack_nframes_t nframes)
Definition AudioJack.cpp:394
void attemptToReconnectOutput(size_t outputIndex, const QString &targetPort)
Definition AudioJack.cpp:259
jack_default_audio_sample_t ** m_tempOutBufs
Definition AudioJack.h:130
~AudioJack() override
Definition AudioJack.cpp:119
jack_client_t * jackClient()
Definition AudioJack.h:71
SampleFrame * m_outBuf
Definition AudioJack.h:132
void unregisterPort(AudioBusHandle *port) override
Definition AudioJack.cpp:355
void restartAfterZombified()
Definition AudioJack.cpp:143
std::vector< SampleFrame > m_inputFrameBuffer
Definition AudioJack.h:131
void registerPort(AudioBusHandle *port) override
Definition AudioJack.cpp:335
void resizeInputBuffer(jack_nframes_t nframes)
Definition AudioJack.cpp:241
f_cnt_t m_framesToDoInCurBuf
Definition AudioJack.h:135
void startProcessing() override
Definition AudioJack.cpp:292
AudioJack(bool &successful, AudioEngine *audioEngine)
Definition AudioJack.cpp:94
std::atomic< bool > m_stopped
Definition AudioJack.h:125
static QString name()
Definition AudioJack.h:73
f_cnt_t m_framesDoneInCurBuf
Definition AudioJack.h:134
static void shutdownCallback(void *_udata)
Definition AudioJack.cpp:485
void removeMidiClient()
Definition AudioJack.h:70
void attemptToReconnectInput(size_t inputIndex, const QString &sourcePort)
Definition AudioJack.cpp:275
jack_client_t * m_client
Definition AudioJack.h:122
AudioJack * addMidiClient(MidiJack *midiClient)
Definition AudioJack.cpp:169
static int staticProcessCallback(jack_nframes_t nframes, void *udata)
Definition AudioJack.cpp:477
void stopProcessing() override
Definition AudioJack.cpp:330
std::vector< jack_port_t * > m_inputPorts
Definition AudioJack.h:129
void attemptToConnect(size_t index, const char *lmms_port_type, const char *source_port, const char *destination_port)
Definition AudioJack.cpp:246
bool initJackClient()
Definition AudioJack.cpp:179
Definition SampleFrame.h:41
static uintptr_t parent
Definition pugl.h:1644
struct _jack_client jack_client_t
Definition jack-enum-test-func.cpp:69
uint32_t jack_nframes_t
Definition jack-enum-test-func.cpp:38
Definition AudioAlsa.cpp:35
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43