From eeec3f866469f5179a81bdfe68a9bd21c12c7278 Mon Sep 17 00:00:00 2001 From: zserik Date: Mon, 21 Dec 2020 11:05:33 +0100 Subject: [PATCH] Fix compilation with 'AUDIO_PORT_SUPPORT' defined (#5841) Co-authored-by: PhysSong --- CMakeLists.txt | 7 +++++++ src/core/audio/AudioJack.cpp | 13 +++++++++---- src/lmmsconfig.h.in | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ef89f575..432c93c18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -448,11 +448,18 @@ IF(WANT_JACK) # use dlsym instead SET(JACK_LIBRARIES ${CMAKE_DL_LIBS}) SET(LMMS_HAVE_JACK TRUE) + SET(LMMS_HAVE_JACK_PRENAME TRUE) SET(JACK_FOUND TRUE) ELSE() PKG_CHECK_MODULES(JACK jack>=0.77) IF(JACK_FOUND) + SET(LMMS_HAVE_JACK TRUE) SET(STATUS_JACK "OK") + SET(CMAKE_REQUIRED_LIBRARIES_BACKUP "${CMAKE_REQUIRED_LIBRARIES}") + SET(CMAKE_REQUIRED_LIBRARIES "${JACK_LIBRARIES}") + CHECK_LIBRARY_EXISTS(jack jack_port_rename "" LMMS_HAVE_JACK_PRENAME) + SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_BACKUP}") + UNSET(CMAKE_REQUIRED_LIBRARIES_BACKUP) ENDIF() ENDIF() diff --git a/src/core/audio/AudioJack.cpp b/src/core/audio/AudioJack.cpp index 7e7b703a1..8c03b328d 100644 --- a/src/core/audio/AudioJack.cpp +++ b/src/core/audio/AudioJack.cpp @@ -329,8 +329,13 @@ void AudioJack::renamePort( AudioPort * _port ) _port->name() + " R" }; for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch ) { +#ifdef LMMS_HAVE_JACK_PRENAME + jack_port_rename( m_client, m_portMap[_port].ports[ch], + name[ch].toLatin1().constData() ); +#else jack_port_set_name( m_portMap[_port].ports[ch], name[ch].toLatin1().constData() ); +#endif } } #endif @@ -359,22 +364,22 @@ int AudioJack::processCallback( jack_nframes_t _nframes, void * _udata ) #ifdef AUDIO_PORT_SUPPORT const int frames = qMin( _nframes, mixer()->framesPerPeriod() ); - for( jackPortMap::iterator it = m_portMap.begin(); + for( JackPortMap::iterator it = m_portMap.begin(); it != m_portMap.end(); ++it ) { for( ch_cnt_t ch = 0; ch < channels(); ++ch ) { - if( it.data().ports[ch] == NULL ) + if( it.value().ports[ch] == NULL ) { continue; } jack_default_audio_sample_t * buf = (jack_default_audio_sample_t *) jack_port_get_buffer( - it.data().ports[ch], + it.value().ports[ch], _nframes ); for( int frame = 0; frame < frames; ++frame ) { - buf[frame] = it.key()->firstBuffer()[frame][ch]; + buf[frame] = it.key()->buffer()[frame][ch]; } } } diff --git a/src/lmmsconfig.h.in b/src/lmmsconfig.h.in index 86882d22e..9ed3a496b 100644 --- a/src/lmmsconfig.h.in +++ b/src/lmmsconfig.h.in @@ -12,6 +12,7 @@ #cmakedefine LMMS_HAVE_ALSA #cmakedefine LMMS_HAVE_FLUIDSYNTH #cmakedefine LMMS_HAVE_JACK +#cmakedefine LMMS_HAVE_JACK_PRENAME #cmakedefine LMMS_HAVE_WEAKJACK #cmakedefine LMMS_HAVE_LV2 #cmakedefine LMMS_HAVE_SUIL