#include "ardour/playlist.h"
#include "ardour/audioregion.h"
#include "ardour/audiosource.h"
-#include "ardour/audio_diskstream.h"
#include "ardour/profile.h"
#include "ardour/session.h"
, _amplitude_above_axis(1.0)
, _flags(0)
, fade_color(0)
-
{
Gdk::Color c;
int r,g,b,a;
, _amplitude_above_axis(1.0)
, _flags(0)
, fade_color(0)
-
{
Gdk::Color c;
int r,g,b,a;
store_flags ();
}
- if (trackview.editor().new_regionviews_display_gain()) {
+ /* make envelope visible if it has anything interesting in it */
+ if (audio_region()->envelope()->size() > 2) {
_flags |= EnvelopeVisible;
}
gnome_canvas_waveview_cache_destroy (*cache);
}
+ for (vector<ScopedConnection*>::iterator i = _data_ready_connections.begin(); i != _data_ready_connections.end(); ++i) {
+ delete *i;
+ }
+
/* all waveviews etc will be destroyed when the group is destroyed */
delete gain_line;
}
}
- gain_line->set_height ((uint32_t) rint (height - NAME_HIGHLIGHT_SIZE));
+ gain_line->set_height ((uint32_t) rint (height - NAME_HIGHLIGHT_SIZE) - 2);
}
manage_zero_line ();
// cerr << "AudioRegionView::create_waves() called on " << this << endl;//DEBUG
RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick
- if (!atv.get_diskstream()) {
+ if (!atv.track()) {
return;
}
- ChanCount nchans = atv.get_diskstream()->n_channels();
+ ChanCount nchans = atv.track()->n_channels();
// cerr << "creating waves for " << _region->name() << " with wfd = " << wait_for_data
// << " and channels = " << nchans.n_audio() << endl;
tmp_waves.push_back (0);
}
+ for (vector<ScopedConnection*>::iterator i = _data_ready_connections.begin(); i != _data_ready_connections.end(); ++i) {
+ delete *i;
+ }
+
+ _data_ready_connections.clear ();
+
+ for (uint32_t i = 0; i < nchans.n_audio(); ++i) {
+ _data_ready_connections.push_back (0);
+ }
+
for (uint32_t n = 0; n < nchans.n_audio(); ++n) {
if (n >= audio_region()->n_channels()) {
// cerr << "\tchannel " << n << endl;
if (wait_for_data) {
- if (audio_region()->audio_source(n)->peaks_ready (boost::bind (&AudioRegionView::peaks_ready_handler, this, n), data_ready_connection, gui_context())) {
+ if (audio_region()->audio_source(n)->peaks_ready (boost::bind (&AudioRegionView::peaks_ready_handler, this, n), &_data_ready_connections[n], gui_context())) {
// cerr << "\tData is ready\n";
create_one_wave (n, true);
} else {
{
//cerr << "AudioRegionView::create_one_wave() called which: " << which << " this: " << this << endl;//DEBUG
RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick
- uint32_t nchans = atv.get_diskstream()->n_channels().n_audio();
+ uint32_t nchans = atv.track()->n_channels().n_audio();
uint32_t n;
uint32_t nwaves = std::min (nchans, audio_region()->n_channels());
gdouble ht;
tmp_waves.clear ();
/* all waves created, don't hook into peaks ready anymore */
- data_ready_connection.disconnect ();
+ delete _data_ready_connections[which];
+ _data_ready_connections[which] = 0;
#if 0
if (!zero_line) {
AudioGhostRegion* ghost = new AudioGhostRegion (tv, trackview, unit_position);
uint32_t nchans;
- nchans = rtv->get_diskstream()->n_channels().n_audio();
+ nchans = rtv->track()->n_channels().n_audio();
for (uint32_t n = 0; n < nchans; ++n) {