Fix up profiling.
[ardour.git] / libs / ardour / test / profiling / lots_of_regions.cc
1 #include "test_util.h"
2 #include "ardour/ardour.h"
3 #include "ardour/midi_track.h"
4 #include "ardour/midi_region.h"
5 #include "ardour/session.h"
6 #include "ardour/playlist.h"
7 #include "pbd/stateful_diff_command.h"
8
9 using namespace std;
10 using namespace ARDOUR;
11 using namespace PBD;
12
13 int
14 main (int argc, char* argv[])
15 {
16         ARDOUR::init (false, true);
17         Session* session = load_session ("../libs/ardour/test/profiling/sessions/1region", "1region");
18
19         assert (session->get_routes()->size() == 2);
20
21         /* Find the track */
22         boost::shared_ptr<MidiTrack> track = boost::dynamic_pointer_cast<MidiTrack> (session->get_routes()->back());
23         assert (track);
24
25         /* And the playlist */
26         boost::shared_ptr<Playlist> playlist = track->playlist ();
27         assert (playlist);
28
29         /* And the region */
30         boost::shared_ptr<MidiRegion> region = boost::dynamic_pointer_cast<MidiRegion> (playlist->region_list().rlist().front());
31         assert (region);
32
33         /* Duplicate it a lot */
34         session->begin_reversible_command ("foo");
35         playlist->clear_changes ();
36         playlist->duplicate (region, region->last_frame(), 1000);
37         session->add_command (new StatefulDiffCommand (playlist));
38         session->commit_reversible_command ();
39
40         /* Undo that */
41         session->undo (1);
42
43         /* And do it again */
44         session->begin_reversible_command ("foo");
45         playlist->clear_changes ();
46         playlist->duplicate (region, region->last_frame(), 1000);
47         session->add_command (new StatefulDiffCommand (playlist));
48         session->commit_reversible_command ();
49 }