13
0
Commit Graph

7727 Commits

Author SHA1 Message Date
d3346d5466 tempo map debugging with dlp
git-svn-id: svn://localhost/ardour2/branches/3.0@11193 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-08 16:20:54 +00:00
c85e251f0a add operator!= for BBT_Time
git-svn-id: svn://localhost/ardour2/branches/3.0@11188 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 17:11:17 +00:00
c9de3c5a16 add an empty ProcessorEntry before the fader if there are no pre-fader processors, to strongly visually indicate that you can insert new processors there; add back a fixed, static tooltip for the processor box
git-svn-id: svn://localhost/ardour2/branches/3.0@11187 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 17:10:18 +00:00
68d62e8ec7 add sixteenths as note type for tempo and meter; fix cursor color, selection color etc, for tempo & meter dialogs
git-svn-id: svn://localhost/ardour2/branches/3.0@11186 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:28:58 +00:00
6b297a9928 when moving tempo and metric sections around (or adding new ones), prevent the existence of two tempo markers within the same beat, as well as two meter markers within the same bar (though i think this was prevented already by snapping meter sections to beat=1; make round_to_beats() work when dir==0 ("true rounding"); a bit of code cleanup
git-svn-id: svn://localhost/ardour2/branches/3.0@11185 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:18:27 +00:00
5425b7773d rest of the color change for the MIDI channel selector, missed this yesterday
git-svn-id: svn://localhost/ardour2/branches/3.0@11184 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:10:54 +00:00
f1df7b125b snap tempo marker drags to the nearest beat
git-svn-id: svn://localhost/ardour2/branches/3.0@11183 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:10:31 +00:00
ba00aba51c fix positioning of grid line after a non-beat aligned tempo change
git-svn-id: svn://localhost/ardour2/branches/3.0@11182 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 02:44:41 +00:00
6a154f9de6 a better fix for timestamping non-beat-aligned tempo changes
git-svn-id: svn://localhost/ardour2/branches/3.0@11181 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 00:16:28 +00:00
d64d4a767d remove extra TempoMap::dump() call
git-svn-id: svn://localhost/ardour2/branches/3.0@11180 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:56:58 +00:00
c7b7cb9a31 re-adjust computation of non-beat aligned tempo change
git-svn-id: svn://localhost/ardour2/branches/3.0@11179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:50:34 +00:00
161c33a84f adjust computation of non-beat aligned tempo change, and let TempoMap::dump() be used "wherever"
git-svn-id: svn://localhost/ardour2/branches/3.0@11178 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 22:36:00 +00:00
28df3238c2 fix frame/beat walking to pass unit tests
git-svn-id: svn://localhost/ardour2/branches/3.0@11176 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:29:41 +00:00
bfca00efd2 remove messages when tempo map is not available in RT context
git-svn-id: svn://localhost/ardour2/branches/3.0@11175 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:29:18 +00:00
16063123f3 twiddle with one test explanation to help paul reason about it
git-svn-id: svn://localhost/ardour2/branches/3.0@11174 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 20:28:40 +00:00
fc2b1ab500 dull down the MIDI channel selector buttons to avoid sensory overload
git-svn-id: svn://localhost/ardour2/branches/3.0@11172 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 19:18:09 +00:00
355183f1ab partially revert some of the recent work on tempo to reflect new understanding of the problem. behaviour is now believed to be totally correct but awaiting a bit more testing
git-svn-id: svn://localhost/ardour2/branches/3.0@11171 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 16:39:40 +00:00
bdb15f9422 fix some more crashes with tempo map manipulations
git-svn-id: svn://localhost/ardour2/branches/3.0@11170 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 22:36:58 +00:00
c5205fe49f upgrade audiounit support to use the new tempomap API
git-svn-id: svn://localhost/ardour2/branches/3.0@11169 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 21:26:54 +00:00
9829a69549 fix over-zealous optimization in tempo map, caused crash
git-svn-id: svn://localhost/ardour2/branches/3.0@11168 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 21:24:26 +00:00
862299120c remove debugging output
git-svn-id: svn://localhost/ardour2/branches/3.0@11167 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 17:42:48 +00:00
3678b7c962 make extending the tempo map O(N) in the section to be filled in, rather than O(N) in the overall length of the map, and clean up some other details
git-svn-id: svn://localhost/ardour2/branches/3.0@11166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 17:31:24 +00:00
63f77717d7 remove un-needed TempoMap::frame_time_rt()
git-svn-id: svn://localhost/ardour2/branches/3.0@11165 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 15:56:14 +00:00
e0b694f630 possibly fix deadlocking issues with tempo map by rearranging code and adding RT variants for a couple of functions that would normally try to rebuild the map when necessary; instead the variants throw an exception and the RT code that called them tries to do something reasonable
git-svn-id: svn://localhost/ardour2/branches/3.0@11164 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 05:05:31 +00:00
Carl Hetherington
4e4306d125 Use Request::Pause rather than Request::Wait for
Butler::wait_until_finished. Otherwise the following bad
thing happens:

1.  The export code wants to call some Butler functions, so it calls
   calls Butler::wait_until_finished.
2.  This (used to) write Request::Wake into the butler's request pipe.
3.  Imagine that when this happens, the butler is already doing stuff.
4.  Meanwhile, Butler::wait_until_finished is waiting on Butler::paused.
5.  Some time later, the butler finishes its other stuff.
6.  Then it signals "paused".
7.  This causes Butler::wait_until_finished to return, so the export code
   thinks everything's ok and starts calling butler functions.
8.  Then the butler sees the Request::Wake, wakes up, and by unhappy coincidence
   ends up calling read on the same diskstream that the export code has just called.

This causes corruption of the Diskstream buffers, resulting in mantis #4283.

Using Request::Pause instead means that the butler will still wake in step #8,
but should_run will be false, so nothing much will happen and the export code
will be unimpeded.

For future reference, this bug was easiest to track down after adding a debugging
mutex to AudioDiskstream and then try-locking it in AudioDiskstream::_do_refill;
as far as I can see, _do_refill should never be called by two threads at the


git-svn-id: svn://localhost/ardour2/branches/3.0@11163 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 21:07:04 +00:00
c80649d913 restore correct behaviour of undo/redo for tempo map drags
git-svn-id: svn://localhost/ardour2/branches/3.0@11162 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 20:40:06 +00:00
d48fd2a679 try to clean up locking issues with TempoMap
git-svn-id: svn://localhost/ardour2/branches/3.0@11161 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 20:29:56 +00:00
ac19bedc3d tweak constants that affect whether/where trimming cursors are shown for MIDI notes, to avoid making it so hard to drag relatively small notes
git-svn-id: svn://localhost/ardour2/branches/3.0@11160 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 20:29:34 +00:00
f61a0d892c fix error in framepos_{plus,minus}_bbt() which miscounted beats while stepping through bars - stops dragged MIDI notes from ending up in the wrong place, and more
git-svn-id: svn://localhost/ardour2/branches/3.0@11159 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 18:48:32 +00:00
2858b0474e fix (?) tricky locking issues in the tempo map by adding a second lock and independently locking the metrics and the map itself
git-svn-id: svn://localhost/ardour2/branches/3.0@11157 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 17:55:42 +00:00
Carl Hetherington
b9a9d8d047 Use a few shared_ptrs to make things slightly neater.
git-svn-id: svn://localhost/ardour2/branches/3.0@11156 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 13:56:09 +00:00
365a8f7f14 implement TempoMap::framepos_minus_beats() using new bar|beat map structure, and fix accuracy of TempoMap::framepos_plus_bbt()
git-svn-id: svn://localhost/ardour2/branches/3.0@11155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 03:27:55 +00:00
b1a33855ce use BBTPoint::is_bar() rather than ::beat == 1 ; implement TempoMap::framepos_plus_{beats,bbt}() with new map structure (not totally finished or accurate yet); prevent crash when dragging a marker to replace the initial tempo/meter markers
git-svn-id: svn://localhost/ardour2/branches/3.0@11154 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 02:49:01 +00:00
Carl Hetherington
10d9eaf0bd Remove unused variables.
git-svn-id: svn://localhost/ardour2/branches/3.0@11153 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:13:16 +00:00
Carl Hetherington
2bea7aaca5 Maybe fix initial run of tests with sources.
git-svn-id: svn://localhost/ardour2/branches/3.0@11152 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:13:11 +00:00
Carl Hetherington
783f31816c Happy New Year
git-svn-id: svn://localhost/ardour2/branches/3.0@11151 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:13:05 +00:00
Carl Hetherington
58d8b7f42f Add valgrind option for tests.
git-svn-id: svn://localhost/ardour2/branches/3.0@11150 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:12:58 +00:00
Carl Hetherington
469d3b8fd7 Add TestNeedingPlaylistAndRegions
git-svn-id: svn://localhost/ardour2/branches/3.0@11149 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 21:12:53 +00:00
43441aa924 remove duplicated test conditions
git-svn-id: svn://localhost/ardour2/branches/3.0@11148 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 19:20:54 +00:00
bc003a539b save 4 bytes per Bar|Beat point in the tempo map
git-svn-id: svn://localhost/ardour2/branches/3.0@11147 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 19:03:13 +00:00
2a200bdc0e return two iterators into the Bars|Beats list of the tempo map rather than making a copy; use iterators in the GUI
git-svn-id: svn://localhost/ardour2/branches/3.0@11146 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 18:43:58 +00:00
0d4658e0af more tempo fixes, including handling multiple metrics at the same place, and fixing round_to_beat_subdivision(). almost done now...
git-svn-id: svn://localhost/ardour2/branches/3.0@11145 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 17:59:47 +00:00
19126ddc09 fix incorrect tempo test
git-svn-id: svn://localhost/ardour2/branches/3.0@11144 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 17:58:46 +00:00
ce5de59c77 remove body of no-longer-relevant tempo-related test
git-svn-id: svn://localhost/ardour2/branches/3.0@11143 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 17:36:40 +00:00
d6ff0e35d8 add support for -D foobar when running tests
git-svn-id: svn://localhost/ardour2/branches/3.0@11142 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 17:36:17 +00:00
Carl Hetherington
431a30b3a9 Add notes on running unit tests.
git-svn-id: svn://localhost/ardour2/branches/3.0@11141 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 16:10:34 +00:00
Carl Hetherington
b6438ed1f6 Add TestNeedingSession and add missing tempo_test.h
git-svn-id: svn://localhost/ardour2/branches/3.0@11140 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 16:05:25 +00:00
Carl Hetherington
dd57700445 New test.
git-svn-id: svn://localhost/ardour2/branches/3.0@11139 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 14:32:51 +00:00
Carl Hetherington
b0577f260c More test friends.
git-svn-id: svn://localhost/ardour2/branches/3.0@11138 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 14:32:22 +00:00
Carl Hetherington
d345d44688 Reverse parameters to CPPUNIT_ASSERT_EQUAL so its assert
messages read the right way round.


git-svn-id: svn://localhost/ardour2/branches/3.0@11137 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-03 14:32:17 +00:00