}
virtual int setup_peakfile () { return 0; }
+ int close_peakfile ();
int prepare_for_peakfile_writes ();
void done_with_peakfile_writes (bool done = true);
std::string _peakpath;
std::string _captured_for;
- int initialize_peakfile (const std::string& path);
+ int initialize_peakfile (const std::string& path, const bool in_session = false);
int build_peaks_from_scratch ();
int compute_and_write_peaks (Sample* buf, framecnt_t first_frame, framecnt_t cnt,
bool force, bool intermediate_peaks_ready_signal);
virtual framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const = 0;
virtual framecnt_t write_unlocked (Sample *dst, framecnt_t cnt) = 0;
- virtual std::string generate_peak_path(const std::string& audio_path) = 0;
- virtual std::string find_broken_peakfile (std::string /* missing_peak_path */,
- std::string audio_path) { return generate_peak_path (audio_path); }
+ virtual std::string construct_peak_filepath (const std::string& audio_path, const bool in_session = false, const bool old_peak_name = false) const = 0;
virtual int read_peaks_with_fpp (PeakData *peaks,
framecnt_t npeaks, framepos_t start, framecnt_t cnt,
* during the handling of the signal.
*/
mutable Glib::Threads::Mutex _peaks_ready_lock;
+ Glib::Threads::Mutex _initialize_peaks_lock;
int _peakfile_fd;
framecnt_t peak_leftover_cnt;