#include <gtkmm2ext/utils.h>
#include <ardour/audioplaylist.h>
-#include <ardour/diskstream.h>
+#include <ardour/audio_diskstream.h>
#include <ardour/insert.h>
#include <ardour/ladspa_plugin.h>
#include <ardour/location.h>
#include "i18n.h"
using namespace ARDOUR;
+using namespace PBD;
using namespace LADSPA;
using namespace Gtk;
using namespace Editing;
void
AudioTimeAxisView::set_height (TrackHeight h)
{
- bool height_changed = (h != height_style);
+ bool height_changed = (height == 0) || (h != height_style);
TimeAxisView::set_height (h);
string name;
AudioPlaylist *pl;
- DiskStream *ds;
+ AudioDiskstream *ds;
if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) {
return;
AudioTimeAxisView::use_copy_playlist (bool prompt)
{
AudioPlaylist *pl;
- DiskStream *ds;
+ AudioDiskstream *ds;
string name;
if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) {
AudioTimeAxisView::use_new_playlist (bool prompt)
{
AudioPlaylist *pl;
- DiskStream *ds;
+ AudioDiskstream *ds;
string name;
if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) {
AudioTimeAxisView::clear_playlist ()
{
AudioPlaylist *pl;
- DiskStream *ds;
+ AudioDiskstream *ds;
if ((ds = get_diskstream()) != 0) {
if ((pl = ds->playlist()) != 0) {
void
AudioTimeAxisView::update_diskstream_display ()
{
- DiskStream *ds;
+ AudioDiskstream *ds;
if ((ds = get_diskstream()) != 0) {
set_playlist (ds->playlist ());
jack_nframes_t start_adjusted = session_frame_to_track_frame(start, speed);
jack_nframes_t end_adjusted = session_frame_to_track_frame(end, speed);
- if (view && touched (top, bot)) {
+ if (view && ((top < 0.0 && bot < 0.0)) || touched (top, bot)) {
view->get_selectables (start_adjusted, end_adjusted, results);
}
Playlist *
AudioTimeAxisView::playlist () const
{
- DiskStream *ds;
+ AudioDiskstream *ds;
if ((ds = get_diskstream()) != 0) {
return ds->playlist();
Region*
AudioTimeAxisView::find_next_region (jack_nframes_t pos, RegionPoint point, int32_t dir)
{
- DiskStream *stream;
+ AudioDiskstream *stream;
AudioPlaylist *playlist;
if ((stream = get_diskstream()) != 0 && (playlist = stream->playlist()) != 0) {
AudioTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
{
Playlist* what_we_got;
- DiskStream* ds = get_diskstream();
+ AudioDiskstream* ds = get_diskstream();
Playlist* playlist;
bool ret = false;
}
}
+ XMLNode &before, &after;
switch (op) {
case Cut:
- _session.add_undo (playlist->get_memento());
+ before = playlist->get_state();
if ((what_we_got = playlist->cut (time)) != 0) {
editor.get_cut_buffer().add (what_we_got);
- _session.add_redo_no_execute (playlist->get_memento());
+ after = playlist->get_state();
+ _session.add_command (MementoCommand<Playlist>(*playlist, before, after));
ret = true;
}
break;
break;
case Clear:
- _session.add_undo (playlist->get_memento());
+ before = playlist->get_state();
if ((what_we_got = playlist->cut (time)) != 0) {
- _session.add_redo_no_execute (playlist->get_memento());
+ _session.add_command(MementoCommand<Playlist>(*playlist, before, after));
what_we_got->unref ();
ret = true;
}
if (get_diskstream()->speed() != 1.0f)
pos = session_frame_to_track_frame(pos, get_diskstream()->speed() );
- _session.add_undo (playlist->get_memento());
+ XMLNode &before = playlist->get_state();
playlist->paste (**p, pos, times);
- _session.add_redo_no_execute (playlist->get_memento());
+ _session.add_command(MementoCommand<Playlist>(*playlist, before,
+ playlist->get_state()));
return true;
}