summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_report.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-02-15 17:37:51 +0100
committerRobin Gareus <robin@gareus.org>2016-02-15 17:37:51 +0100
commit92875bbf07e3dbeaf47d4d42051ab95b1299c7e3 (patch)
tree12424073f5cd3d9c8ddc6aaac36cb835a716e9cb /gtk2_ardour/export_report.cc
parent7e59435ee872ded6d969360d22f3839ad2615c5b (diff)
refine ExportReport:
* combined Logscale/Rectified buttons * use "Lg", "Rf" labels for now * fix some layout bugs
Diffstat (limited to 'gtk2_ardour/export_report.cc')
-rw-r--r--gtk2_ardour/export_report.cc47
1 files changed, 34 insertions, 13 deletions
diff --git a/gtk2_ardour/export_report.cc b/gtk2_ardour/export_report.cc
index 30997faaca..3755445e53 100644
--- a/gtk2_ardour/export_report.cc
+++ b/gtk2_ardour/export_report.cc
@@ -415,11 +415,11 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
layout->get_pixel_size (w, h);
cr->set_operator (Cairo::OPERATOR_OVER);
layout->get_pixel_size (w, h);
- Gtkmm2ext::rounded_rectangle (cr, 5, rint (.5 * (hh - w) - 1), h + 2, w + 2, 4);
+ Gtkmm2ext::rounded_rectangle (cr, 5, hh - h - 4, w + 2, h + 2, 4);
cr->set_source_rgba (.1, .1, .1, 0.7);
cr->fill ();
cr->set_source_rgba (.3, .7, .3, 1.0);
- cr->move_to (6, hh - h - 2);
+ cr->move_to (6, hh - h - 3);
layout->show_in_cairo_context (cr);
}
@@ -453,6 +453,19 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
cr->stroke (); \
}
+
+ {
+ VBox *lrb = manage (new VBox());
+ ToggleButton *log = manage (new ToggleButton (S_("Logscale|Lg")));
+ ToggleButton *rec = manage (new ToggleButton (S_("Rectified|Rf")));
+ lrb->pack_start (*log, false, false, 5);
+ lrb->pack_end (*rec, false, false, 5);
+ log->signal_toggled ().connect (sigc::bind (sigc::mem_fun (*this, &ExportReport::on_logscale_toggled), log));
+ rec->signal_toggled ().connect (sigc::bind (sigc::mem_fun (*this, &ExportReport::on_rectivied_toggled), rec));
+ lrb->show_all ();
+ wtbl->attach (*lrb, 1, 2, wrow, wrow + p->n_channels, SHRINK, SHRINK);
+ }
+
for (uint32_t c = 0; c < p->n_channels; ++c) {
/* draw waveform */
const size_t width = sizeof (p->peaks) / sizeof (ARDOUR::PeakData::PeakDatum) / 4;
@@ -469,19 +482,9 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
CimgWaveArea *wv = manage (new CimgWaveArea (wave, wave_log, wave_rect, wave_lr, m_l, width));
playhead_widgets.push_back (wv);
+ waves.push_back (wv);
wv->seek_playhead.connect (sigc::bind<0> (sigc::mem_fun (*this, &ExportReport::audition_seek), page));
-
- VBox *lrb = manage (new VBox());
- ToggleButton *log = manage (new ToggleButton (S_("Logscale|L")));
- ToggleButton *rec = manage (new ToggleButton (S_("Rectified|R")));
- lrb->pack_start (*log, false, false, 5);
- lrb->pack_end (*rec, false, false, 5);
- log->signal_toggled ().connect (sigc::bind (sigc::mem_fun (wv, &CimgWaveArea::set_logscale), log));
- rec->signal_toggled ().connect (sigc::bind (sigc::mem_fun (wv, &CimgWaveArea::set_rectified), rec));
- lrb->show_all ();
-
wtbl->attach (*wv, 0, 1, wrow, wrow + 1, SHRINK, SHRINK);
- wtbl->attach (*lrb, 1, 2, wrow, wrow + 1, SHRINK, SHRINK);
++wrow;
}
@@ -865,6 +868,24 @@ ExportReport::audition_seek (int page, float pos)
}
void
+ExportReport::on_logscale_toggled (Gtk::ToggleButton* b)
+{
+ bool en = b->get_active ();
+ for (std::list<CimgWaveArea*>::iterator i = waves.begin (); i != waves.end (); ++i) {
+ (*i)->set_logscale (en);
+ }
+}
+
+void
+ExportReport::on_rectivied_toggled (Gtk::ToggleButton* b)
+{
+ bool en = b->get_active ();
+ for (std::list<CimgWaveArea*>::iterator i = waves.begin (); i != waves.end (); ++i) {
+ (*i)->set_rectified (en);
+ }
+}
+
+void
ExportReport::draw_waveform (Cairo::RefPtr<Cairo::ImageSurface>& wave, ExportAnalysisPtr p, uint32_t c, int m_l, size_t width, int anw, int height, bool log, bool rect)
{
int w, h;