Glib::Threads::Mutex _devicelist_update_lock;
gint _stop_hw_devicelist_processing;
uint32_t _start_cnt;
+ uint32_t _init_countdown;
void start_hw_event_processing();
void stop_hw_event_processing();
, _hw_devicelist_update_count(0)
, _stop_hw_devicelist_processing(0)
, _start_cnt (0)
+ , _init_countdown (0)
#ifdef SILENCE_AFTER_SECONDS
, _silence_countdown (0)
, _silence_hit_cnt (0)
thread_init_callback (NULL);
}
+ if (_session && _init_countdown > 0) {
+ --_init_countdown;
+ /* Warm up caches */
+ PortManager::cycle_start (nframes);
+ PortManager::silence (nframes);
+ _session->process (nframes);
+ PortManager::cycle_end (nframes);
+ return 0;
+ }
+
bool return_after_remove_check = false;
if (_measuring_latency == MeasureAudio && _mtdm) {
SessionHandlePtr::set_session (s);
if (_session) {
-
- pframes_t blocksize = samples_per_cycle ();
-
- PortManager::cycle_start (blocksize);
-
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
- _session->process (blocksize);
-
- PortManager::cycle_end (blocksize);
+ _init_countdown = 8;
}
}