add post-export audition seeking

This commit is contained in:
Robin Gareus 2016-02-13 13:51:10 +01:00
parent fbbde01f25
commit fc5c247aa1
2 changed files with 21 additions and 0 deletions

View File

@ -554,6 +554,7 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
ytme->flush ();
CimgArea *tm = manage (new CimgArea (ytme));
tm->set_audition_axis (m_l, width);
tm->seek_playhead.connect (sigc::bind<0> (sigc::mem_fun (*this, &ExportReport::audition_seek), page));
timeline.push_back (tm);
vb->pack_start (*tm);
} else {
@ -764,3 +765,11 @@ ExportReport::audition_progress (framecnt_t pos, framecnt_t len)
timeline[_audition_num]->set_playhead ((float)pos / len);
}
}
void
ExportReport::audition_seek (int page, float pos)
{
if (_audition_num == page && _session) {
_session->the_auditioner()->seek_to_percent (100.f * pos);
}
}

View File

@ -80,6 +80,17 @@ public:
_aw = w;
}
sigc::signal<void, float> seek_playhead;
protected:
bool on_button_press_event (GdkEventButton *ev) {
CairoWidget::on_button_press_event (ev);
if (ev->button == 1 && _aw > 0 && ev->x >= _x0 && ev->x <= _x0 + _aw) {
seek_playhead (((float) ev->x - _x0) / (float)_aw);
}
return true;
}
private:
Cairo::RefPtr<Cairo::ImageSurface> _surface;
float _playhead;
@ -109,6 +120,7 @@ private:
void audition (std::string, unsigned int, int);
void stop_audition ();
void audition_active (bool);
void audition_seek (int, float);
void audition_progress (ARDOUR::framecnt_t, ARDOUR::framecnt_t);
void on_switch_page (GtkNotebookPage*, guint page_num);