MiniTimeline::session_going_away ()
{
super_rapid_connection.disconnect ();
+ session_connection.disconnect ();
SessionHandlePtr::session_going_away ();
_jumplist.clear ();
}
super_rapid_connection = Timers::super_rapid_connect (
sigc::mem_fun (*this, &MiniTimeline::super_rapid_update)
);
+ _session->config.ParameterChanged.connect (session_connection,
+ invalidator (*this),
+ boost::bind (&MiniTimeline::parameter_changed, this, _1), gui_context()
+ );
+
_jumplist.clear ();
}
// TODO UIConfiguration::instance().color & font
}
+void
+MiniTimeline::parameter_changed (std::string const& p)
+{
+ if (p == "minitimeline-span") {
+ update_minitimeline ();
+ }
+}
+
void
MiniTimeline::on_size_request (Gtk::Requisition* req)
{
/* time */
- const framepos_t time_span = 60; /* left+right: 2 minutes */
+ const framepos_t time_span = _session->config.get_minitimeline_span () / 2;
const framepos_t time_span_samples = time_span * _session->nominal_frame_rate ();
const framepos_t time_granularity = _session->nominal_frame_rate () * ceil (2. * time_span / n_labels);
const framepos_t p = _last_update_frame;
}
} else if (ev->button == 1) {
// copy from ::render() // TODO consolidate
- const framepos_t time_span = 60; /* left+right: 2 minutes */
+ const framepos_t time_span = _session->config.get_minitimeline_span () / 2;
const framepos_t time_span_samples = time_span * _session->nominal_frame_rate ();
const framepos_t p = _last_update_frame;
const double px_per_sample = get_width () / (2. * time_span_samples);
void on_style_changed (const Glib::RefPtr<Gtk::Style>&);
void on_name_changed ();
void set_colors ();
+ void parameter_changed (std::string const &);
void calculate_time_width ();
void update_minitimeline ();
Glib::RefPtr<Pango::Layout> _layout;
sigc::connection super_rapid_connection;
PBD::ScopedConnectionList marker_connection;
+ PBD::ScopedConnection session_connection;
framepos_t _last_update_frame;
AudioClock::Mode _clock_mode;
bool mark_hidden (bool yn);
private:
- void parameter_changed (std::string const &);
+ void parameter_changed (std::string const&);
void relabel_solo_button ();
void track_mode_changed ();
CONFIG_VARIABLE (bool, layered_record_mode, "layered-record-mode", false)
CONFIG_VARIABLE (uint32_t, subframes_per_frame, "subframes-per-frame", 100)
CONFIG_VARIABLE (Timecode::TimecodeFormat, timecode_format, "timecode-format", Timecode::timecode_30)
+CONFIG_VARIABLE (framecnt_t, minitimeline_span, "minitimeline-span", 120) // seconds
CONFIG_VARIABLE_SPECIAL(std::string, raid_path, "raid-path", "", PBD::path_expand)
CONFIG_VARIABLE_SPECIAL(std::string, audio_search_path, "audio-search-path", "", PBD::search_path_expand)
CONFIG_VARIABLE_SPECIAL(std::string, midi_search_path, "midi-search-path", "", PBD::search_path_expand)