13
0
Commit Graph

18986 Commits

Author SHA1 Message Date
2386410e4a remove debug output 2016-01-14 11:00:50 -05:00
9ab92a67c8 use correct type of lock when removing a thread request buffer 2016-01-14 11:00:40 -05:00
5e4d9612e3 faderport: stop event loop when destroying object 2016-01-14 10:59:27 -05:00
35807a1929 fully clean up request buffers when a thread dies 2016-01-14 10:53:32 -05:00
077c65cc2a manually revert 4b3043cc and 141e6fb8181; add detailed explanatory comment 2016-01-14 09:05:06 -05:00
da087e920b ensure that each and every audioengine-related thread has a unique name 2016-01-14 09:05:06 -05:00
084af96bf4 Change handling of Midi note selection to eliminate signal emission/delays.
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection
signal that is used to notify the all MRV instances to clear their note
selection.

The MRV class also has a private static SelectionCleared signal that is used to
signal other MRV instances when their selection has been cleared. When the
Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also
emit the SelectionCleared signal. So the emission takes quadratic time.

With 1500 MRV instances emission takes about 2.2 seconds on my machine, and
some operations like track selection cause it to be emitted 3 times(another
issue).

The Selection class in the Editor knows which MRV instances have note
selections, as it is notified by MidiRegionView whenever the selection count
becomes zero or becomes non-zero. Clearing the Note selection should then just
be O(N) and direct calls can be used rather than signals.

This change removes both the signals and uses the existing references between
Selection and MRV class to control note selection. There should be no
behavioural changes in Midi note selection with this change.
2016-01-14 20:41:44 +10:00
b93a9e2601 Add debug bit for selection debugging output 2016-01-14 20:41:43 +10:00
141e6fb818 don't pick up already dead thread request buffers when setting up an event loop 2016-01-13 23:25:17 -05:00
4b3043ccda use a unique key to store per-thread request buffers 2016-01-13 23:00:02 -05:00
d3ad5c16d1 yet more event loop debug tracing 2016-01-13 21:13:55 -05:00
6d04a66eea more event loop debugging 2016-01-13 19:48:17 -05:00
3e45254257 typo fix 2016-01-13 18:14:52 -05:00
f3c9f5894a lots more DEBUG_TRACE statements for analysing malfunctioning system 2016-01-13 17:03:49 -05:00
9a52cefd13 Fix bug 6725 regions incorrectly moved after tempo change when glued to BBT time
Playlist::_split_region copies the region and BBT_Time member is default
constructed so position is bar 1 beat 1.

The regions sample position is then initialized to the new position using the
property list.

Playlist::add_region_internal is then used to add new regions to the playlist
which calls region->set_position() but as the region position has already been
initialized it does not recompute the _bbt_time member based on the new sample
position.

Then when a tempo change occurs and Region::update_after_tempo_map_change is
called the default initialized _bbt_time member is used to incorrectly
determine the new sample position.

So the change removes the initialization of the new region position using the
property list initialization method and just lets the playlist set the position
of the region in Playlist::add_region_internal so that the region _bbt_time
member is recomputed in Region::set_position_internal.
2016-01-14 07:05:04 +10:00
ed8c88d697 don't allow to delete AU presets in the UI
because the backend is not ready for this.
2016-01-13 18:01:39 +01:00
b81504581b another DEBUG_TRACE for mackie control x-thread requests 2016-01-12 23:30:14 -05:00
bcb865c235 improved debug trace messages from BaseUI class 2016-01-12 22:11:44 -05:00
7cbf35a3d6 Mackie Control, Fix sends after monitor not showing. 2016-01-12 08:15:57 -08:00
df5c5d338a space bar action (Transport/ToggleRoll) should still start transport if synced to Engine (JACK) 2016-01-12 08:28:54 -05:00
6b61d58b8a at the end of waf configure, when displaying selected options, break backend settings into their own "output block" 2016-01-12 08:06:48 -05:00
baeca3642b add relevant wscript visibility for the portaudio backend 2016-01-12 08:06:48 -05:00
90c4985604 remove wavesaudio backend 2016-01-12 08:06:47 -05:00
André Nusser
ef9713d5c6 Comment remaining unsolved bug. 2016-01-12 13:45:39 +01:00
André Nusser
f979d9c0a6 Don't show a ghost note when draw mode is entered over a note. 2016-01-12 13:45:39 +01:00
André Nusser
616c1aa0ce Clean enter_internal and leave_internal in MidiRegionView. 2016-01-12 13:45:39 +01:00
André Nusser
39bd216725 Fix two ghost note drawing problems.
A ghost note could appear:
1) above the region.
2) inside another note even though we haven't yet entered it.
2016-01-12 13:45:38 +01:00
André Nusser
76237a696c Hide MIDI ghost note when over existing note. 2016-01-12 13:45:38 +01:00
André Nusser
688fe8504b Hide ghost note when switching from draw to internal edit mode.
Before it was only hidden after moving the mouse.
2016-01-12 13:45:38 +01:00
André Nusser
2d786617bb Fix appearing ghost note after drag select in internal edit mode. 2016-01-12 13:45:38 +01:00
cf6a3afcaa name ALSA midi ports after device 2016-01-11 11:46:10 +01:00
0fc06b4a1b fix warning message typo 2016-01-11 11:45:44 +01:00
d134ba037d fix compilation of debug builds
ArdourSurface::FaderPort::Button::name is private
2016-01-11 11:07:09 +01:00
f1d0de029d remove debug output 2016-01-10 23:34:10 -05:00
530dd4255c faderport: remove wierd shift use design; make user+shift work again 2016-01-10 23:32:21 -05:00
a9995c59cc coremidi: do not clear port buffer for every call to parse_events()
This was limiting the data flow to 1 MIDI event per process cycle.
2016-01-10 17:46:36 -05:00
eea8d8e6c0 check sidebar re-order constrains early on. 2016-01-10 00:28:00 +01:00
28f8b7d5d6 retain expansion-state when reordering plugins in the sidebar 2016-01-10 00:28:00 +01:00
36fb8c44c1 add explanatory comment regarding coremidi data flow 2016-01-09 14:45:38 -05:00
539d924691 fix const-ness issue.
This one is debatable, but since we know that the filter method is const with respect to the AUPluginInfo
object, the const_cast<> seems like the simplest AND cleanest solution
2016-01-09 14:03:13 -05:00
4a99727dea coremidi: be sure to mark _event._pending false after queueing, so that it doesn't get queued up again later 2016-01-09 13:53:17 -05:00
2be5131ea1 fix compiler argument order (ldflags/loadlibes) - patch from Rodney Dawes 2016-01-09 19:03:43 +01:00
6a45e4a2b1 GUI update for plugin-preset-list API change 2016-01-09 15:22:40 +01:00
e6e7377cd8 API evolution
The Session-reference is only needed to instantiate/load the plugin.
Indexing presets is not supposed to call load() and be const WRT to
PluginInfo
2016-01-09 15:22:16 +01:00
3710a977fc variable program name in installer script 2016-01-09 13:00:01 +01:00
0e6f763734 and again. 2016-01-09 01:24:10 +01:00
5a047fcd15 fix typo in ce7d18bc16 2016-01-09 01:01:18 +01:00
ba450aaeaa Leave a ToDo note: distinguish LV2 user and factory presets. 2016-01-09 00:57:53 +01:00
ce7d18bc16 don't allow to delete factory presets 2016-01-09 00:51:24 +01:00
3718b4109b index plugins before loading state (favorite order) 2016-01-08 22:07:21 +01:00