Commit graph

201 commits

Author SHA1 Message Date
nick_m
dcd3e3823c Don't begin command on start_grab for AutomationRangeDrag and NoteResizeDrag
- fixes a crash when clicking to resize without movement.
	- minor readability fix for _drag_had_movement
2015-06-19 00:02:09 +10:00
nick_m
44790ebff0 More _reversible_command() auditing in the gui.
- try to keep begin/commit pairs in the same file where possible.
2015-06-17 09:54:23 +10:00
Robin Gareus
12ece48525 fix verbose cursor for db automation. 2015-04-26 00:51:09 +02:00
Robin Gareus
9203bad7ba fix automation lane for dB ranges other than fader. 2015-04-25 21:39:40 +02:00
Robin Gareus
52d67203a1 Trim Automation UI 2015-04-25 21:25:19 +02:00
David Robillard
5c11e43f08 Clam points to valid values on drag end.
Fixes bug #6214.

It would be better to do this while dragging, but this would require rewriting
much of the drag code to keep track of a cumulative y delta since the current
position of points would be "sticky" and prevent any movement at all, so this
will have to do for now.
2015-03-26 13:22:57 -04:00
David Robillard
3b38d7d8a6 Keep automation lines within their parent (#6215). 2015-03-26 11:48:13 -04:00
nick_m
44203ce955 Fix AutomationTrackItem rubberband click thinking it was unhandled.
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
2015-01-11 04:07:31 +11:00
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
combines selection related editor properties with the current editor selection.

The related editor properties are:
mouse mode,
zoom setting,
left frame of the canvas,
y origin of the canvas.

Selection state now includes region views (storing the underlying region id)
and time.

This patch also fixes a region mute undo bug.
2014-12-18 11:03:10 -05:00
Paul Davis
c98366c7c8 fixed merge conflict 2014-12-14 09:36:01 -05:00
David Robillard
b3ea22fc3f Remove unused method. 2014-12-01 23:35:24 -05:00
Julien de Kozak
cb8abbe8d2 Make it compile with C++11 support.
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
2014-12-01 23:18:11 +01:00
David Robillard
ed1bbefd19 Somewhat working gain automation.
This probably isn't correct in several ways, but it works more than it did, so
I figure it's push worthy.

Still not working:

 * Saving mute automation list
 * Dragged control points are not snapped to model restrictions
   (boolean, in this case, but general problem)
 * Line goes funny if you record mute automation
   (as opposed to drawing it which works)
2014-11-29 01:25:27 -05:00
David Robillard
f190e630ab Show discrete/toggled automation as stepped line. 2014-11-28 21:15:28 -05:00
David Robillard
73ad993597 Fix invisible discrete control points. 2014-11-22 04:39:30 -05:00
David Robillard
c91b691260 Don't hide selected control points.
There was already code for this, but actually setting the corresponding
visibility flags seems to have been lost at some point.
2014-11-16 22:46:59 -05:00
David Robillard
de1ebcc149 Fix entering/editing MIDI region "automation" (controllers).
Two issues:

1) AutomationRegionView not receiving events (CC breakage).

2) Entered values must be rounded to integer for MIDI controllers.  This should
be done more generically with ParameterDescriptor for all controls (also
supporting boolean toggles and such), once ParameterDescriptor becomes more
pervasive and takes over Evoral::Parameter, but this will do for now.
2014-11-15 02:58:39 -05:00
David Robillard
47c4929bc2 Display gain and midiNote plugin parameters/properties nicely.
Show fancy values on generic GUI controls, automation lane controls, and automation lane verbose cursor.
Fix text display of midiNote values.
Make bigstep of midiNote parameters 12 (one octave).
Add ARDOUR::value_as_string() as a stateless one-stop-shop for value printing.
2014-11-02 02:10:24 -05:00
David Robillard
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
Paul Davis
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
Robin Gareus
df19c576c7 fix a bunch of memory leaks 2014-09-11 03:04:11 +02:00
Robin Gareus
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
Paul Davis
6a5d805b38 more canvas refactoring.
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it
could theoretically be used by any derived type.
2014-06-22 11:41:05 -04:00
Paul Davis
0796ccfb65 use newly factored canvas in gtk2_ardour 2014-06-21 11:44:22 -04:00
Robin Gareus
5a41487a08 remove some 1920 tick constants and leave notes for some others. 2014-06-07 18:35:37 +02:00
Robin Gareus
94fa927861 limit automation event density - fixes #5928
Constrain control points to one per tick (1/1920 beats).

Prior to this it was possible to set two values to the
same time (interpolation and iteration failed).
2014-06-07 17:43:12 +02:00
Paul Davis
6605b2a542 when an automation/region gain line is hidden, so are its points 2014-03-05 14:40:49 -05:00
Paul Davis
983bf548cd alter name of AutomationLine::show() to much more sensibly named ::update_visibility() 2014-03-05 12:11:22 -05:00
Paul Davis
f5233f11a2 remove debugging output 2014-03-05 11:47:58 -05:00
Paul Davis
836e95d964 fix/adjust logic used to display automation lines 2014-03-04 21:58:17 -05:00
Paul Davis
0bcf3001f5 fiddle with single pixel adjustments to time axis view item heights; fix region gain envelope visibility 2014-02-25 12:02:50 -05:00
Paul Davis
1044532270 use new "covers" threshold to make automation lines more grabbable 2014-02-20 12:53:38 -05:00
Paul Davis
9aacefc170 merge with master 2014-01-15 14:29:32 -05:00
Robin Gareus
79b56b1d33 fix pan-width automation 2014-01-15 20:03:20 +01:00
Paul Davis
59631acc5f fix merge with master 2014-01-11 15:19:18 -05:00
David Robillard
0fe968a140 Fix whitespace (no functional changes). 2014-01-10 20:51:54 -05:00
Paul Davis
658bb3ccd4 finished merge of cairocanvas with windows and windows+cc branches 2014-01-10 17:11:10 -05:00
Paul Davis
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
Paul Davis
68af0fdc07 fix up visibility control for automation lines 2013-12-31 13:28:20 -05:00
Paul Davis
87c29025de just use show() and hide() to manage control point visibility in automation lines
No need for the wierd old set_visible()/property_draw() stuff that was a hangover from gnomecanvas.
2013-12-31 11:55:30 -05:00
Paul Davis
2d389a23d5 convert automation line from Canvas::Curve to Canvas::PolyLine (note: this means there is no actual use of Canvas::Curve now) 2013-12-28 13:52:46 -05:00
Paul Davis
7bbd28aa08 notable changes to try to improve most of enter/leave handling for canvas items 2013-10-30 23:36:30 -04:00
John Emmas
904367748c 'gtk2_ardour' - 'std::isinf' + 'std::isnan' are not available in MSVC (at least, not VC8) 2013-10-03 09:48:19 +01:00
Robin Gareus
ffc9a2cc70 Revert "replace "-inf" with UTF8 infinity symbol"
This reverts commit 7f2000ec8b0d6e0d3a6e22db44a8859301d35791.
2013-07-10 15:27:16 +02:00
Robin Gareus
0f1f7ca4fd replace "-inf" with UTF8 infinity symbol 2013-07-10 15:27:16 +02:00
Paul Davis
55d7e8da19 reset xfade colors after theme change 2013-04-18 14:21:53 -04:00
Paul Davis
b9c94f6dbf remove all calls to Outline::set_outline_width (1) because this is "wrong" when using Cairo - the default is 0.5 and it can remain that way 2013-04-17 10:56:04 -04:00
Paul Davis
96eee9e7a1 change UIConfig to use accessor/setter methods like RCConfig so that ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems 2013-04-16 23:46:22 -04:00
Paul Davis
4258a34912 change all frame_to_pixel and pixel_to_frame to sample_to_pixel and pixel_to_sample 2013-04-12 11:15:45 -04:00
Paul Davis
ecfd2a7455 remove all unit-based methods from (Public)Editor; rationalize Editor::event_frame() to clearly identify whether the passed-in GdkEvent has window units or canvas units (the latter will be true for all events that are handled by the canvas and then passed to Editor 2013-04-12 11:09:49 -04:00