@@ -3286,85 +3286,73 @@ qtractorPluginList *qtractorAudioBus::pluginList_out (void) const
32863286// Audio I/O port latency accessors.
32873287unsigned int qtractorAudioBus::latency_in (void ) const
32883288{
3289- if (m_ppIPorts == nullptr )
3290- return 0 ;
3291-
32923289 qtractorAudioEngine *pAudioEngine
32933290 = static_cast <qtractorAudioEngine *> (engine ());
32943291 if (pAudioEngine == nullptr )
32953292 return 0 ;
32963293
3297- unsigned int iLatencyIn = 0 ;
3294+ unsigned int iLatencyIn = pAudioEngine-> bufferSize () ;
32983295
3299- #ifdef CONFIG_JACK_LATENCY
3300- jack_nframes_t range_max = 0 ;
3301- jack_latency_range_t range;
3302- for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3303- if (m_ppIPorts[i] == nullptr )
3304- continue ;
3305- jack_port_get_latency_range (m_ppIPorts[i], JackCaptureLatency, &range);
3306- if (range_max > range.max || i == 0 )
3307- range_max = range.max ;
3308- }
3309- iLatencyIn += range_max;
3310- #else
3311- jack_nframes_t lat, lat_min = 0 ;
3312- for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3313- if (m_ppIPorts[i] == nullptr )
3314- continue ;
3315- lat = jack_port_get_latency (m_ppIPorts[i]);
3316- if (lat_max > lat || i == 0 )
3317- lat_max = lat;
3296+ if (m_ppIPorts) {
3297+ #ifdef CONFIG_JACK_LATENCY
3298+ jack_nframes_t range_max = 0 ;
3299+ jack_latency_range_t range;
3300+ for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3301+ if (m_ppIPorts[i] == nullptr )
3302+ continue ;
3303+ jack_port_get_latency_range (m_ppIPorts[i], JackCaptureLatency, &range);
3304+ if (range_max > range.max || i == 0 )
3305+ range_max = range.max ;
3306+ }
3307+ iLatencyIn += range_max;
3308+ #else
3309+ jack_nframes_t lat, lat_min = 0 ;
3310+ for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3311+ if (m_ppIPorts[i] == nullptr )
3312+ continue ;
3313+ lat = jack_port_get_latency (m_ppIPorts[i]);
3314+ if (lat_max > lat || i == 0 )
3315+ lat_max = lat;
3316+ }
3317+ iLatencyIn += lat_max;
3318+ #endif
33183319 }
3319- iLatencyIn += lat_max;
3320- #endif
3321-
3322- const unsigned int iBufferSize = pAudioEngine->bufferSize ();
3323- if (iLatencyIn < iBufferSize)
3324- iLatencyIn += iBufferSize;
3325-
33263320 return iLatencyIn;
33273321}
33283322
33293323unsigned int qtractorAudioBus::latency_out (void ) const
33303324{
3331- if (m_ppOPorts == nullptr )
3332- return 0 ;
3333-
33343325 qtractorAudioEngine *pAudioEngine
33353326 = static_cast <qtractorAudioEngine *> (engine ());
33363327 if (pAudioEngine == nullptr )
33373328 return 0 ;
33383329
3339- unsigned int iLatencyOut = 0 ;
3330+ unsigned int iLatencyOut = pAudioEngine-> bufferSize () ;
33403331
3341- #ifdef CONFIG_JACK_LATENCY
3342- jack_nframes_t range_max = 0 ;
3343- jack_latency_range_t range;
3344- for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3345- if (m_ppOPorts[i] == nullptr )
3346- continue ;
3347- jack_port_get_latency_range (m_ppOPorts[i], JackPlaybackLatency, &range);
3348- if (range_max > range.max || i == 0 )
3349- range_max = range.max ;
3350- }
3351- iLatencyOut += range_max;
3352- #else
3353- jack_nframes_t lat, lat_max = 0 ;
3354- for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3355- if (m_ppOPorts[i] == nullptr )
3356- continue ;
3357- lat = jack_port_get_latency (m_ppOPorts[i]);
3358- if (lat_max > lat || i == 0 )
3359- lat_max = lat;
3332+ if (m_ppOPorts) {
3333+ #ifdef CONFIG_JACK_LATENCY
3334+ jack_nframes_t range_max = 0 ;
3335+ jack_latency_range_t range;
3336+ for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3337+ if (m_ppOPorts[i] == nullptr )
3338+ continue ;
3339+ jack_port_get_latency_range (m_ppOPorts[i], JackPlaybackLatency, &range);
3340+ if (range_max > range.max || i == 0 )
3341+ range_max = range.max ;
3342+ }
3343+ iLatencyOut += range_max;
3344+ #else
3345+ jack_nframes_t lat, lat_max = 0 ;
3346+ for (unsigned int i = 0 ; i < m_iChannels; ++i) {
3347+ if (m_ppOPorts[i] == nullptr )
3348+ continue ;
3349+ lat = jack_port_get_latency (m_ppOPorts[i]);
3350+ if (lat_max > lat || i == 0 )
3351+ lat_max = lat;
3352+ }
3353+ iLatencyOut += lat_max;
3354+ #endif
33603355 }
3361- iLatencyOut += lat_max;
3362- #endif
3363-
3364- const unsigned int iBufferSize = pAudioEngine->bufferSize ();
3365- if (iLatencyOut < iBufferSize)
3366- iLatencyOut += iBufferSize;
3367-
33683356 return iLatencyOut;
33693357}
33703358
0 commit comments