bool ret;
Glib::Mutex::Lock lm (_peaks_ready_lock);
- /* check to see if the peak data is ready. if not
- connect the slot while still holding the lock.
- */
-
if (!(ret = _peaks_built)) {
*connect_here_if_not = new ScopedConnection;
PeaksReady.connect (**connect_here_if_not, MISSING_INVALIDATOR, doThisWhenReady, event_loop);
}
done_with_peakfile_writes ((cnt == 0));
- }
-
- {
- Glib::Mutex::Lock lm (_peaks_ready_lock);
-
- if (_peaks_built) {
- PeaksReady (); /* EMIT SIGNAL */
+ if (cnt == 0) {
ret = 0;
}
}
}
if (done) {
+ Glib::Mutex::Lock lm (_peaks_ready_lock);
_peaks_built = true;
+ PeaksReady (); /* EMIT SIGNAL */
}
delete _peakfile_descriptor;
_read_data_count = 0;
}
}
+
+void
+AudioSource::mark_streaming_write_completed ()
+{
+ Glib::Mutex::Lock lm (_peaks_ready_lock);
+
+ if (_peaks_built) {
+ PeaksReady (); /* EMIT SIGNAL */
+ }
+}