13
0
Commit Graph

7526 Commits

Author SHA1 Message Date
31acd96384 Implement "multi-paste" for notes, regions, and automation.
The idea here is that pasting several times to the same location doesn't make
sense.  Instead, the paste is appended past the last paste, snapped to the
grid.  This make it simple to replicate a given section a number of times,
simply by copying once and pasting several times.

This behaviour only appears when successive pastes are done to the same
location (whatever the edit point is).  When the paste point changes, the
"multi-paste" state is reset.

Boots 'n cats 'n boots 'n cats.
2014-11-14 20:04:19 -05:00
b01d1813f8 Fix missing return statement in deleted region scenario. 2014-11-14 20:04:19 -05:00
31b6b05125 Fix MIDI note cut/copy/paste. 2014-11-14 20:04:19 -05:00
497f0389d0 add Jeremy Carter to the about authors list 2014-11-14 17:16:06 -05:00
251735080d fix up some suboptimal and crash-prone aspects of 7c263f3bc4 from Jeremy Carter 2014-11-14 17:14:48 -05:00
Jeremy Carter
592bfdd3f4 Merge remote-tracking branch 'upstream/master' 2014-11-14 13:34:15 -05:00
6b3a8915f3 add abort() to non-reached code
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
5d5d9cb9e2 Fix various sticky/broken cursor issues.
This still isn't quite right, but it's a lot less broken than before, at least.
2014-11-14 02:37:36 -05:00
14e53b89c7 Fix wonky note length when create-dragging notes backwards.
Specifically, when pivoting from forwards to backwards (around the drag start
point), the note length was too long.  Setting both the start and end x
coordinates of the rect every time to the right value does the right thing.
2014-11-14 00:33:05 -05:00
3b23aed5e1 Fix error when create-dragging note backwards past start of region (#5934). 2014-11-14 00:31:28 -05:00
a733a2a4c5 Don't make MIDI regions in note mode completely invisible.
This makes for extremely confusing behaviour, particularly when creating new
regions.  This is still probably too transparent, IMO, but at least isn't
totally mysterious.  "visible" is a bit of a misnomer in the code, now.
2014-11-13 23:33:11 -05:00
a1e4befcca Fix crash after deleting automation region views (#4718). 2014-11-13 22:18:15 -05:00
589cc3162b Fix crash when deleting overlapped regions.
Use RegionSelection for MIDI regions as well, since the old dumb stub didn't do
some things correctly.  There's probably no reason to have a separate class for
this at all, and some good ones for putting all regions in the same selection,
so we should probably do that.  For now they are still separate in the
selection but use the same base class.
2014-11-13 21:32:08 -05:00
0547694ac3 fix compilation with gcc-4.9.1 2014-11-13 00:11:32 +01:00
533b545295 add popup message and error log for AU crash reports 2014-11-12 13:35:15 +01:00
d5ec118a1e add AU plugin scan to Preferences UI 2014-11-12 13:32:53 +01:00
Jeremy Carter
ca249f3e7c fixed automation *_all button crash 2014-11-11 19:33:25 -05:00
Jeremy Carter
7c263f3bc4 Added Write All, Play All, etc. automation buttons to generic plugin UI 2014-11-11 18:05:27 -05:00
72b063b6eb add 512px icon 2014-11-11 15:22:09 +01:00
73e25ec571 redraw entire canvas when ColorsChanged is emitted 2014-11-10 10:45:33 -05:00
0960122686 set canvas background color 2014-11-10 10:45:18 -05:00
1e6432450b add new color variable for arrange canvas background
Conflicts:
	gtk2_ardour/canvas_vars.h
	gtk2_ardour/default_ui_config.in
2014-11-10 10:45:00 -05:00
4260d0ca0e use new canvas colors header as necessary 2014-11-07 14:24:27 -05:00
1e8645bb8e remove TimeAxisViewItem::RIGHT_EDGE_SHIFT; fix up x-coordinate for right edge of an audio fade out 2014-11-07 12:58:56 -05:00
91c29b0ce5 simplify removal of outline from streamview base rect 2014-11-07 12:58:56 -05:00
cdcd1e973c simplify removal of outline from automation time axis base rect 2014-11-07 12:58:56 -05:00
30740983e0 fix up dimensions of ghostregion colored rect 2014-11-07 12:58:56 -05:00
44873d23e1 don't created vestigial frame canvas item for TimeAxisViewItem unless actually needed.
They don't cost very much but there's just really no point cluttering up the scene graph with generally invisible
and insensitive items
2014-11-07 12:58:56 -05:00
33b2dccacc add a selection frame to TimeAxisViewItem along with a slew of other height/positional fixes 2014-11-05 19:45:23 -05:00
555ceba876 various positional fixes for TimeAxisView, including moving the separator line to the bottom, and keeping it in the same coordinate space as the TAV group 2014-11-05 19:45:23 -05:00
9da7a15c60 streamview no longer outlines any part of its canvas rect (we leave that to time axis view separators)
Also remove commented "- 1.0" adjustments that were already commented
2014-11-05 19:45:23 -05:00
8641dcdb0c permit initial contents of a FloatingTextEntry 2014-11-05 07:41:43 -05:00
f1e6b28ab7 use ArdourCanvas::TimeRectangle for regions, notes, markers 2014-11-03 21:48:08 -05:00
90825340c9 move start of a time axis view back to 0.0 on the x-axis, not 1.0 2014-11-03 21:48:08 -05:00
9f3f017736 Check whether frequency controls are audible or low and provide appropriate controls.
Always clamp set value to controller range.
2014-11-03 18:41:57 -05:00
6e16f69c26 Add menu to set frequency controls in beats, and half or double current value.
Test with e.g. fomp:cs_phaser1_lfo LFO frequency.
2014-11-03 17:29:11 -05:00
35672fb80a Note selector dialog for note controls. 2014-11-03 16:37:19 -05:00
7204702c3f Reduce coupling between Plugin and PluginInsert. 2014-11-03 13:40:50 -05:00
21dde8f2a7 Fix crash when showing UI for plugins with output control ports. 2014-11-02 13:02:54 -05:00
23d95e1bca repropagate button press event outside of FloatingTextEntry so that the click is still effective, as well as terminating the edit 2014-11-02 11:25:49 -05:00
f76109d873 use modal grab and event_is_inside_widget_window() to provide "expected" behaviour when editing in a FloatingTextEntry 2014-11-02 08:58:07 -05:00
e4e6f00103 slightly increased debugging output for -D accelerators 2014-11-02 08:57:58 -05:00
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
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
6dfb11c2d0 Move ParameterDescriptor from Plugin to its own header.
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
2014-11-02 02:10:24 -05:00
bd6ba1717e Decouple ControlUI from port index. 2014-11-02 02:10:24 -05:00
0178f85b05 Don't complain about properties with plugins that do not support them. 2014-11-02 02:09:14 -05:00
7baa3275e0 one off by one off - red-selection outline
This mitigates issues introduced with 3.5-3406-g90872c2
but is not a final solution. The x-axis is still broken.
see #5589 comment0015955
2014-11-01 21:05:43 +01:00
dbecf44416 NOOP, just whitespace/indenting 2014-11-01 18:24:47 +01:00
049c11de58 Slider Controller API Change
Prepare to allow BarController (with Spinbutton) to translate
internal/interface values for the SpinBox.

(The change is irrelevant for the fader/slider itself which
always use the [user-]interface value)
2014-11-01 18:22:29 +01:00
45b7a03b7b retain selection on track-height change 2014-11-01 16:54:52 +01:00
52f44dc4da convert interface <> internal values for all automation
fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges
2014-11-01 07:27:35 +01:00
5de6c21ec1 More generic RT-safe implementation of LV2 properties. 2014-10-31 20:46:43 -04:00
0a60077a61 Fix spelling error. 2014-10-31 20:46:09 -04:00
db98083f20 Remove unused variable. 2014-10-31 20:46:09 -04:00
cbb4be908a add new floating text entry class (ported from Tracks) 2014-10-31 12:26:57 -04:00
f7ce57e5b2 plug memory leak 2014-10-31 06:02:32 +01:00
b8cea19b95 prototype [LV2]patch-change support for generic plugin UIs. 2014-10-31 03:26:47 +01:00
1648d9cbc6 fix "Session Setup" dialog obscures "File Open" dlg on windows. 2014-10-29 23:05:46 +01:00
da4365255c fix typo in 58fec98a
the documentation was correct: “GTK+ uses G_PRIORITY_HIGH_IDLE + 10
for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 for redrawing
operations.”  but the priority for the idle visual changer was wrong.

fixes, follow-playhead and zoom/scrolling under load (no idle)
2014-10-29 18:31:13 +01:00
1d0612ceb6 redraw summary when theme preference changes & consolidate code. 2014-10-29 16:07:13 +01:00
fdedf7153e Kind of Blue 2014-10-29 12:06:20 +01:00
cca7ddf046 fix vertical canvas scrolling
* properly account for hidden tracks
 * allow to scroll to last track
2014-10-29 12:06:20 +01:00
300d765f17 fix summary display (offset on-canvas rulers) 2014-10-29 12:06:20 +01:00
ea26d70cad fix summary re-size
w/USE_CAIRO_IMAGE_SURFACE
2014-10-29 12:06:20 +01:00
bb792c0e07 ugly hacks to make the peak display widget not act like a text entry widget. This should die. 2014-10-28 20:31:06 -04:00
0abcce0735 Revert "change the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton, since it is absolutely not editable."
This reverts commit 58f7d02bf2.

Conflicts:
	gtk2_ardour/default_ui_config.in
	gtk2_ardour/gain_meter.cc
2014-10-28 20:31:06 -04:00
4ed910748c don't show x-fade menu when right-clicking on frame handles
Fix crash with midi-regions (they have a frame-handle but no x-fade).
fixes 2nd part of #5992 (backtrace 20141021-B)

This is nicer in one way: When the cursor is "trim" the x-fade
context menu is no longer accessible.
And a bit worse: The x-fade context menu is only accessible on the
small fade-handles (boxes) and on the x-fade itself.
2014-10-28 16:43:45 +01:00
c0a28fca09 add win IRC channel 2014-10-28 02:40:04 +01:00
8dc41bb700 fix potential crash at session close (when port-matrix is visible)
remove_aux_or_listen() -> PortMatrix::route_processors_changed()
-> setup_global_ports() -> PortGroupList::gather() -> crash
if some session ports were already removed.
2014-10-27 21:15:39 +01:00
ec92524fe9 file binary compat is for windows in general (not msvc)
Fixes crash with MIDI file save/load.
2014-10-26 03:10:53 +01:00
baea04713f combine short periodic timeout functions for windows.
Fixes excessive CPU usage (spinlock instead of sleep/WaitForSingleObject)

MS Windows has a scheduler time-slice of 15ms.
Ardour has two fast timeout functions: The FPS timeout (20-60Hz, clock
video-monitor) and a fast-screen-update (25Hz, meters etc).
They are loosely coupled (async) and scheduled from the main application
thread (gtk main).

Since they're async, gtk schedules them as needed. Even though the actual
period of the separate timeouts is larger. The effective period between
all timeout callbacks is <15ms and the main application thread never idles.
2014-10-25 19:21:15 +02:00
f900711136 port changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.
Fixes deadlocks caused by mutex on Locations list, and clarifies the purposes and uses of the class-level and
object-level change-related signals.
2014-10-24 12:18:46 -04:00
a7ca603ab6 show meter-bridge context-menu on mouse-down 2014-10-23 14:45:54 +02:00
c5e97ea21b Don't show meter-type menu for MIDI-only meters 2014-10-23 14:45:49 +02:00
730e09ce65 another round of compiler warning fixes 2014-10-23 05:31:40 +02:00
ca48fffd72 avoid name conflict with Note (gtk2_ardour/note.h) 2014-10-23 03:43:04 +02:00
c6a3d6bc48 small round of compiler warning fixes 2014-10-23 03:43:04 +02:00
5ff0c6b319 prevent negative playhead positions from entering code via serialized state 2014-10-22 17:07:11 -04:00
aa7fdf82a0 windows: allow loading session with absolute path 2014-10-22 15:22:55 +02:00
1428d003df hide splash screen on Windows
..until we get GDK window stack to play along.
2014-10-22 14:30:11 +02:00
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
90df6f3fe6 some keyboard layouts have KP_Separator instead of KP_Decimal 2014-10-21 16:36:15 -05:00
65821f96b8 slightly closer to correct color for peak display button when not active.
This cannot be correct at present because all buttons get a fade applied to them.
2014-10-21 17:26:52 -04:00
7f15aaf0cf set correct font for peak display button 2014-10-21 17:26:21 -04:00
00f604019d add ::set_layout_font (const Pango::FontDescription&) to ArdourButton 2014-10-21 17:25:50 -04:00
58f7d02bf2 change the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton, since it is absolutely not editable.
This adds a new button name and corresponding colors in default_ui_config which requires a theme reset
2014-10-21 16:01:31 -04:00
b2a183d4b7 a few tweaks to zoom computations so that zoom-to-range works correctly 2014-10-21 14:48:45 -04:00
b73f725676 remove mouse zoom mode; bind z to zoom-to-range 2014-10-21 12:47:53 -04:00
46f5c0c769 fix note 15897 on #5589 - only use fader cursor for region gain line when in mouse gain mode 2014-10-21 11:50:06 -04:00
c2ae228dd3 add mouse mode enums to enums.cc (just for utility purposes) 2014-10-21 11:49:27 -04:00
f369208334 Disallow midi-note duration changes beyond region boundaries
Fixes crash/assert with negative Beats.

TODO discuss alternative:
 automatically extend/trim region (if possible) or
 accept but hide notes that are out of bounds. That would need
 some solution for ghost notes which still can have negative Beats
 while dragging.
2014-10-21 15:48:11 +02:00
4cde08cdb8 fix midi-ghost region y-scale 2014-10-21 14:05:41 +02:00
58fec98a4d fix track height resizing on OSX.
If the transport is running, g_idle with G_PRIORITY_DEFAULT_IDLE is
never called.

TODO: check other g_idle functions in libs/gtkmm2ext
2014-10-21 13:20:17 +02:00
31b033f0d2 fix region drag/drop from region list
The canvas’ Y-offset (rulers & scroll) needs to be subtracted here.
2014-10-21 11:46:15 +02:00
148c1f1768 fix stuck key-grab/scrolling.
Problem: mouse-scrolling over a MIDI region in internal edit mode
never released “magic widget focus” (mod keys and global scrolls after
that were ignored). -> added to leave_notify.

Also, the MouseModeChanged signal needs to be emitted when internal edit,
mode changes in order to trigger MidiRegionView::mouse_mode_changed(), 
which in turn releases the magic focus while still hovering over a MIDI
region.
2014-10-21 11:07:53 +02:00
a9532179d5 Midi Region: pass unhandled scroll events to regionview
see note in MidiRegionView:📜 “allow PrimaryModifier scroll
through so that it still works for zoom.”
2014-10-21 11:01:28 +02:00
a1245de1ba track height fixes:
* retain [custom] track-height
  Editor::override_visible_track_count() is called repeatedly (for
  every change), there was a 50/50 chance of it saving the right value.

* adjust default for new sessions: use “Normal” track height until
  told otherwise.
2014-10-20 20:33:28 +02:00
ffde2fb5f9 OS 10.10 compile fixes
* fix clang pickiness regarding boolean
 * ignore ‘verify’ macro
 * tested with Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
2014-10-19 23:15:13 +02:00
d34bd9e6a0 fix midi automation sliders
Allow controls to work without a list. see also 34c1465 and b469cd2
2014-10-16 21:21:45 +02:00