13
0
Commit Graph

9002 Commits

Author SHA1 Message Date
nick_m
00a1d23d83 Grey out unavailable note context menu items rather than hiding them. 2015-11-01 06:06:31 +11:00
nick_m
336f8d47fe Clarify context menu for midi notes.
- right click on a note selects it if unselected or selection empty.

	- note_context_menu is shown as described in #6348
2015-11-01 05:22:55 +11:00
nick_m
0e809dd1d5 Add comment to MRV snap workaround. 2015-11-01 01:43:13 +11:00
nick_m
d5c4d068b0 Fix snap modifiers not working on notes when grid is set to off. 2015-10-31 06:02:54 +11:00
4a3413f2d4 suspend timers while flushing the gtk-event queue.
This fixes an issues where Ardour never completes to flush the GUI event
queue due to rapid updates for meters and similar events.

ARDOUR_UI::load_session() never returned and the complete session
ran inside Gtkmm2ext::UI::flush_pending(), this later causes a crash
at exit.

as side effect, this also speeds up session load.
2015-10-30 15:55:27 +01:00
4fa564c03b RAII Timer Suspend wrapper 2015-10-30 15:55:27 +01:00
nick_m
3e63439637 "End" -> "end" in end point trim command name. 2015-10-30 23:43:09 +11:00
nick_m
5e7c7e52bd Use automation line's frame of reference for y position.
- removes the need for 'pixel hunting' wrt NAME_HIGHLIGHT_SIZE.
	- new control points generated by clicking on a line are placed
	  where the verbose canvas cursor says they are.
2015-10-30 21:14:16 +11:00
nick_m
6d98ccf901 Dont do duplocate calls to MidiRegionView::trim_front_ending () in TrimDrag.
- fixes #6658
	- also leaves undo history alone if point trim does nothing.
2015-10-30 04:01:44 +11:00
nick_m
73328172d6 Fix reversed ratio in last commit. 2015-10-30 00:01:33 +11:00
nick_m
36dd7f8d9d Start line drag using canvas y coords.
- fixes #5759
2015-10-29 23:37:01 +11:00
be69dd279b rework dbf28e3 (hidden parameters) 2015-10-28 21:25:01 +01:00
ebbe96aa08 note to self: at least test compilation before git push. 2015-10-28 19:00:59 +01:00
dbf28e320c don't display hidden automation-controls. 2015-10-28 18:58:46 +01:00
0992272858 fix embedding AU/carbon UIs
the UI shows top/left (not centered, no resize) more detail work to come.
2015-10-28 14:10:49 +01:00
8d1edb13d3 Revert "potential fix for some AU plugin UIs not displaying"
This reverts commit e8fe35d96e.
2015-10-28 14:02:57 +01:00
5dd5bf0f70 notify LV2 GUIs about port-changes when loading presets 2015-10-28 04:06:14 +01:00
e8fe35d96e potential fix for some AU plugin UIs not displaying
looks like not all AU plugin GUIs redraw themselves if 
[win setAutodisplay:1] is unnot.

A user reported that some Waves plugins and Shattered Glass 32bit AUs
are blank in 4.4 on 32bit OSX.

see also 5eefdf7 and earlier AU/API changes.
2015-10-27 23:12:53 +01:00
42424eeb6c another log-scale automation fix 2015-10-27 20:54:09 +01:00
nick_m
61729f8e68 LineDrag fixes wrt initial drag position and display of y value. 2015-10-28 05:33:43 +11:00
nick_m
bf9e752b4d AutomationLine::drag_motion () returns any clamped fractions correctly. 2015-10-28 03:14:10 +11:00
nick_m
fc8b03eef5 Fix incorrectly placed control points (y-axis). fixes #6647.
- also use the return from AutomationLine::drag_motion () in
	  anticipation of it correctly reporting its clamping to
	  AutomationRangeDrag.
2015-10-28 02:46:03 +11:00
1de4ed937c fun with valgrind 2015-10-27 11:15:34 +01:00
nick_m
e78a44d4e5 Markers use the selection change stack. 2015-10-25 05:26:44 +11:00
nick_m
d48564aee5 Amend last commit. 2015-10-25 04:12:38 +11:00
nick_m
663dd1cf2c Set a larger minimum size for recent session scrollers. 2015-10-25 04:07:19 +11:00
a50af45a14 back to mjpeg (revert 2cb511e and 3f157f9) for now
There is anecdotal evidence that using mpeg4 as codec leads to issues
(xjadeo indexes and gets stuck at 99%, likely in libavcodec).

The main motivation for using mpeg4 is/was windows/VFAT 2GB file limit
and improved video quality.  This will have to be revisited.
2015-10-23 23:34:21 +02:00
076ca20321 Delete SystemExec in the main process thread. 2015-10-23 23:29:04 +02:00
nick_m
90aec831cb Relative snap for markers.
- also removes many uninitialised variable warnings in
	  editor_drag.cc found by cppcheck.
2015-10-24 04:59:57 +11:00
nick_m
c9864b71a0 ResizeNoteDrag selection click behaves as NoteDrag's does. 2015-10-24 01:19:00 +11:00
nick_m
96524d863b Clear point selection when uniquely selecting a note.
- Also fix selection undo when creating notes w/control
	  in MouseContent mode.
2015-10-24 00:07:03 +11:00
f4100dc529 mime-type definition is version independent.
File glob "*.ardour" -> application/x-ardour is defined in ardour.xml
2015-10-22 21:05:20 +02:00
nick_m
4f5ca7ecb5 Use lwrcase_dirname for desktop file names and substitutions. 2015-10-23 04:03:16 +11:00
a02ffb9eed set executable and icon name in desktop-file
Also opt for version-agnostic mime-type (file-format version
is independent of program-version and of file-extension)
2015-10-22 18:09:16 +02:00
b074ff0dd5 Remove GhostRegion::CatchDeletion signal to reduce session close times
Currently when a GhostRegion is deleted by its "parent" RegionView it emits the
static GhostRegion::CatchDeletion signal which is connected to the
RegionView::remove_ghost method of every RegionView instance.

With a static GhostRegion::CatchDeletion signal a particular test session
causes 31 Million calls of RegionView::remove_ghost on Session deletion and the
session takes 70 seconds to close with a debug build.

The lifetime of a ghost region is tied to both the TimeAxisView(TAV) and
RegionView(RV) in that when a RegionView is deleted all GhostRegion instances
associated with the RegionView should be deleted or when a TimeAxisView is
deleted all ghost regions that are contained in the view should be deleted.

This means that there needs to be notification between GhostRegion and both
classes. Instead of using a signal for this as we know there are only two
listeners and GhostRegion already holds a reference to the TimeAxisView, also
take a reference to the parent RegionView in the GhostRegion constructor and
use it to notify the RegionView when GhostRegion destructor is called so it can
drop any references it holds.

Using a direct function call in the GhostRegion destructor to notify the
TimeAxisView and RegionView "parents" brings the unload/close time down for the
test session from 70 seconds to 4.5 seconds.

The GhostRegion also references canvas items that are added to the TimeAxisView
canvas group or at least a canvas group that it manages. So when the
TimeAxisView is destroyed and the canvas group that is the parent of those
items is destroyed, the GhostRegion's canvas items will also be
deleted/destroyed by the parent canvas item/group. This means the GhostRegions
must be destroyed when the TimeAxisView they are contained in is destroyed or
there will be dangling references to canvas items that have already been
deleted and trying to delete them again will be bad.
2015-10-22 11:51:03 -04:00
nick_m
0956708aa9 Build freedesktop files if requested. 2015-10-23 02:21:01 +11:00
nick_m
72556cdd7a Amend last commit. 2015-10-23 02:14:03 +11:00
nick_m
410d4316b9 Center some windows known to be presented by ardour. 2015-10-23 01:10:56 +11:00
d04c16e927 fix edge-case: (move playhead w/o session) 2015-10-22 14:14:27 +02:00
André Nusser
2c4e79d0a0 Also use overwrite_file_dialog at all the other places. 2015-10-21 23:28:44 -04:00
André Nusser
5d50abed75 Confirmation on overwrite for track and session templates. -fixes #6587 2015-10-21 23:28:44 -04:00
nick_m
217b2c7753 More desktop file renaming. 2015-10-22 03:51:15 +11:00
nick_m
cadeb3d009 Remove old ardour3 desktop files. 2015-10-22 02:54:53 +11:00
nick_m
203931e846 Add ardour4 desktop and mime type files.
- looks like the install target for these has been removed, but
	  the existence of these may be of help to packagers.
2015-10-22 02:46:18 +11:00
nick_m
54e613746c User interaction preferences tooltips clarify button names. 2015-10-22 01:23:36 +11:00
0880a166c4 variable name change: make purpose of formerly named "_values" in LV2 plugin UI code more clear
And if this is wrong, then rename it again with the right one
2015-10-21 08:10:25 -04:00
270ec425f8 confirm LV2 GUI changes
If a parameter change is initiated by the UI, the host sends a
notifications to confirm (echo) or invalidates (replaces) the value.
(automation: touch, playback,...).

Stateless LV2 GUIs without internal data-model depend on this.
2015-10-21 01:57:16 +02:00
4953d09893 hack to keep UI responsive with heavy AU views. 2015-10-20 19:14:14 +02:00
c22a899c6d OSX copy/constraint mod tweak (amend 0675fe1) 2015-10-20 17:57:00 +02:00
47bbffc5d8 do not update LV2 output port displays unless the value has changed 2015-10-20 11:39:56 -04:00
1d4494961b add commentary 2015-10-20 11:31:18 -04:00
8533b8244f also update LV2 output port displays as part of periodic updates 2015-10-20 11:28:53 -04:00
ac008dac02 Clean up generic and LV2 plugin GUI to deal with ParameterChanged(Externally) alteration 2015-10-20 10:23:49 -04:00
7804a524dc Revert "rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result."
This reverts commit 336b2eb9a4.
2015-10-20 10:23:49 -04:00
336b2eb9a4 rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result.
The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST)
has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.

Significant modification of LV2 GUI updating was required.

Still to be tested for feedback loop issues: AudioUnits
2015-10-20 09:07:58 -04:00
0675fe1627 suggest primary-mod as default for copy
fixes inconsistency on OSX.
2015-10-20 11:12:14 +02:00
André Nusser
83b5bdbe95 Ctrl+shift functionality (toggle all) for plugin leds.
The Fader led has special behavior and is only toggled when clicked
explicitly.
2015-10-19 14:36:06 -04:00
nick_m
784adc53bb Test fix for further osx modifier ambiguity. 2015-10-20 04:08:28 +11:00
nick_m
1363f4f645 Fix incorrect display of "Command" modifier on osx. 2015-10-20 03:54:44 +11:00
nick_m
ea72303474 Rc option editor - don't translate "-". 2015-10-20 03:23:06 +11:00
nick_m
e1cb6f221c Fix typo for GTKOSX case. 2015-10-20 01:20:42 +11:00
nick_m
93d5b6c554 Set toggled automation controller using a double. 2015-10-20 00:53:31 +11:00
nick_m
d0c94c9779 Clarify user interaction preference tooltips. Also rebase branch on master. 2015-10-20 00:53:31 +11:00
nick_m
998fd1b015 Restored size of mixer list pane is at least 36 px. Revert default to 75. 2015-10-20 00:53:31 +11:00
nick_m
3fb3b85e3e Default to WIN_POS_MOUSE for dialogs also. 2015-10-20 00:53:31 +11:00
nick_m
4b230069f8 Mixer list pane can shrink to zero width. 2015-10-20 00:53:31 +11:00
nick_m
f46d3dbfaf New non-parented windows are initially positioned at WIN_POS_MOUSE again. 2015-10-20 00:53:30 +11:00
nick_m
e6b35d2cdd Fix snap modifier logic (again). 2015-10-20 00:53:30 +11:00
nick_m
a34f24d8de Rc option editor - alter restart message for user interaction tab. 2015-10-20 00:53:30 +11:00
nick_m
7494b94c63 No-op - rename variable. 2015-10-20 00:53:30 +11:00
nick_m
9511c9c86f Add tooltips to user config preferences. clean up combo ordering. 2015-10-20 00:53:30 +11:00
nick_m
231acfe191 ArdourKeyboard - fix snap / delta logic for triple modifier combinations. 2015-10-20 00:53:30 +11:00
nick_m
d295fe12e4 Click on a selected note unique selects it (as per regions, control points). 2015-10-20 00:53:30 +11:00
nick_m
d998fe10be Allow Alt-Shift-Windows modifier (nice for control point fine adjust).
- OSX equivalent to be decided.
2015-10-20 00:53:30 +11:00
nick_m
986a3a9775 Don't snap if fine adjust modifier used.
- permits non-alt modifier for fine adjust.
2015-10-20 00:53:29 +11:00
nick_m
be1396d066 Select the control point about to be deleted when using shift + right click.
- fixes incorrect selection changes when doing this.
2015-10-20 00:53:29 +11:00
nick_m
070c67bdcc Fix incorrect snap when adding region gain points. 2015-10-20 00:53:29 +11:00
nick_m
afcba4d3d3 Don't use the all_route_group() in Editor::set_selected_track_as_side_effect ().
- we don't appear to actually use it.
2015-10-20 00:53:29 +11:00
nick_m
52a239a254 Allow adding / toggling rubber band selection of automation control points. 2015-10-20 00:53:29 +11:00
nick_m
58068b4e85 Show verbose cursor control point values in MouseContent mode as well. 2015-10-20 00:53:29 +11:00
nick_m
6fe6f95d04 Fix for fine adjust overriding snap modifiers. 2015-10-20 00:53:29 +11:00
nick_m
578a60b875 Add error check to region gain control point selection undo. 2015-10-20 00:53:29 +11:00
nick_m
43b47d1169 Add missing diff to last commit. 2015-10-20 00:53:28 +11:00
nick_m
1451d8043a Region gain point selection behaves as per track automation. 2015-10-20 00:53:28 +11:00
nick_m
202a23d513 Add region gain point selection undo. 2015-10-20 00:53:28 +11:00
nick_m
ffed94d89b Automation - more toggled controller twiddling. 2015-10-20 00:53:28 +11:00
nick_m
24142a424e Fix redo action sensitivity for non-editor undo stack changes. 2015-10-20 00:53:28 +11:00
nick_m
9c102fa8d2 Make automation record undo per pass rather than per touch. 2015-10-20 00:53:28 +11:00
nick_m
877b258c74 Toggled automation fixes.
- don't attempt to insert two points on toggle.
	- remove forced touch->write mode change on toggle
	- initial state still wrong, but works much better overall.
2015-10-20 00:53:27 +11:00
nick_m
5afb645c9f Amend last commit. 2015-10-20 00:53:27 +11:00
nick_m
17294ab9ec Make control point selection more consistent.
- disallow simultaneous events via ControlList::editor_add ()
	- clicking on an automation line selects the points that define it.
	- don't 'flash' a region selection when using mousedraw mode.
	- cp click selection resembles region selection.
	- region gain points respect snap modifier (a la automation points).
2015-10-20 00:53:27 +11:00
bd6b4025de one less deprecated API 2015-10-18 23:29:58 +02:00
d17b73e989 GUI changes use new AppleUtility Library 2015-10-18 23:03:14 +02:00
601d51ce71 amend prev commit. 2015-10-18 14:31:04 +02:00
17b18a593e fix additive linkflags 2015-10-18 14:22:55 +02:00
e7b8e98db2 Replace static PBD::Signal in NoteBase with direct call to MidiRegionView
NoteBaseDeleted signal is static so each MidiRegionView(MRV) gets notified
about the deletion of each NodeBase instance even if it is contained in another
MRV

The NoteBase and MRV classes are currently coupled anyway, so this change uses
the reference to the MRV parent to directly call the parent when the NoteBase
is deleted. This is all in the GUI thread so I'm not sure why a PBD::Signal was
being used?

If the MRV class is the only reference holder to the NoteBase class
then I'm not sure if a callback is needed, perhaps the MRV should just remove
the note from the selection before deleting it but I'm not that familiar with
the code.

Signal emission/calls static NoteBaseDeleted signal vs direct with 10540
NoteBase instances.

static:

After Load Session: 6360638
After Unload Session: 12221026(5860388)

direct:

After load Session: 10540
After unload Session: 21080

Session Load/Unload time in master, debug/release with ~10000 Notes(seconds)

Load Debug: 32, 26
Unload Debug: 83
Load Release 32, 20, 42
Unload Release 26, 25

Session Load/Unload time with direct call debug/release(seconds)

Load Debug: 21.7, 18.1
Unload Debug: 69.4, 71
Load Release: 22.6, 13.4, 17.7
Unload Release: 24, 23.5

This is not a large Session, 1500 regions, 10000 notes so there is probably
some other funky stuff going on that needs fixing.
2015-10-17 22:15:07 -04:00
André Nusser
e807fe2b28 Introduce "Transpose..." also in the context menu of selected notes. 2015-10-17 22:12:55 -04:00
André Nusser
bc83699e44 Fix tiny memory leak. 2015-10-17 22:12:54 -04:00
André Nusser
d460bb3475 Include "Transform..." into MIDI region menu.
Everything has already been done except the including.
2015-10-17 22:12:54 -04:00
3de2f762f8 fftw-3.3.5/windows .dll includes threads lib 2015-10-18 02:44:26 +02:00