13
0
Commit Graph

7572 Commits

Author SHA1 Message Date
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
8d8717800d add tearoff reattach for the editor 2014-10-16 13:44:36 -04:00
8097b8c762 add action and menu entry for "reattach all tearoffs".
So far only does the transport tearoff
2014-10-16 13:44:36 -04:00
fd79656d60 remove duplicate windows includes 2014-10-16 11:51:47 +02:00
ad017365f7 Merge branch 'cairocanvas' 2014-10-16 05:12:52 -04:00
e250eb5525 forward port ffd5c24 from master (extend video file ext list) 2014-10-16 01:16:07 +02:00
f77f54a6e2 correct msg in fatal error 2014-10-14 12:57:39 -04:00
128b240f46 remove code commented out in 0874426a (2009/06) 2014-10-14 12:56:28 -04:00
fc08e10562 fix note 0015914 (part of #5589) 2014-10-13 21:02:20 -04:00
4d0f30f5a8 fix note 0015900 on #5589 (cursor doesn't change when switching edit point 2014-10-13 15:19:07 -04:00
7ea039ee91 add script to run vst-scanner in gdb 2014-10-11 21:00:59 +02:00
e19e6dc73a amend 5d0303b - fix editor summary leak 2014-10-11 13:36:52 +02:00
5d0303b851 fix memory leak in editor summary. 2014-10-10 16:18:03 +02:00
ac420ba87d amend previous commit
blame gitx 0.15.1949: it updates the stage view
even though the changes are not staged.
2014-10-10 15:24:52 +02:00
3121f5b2fc add script to run ardour in valgrind/massif 2014-10-10 15:03:26 +02:00
e6252e0494 add support for OSX 10.9 clang's lldb (there's no gdb on 10.9) 2014-10-09 09:56:18 +02:00
aac3ca5521 initialize some uninitialized vars - closes #5974 2014-10-08 19:16:21 +02:00
a7da906a79 NOOP, proper label for flat carbon header includes 2014-10-07 16:53:10 +02:00
aab64ecd5c OSX 10.9.5 clang++ loves nil more than ever
#undef nil // for sigc++ compat does no longer work as expected.
2014-10-07 14:48:08 +02:00
7bfa25777b OSX 10.9.5 compile fixes - part one 2014-10-07 14:46:06 +02:00
d1564669cf windows application icon 2014-10-05 02:12:25 +02:00
3f7986198b fix typo in 9034e58b1 2014-10-03 23:58:51 +02:00
9034e58b15 set mingw vamp plugin path 2014-10-03 23:07:45 +02:00
c3847269c2 fix crash when changing the Audio System
When the i/o channel spinbox widgets are realized, they call
print_channel_count(). A "0" is formatted as "all available channels".
This causes the GTK::Entry inside the spinbox to emit a "changed"
signal which in turn triggers a parameter_changed(), [..], store_state(),
which calls into the spinbox again while it is being realized,
which makes gtkmm barf.

Start Ardour with JACK running (autoconnect to jack), Window ->
Audio/Midi settings -> initial no_control_notebook. Change
Audio System -> [control widgets are realized] -> glibmm std::exception
2014-10-03 15:32:12 +02:00
5e61c8ab12 fix engine control widget sensitivity 2014-10-03 15:08:06 +02:00
c2fc7f04a7 Don't select newly created regions after splitting selected regions (except on Mixbus)
I can't see a reason to select the newly-created regions after
splitting selected regions: I can't think of any case where you'd want
the next operation to apply to both the regions, and it makes it very
easy (in my experience) to trim/move/&c. both regions afterwards by
mistake.

However, this behaviour is desired for Mixbus, so make the selection of
regions after a split of selected regions dependent on
Profile->get_mixbus() for now.
2014-10-02 21:00:33 +01:00
1d790355ca Fix warning from ./waf i18n about empty string
./waf i18n warns about passing an empty string to _(). Actually, the code
in question just wants to make a label not appear, so it might as well
just hide or show it as appropriate rather than attempting to set its
text to the empty string.
2014-10-02 18:03:19 +01:00
609d3688f0 Updated UK English translation 2014-10-02 18:03:19 +01:00
44f71ce599 Text tweaks and typo fixes 2014-10-02 18:03:19 +01:00
1c5246b5f1 amend 24289299 - pango fontmap w/mingw 2014-10-02 19:01:12 +02:00
242892999f register ArdourMono font with windows 2014-10-02 06:11:15 +02:00
0d20cd5911 from zero to windows installer 2014-10-02 00:48:36 +02:00
4f58638ac0 harfbuzzed - also reverts 666de70d 2014-10-01 16:24:37 +02:00
d75d6a833a mingw environment: ArdourMono.ttf 2014-10-01 04:01:14 +02:00
a968df97de update video NO_OFFSET to 64 bit 2014-10-01 00:26:21 +02:00
50a7637d09 fix waf install, update ui config name 2014-10-01 00:12:29 +02:00
666de70ddc pango --with-included-modules=yes does not provide explicit pangoft header 2014-09-30 19:08:17 +02:00
6ce93913f5 VST native windows does not need vst/winmain.c 2014-09-30 19:08:16 +02:00
87d3d5a08a fix include order 2014-09-30 19:08:16 +02:00
e7255b0473 rename variable: 'small' is a keyword on mingw/win32 2014-09-30 19:08:16 +02:00
738336fbd5 invalidate meter's ColorsChanged connection:
fixes crash: open session, close, open another session, change theme.
old [destoyed] meters from first session were notified about color change.
2014-09-27 19:17:13 +02:00
fb0de10b93 un-hardcode DIN & VU meter-colors, 2014-09-27 17:28:32 +02:00
4cc07a2a5c reinstate tooltip style 2014-09-26 11:04:56 -04:00
94fd0b39e0 fix position of left edge of a marker rectangle when the label is on the left, and slightly pad the rectangle when the label is on the right 2014-09-22 12:03:30 -04:00
45fd3593eb Fix finding session templates
Session templates are directories: use find_paths_matching_filter() rather
that find_files_matching_filter() to search for them. Fix a tiny comment
typo I spotted along the way too.
2014-09-22 13:21:14 +01:00
6a971e645d use new ARDOUR::Location signals in GUI
Conflicts:
	gtk2_ardour/editor_markers.cc
2014-09-19 23:06:26 -04:00
ceff2e3a62 plugin widgets were written to use Internal values, so use that for now 2014-09-18 17:25:11 -05:00
e9ab53402c add action and menu item to control use of skip playback 2014-09-17 12:28:36 -04:00
0943a559e0 shift-drag on range marker bar creates skip ranges, for now 2014-09-17 10:59:19 -04:00
9331aa69bd new code to support creating skip markers 2014-09-17 09:39:29 -04:00
4130513689 remove old connections to (now) static Location signals 2014-09-17 09:39:05 -04:00
f415e24514 do not stupidly try to save punch/loop/session ranges during clear_ranges op 2014-09-17 09:38:17 -04:00
dc924db851 correctly connect to Location static signals 2014-09-17 09:37:39 -04:00
4e411dfd7b set the CairoWidget focus handler; reset focus when the mouse pointer leaves the Editor window 2014-09-16 12:46:39 -04:00
9204b2837e ArdourButton should call the focus handler of CairoWidget from its button press event 2014-09-16 12:45:21 -04:00