Commit graph

14331 commits

Author SHA1 Message Date
Robin Gareus
130023ff7d fix f6aaa16 (boost shared pointer) 2014-08-17 18:07:43 -04:00
Paul Davis
d893b493d6 return of the zero line 2014-08-17 18:07:37 -04:00
Paul Davis
1b58dd6ecf revert drawing of rectified waves back to previous approach since it (might be) slightly more efficient and is simpler to understand; add comments 2014-08-17 18:07:32 -04:00
Paul Davis
87cc9f7d4f completely rethink waveform rendering (again)
There are 3 possible components to draw at each x-axis position: the waveform "line", the zero line and an outline/clip indicator.
We have to decide which of the 3 to draw at each position, pixel by pixel. This makes the rendering less efficient but it is
the only way I can see to do this correctly.
2014-08-17 18:07:24 -04:00
Paul Davis
9dd5e2769b reset time axis view item name text color when selected status changes 2014-08-17 18:07:19 -04:00
Paul Davis
e0bceb3e4e fix logic error that meant one side of the waveform outline is not drawn; draw zero line before outline, for better effects with low amplitude waves 2014-08-17 18:07:14 -04:00
Robin Gareus
887dc842ef don't let enumerated device list strings go out of scope. 2014-08-17 18:07:10 -04:00
Robin Gareus
f56564258e statically allocate midi-options
fixes possible segfault when the data in the vector
goes out of scope due to RVO.
2014-08-17 18:07:04 -04:00
Robin Gareus
8798f8d88a for backends w/o control, save a fake state with only the "active" attribute.
This makes ardour start directly with external jack without asking if jack
was previously used. It also retains jackd settings if jackd was previously
started by ardour.
2014-08-17 18:07:00 -04:00
Paul Davis
71e3f4a72c when exporting regions, use ::legalize_for_path() on the playlist name so that filenames are legal.
Also, use Glib::build_filename() rather than hardcoding / as the separator. How did this escape the search for this error?

Conflicts:
	libs/ardour/session.cc
2014-08-17 18:06:51 -04:00
Robin Gareus
0df12b78a3 en/disable internal send+returns with tracks en/disable. 2014-08-17 18:05:20 -04:00
Paul Davis
437a655026 fix broken manually merge conflict fix from earlier cherry-pick 2014-08-17 18:04:58 -04:00
Paul Davis
8d84c21e73 #if 0-out a method not used in Tracks rather than remove it, to make merges with Ardour easier 2014-08-17 18:04:40 -04:00
Paul Davis
9ebbcdde09 Canvas::Group was removed 2014-08-17 18:04:05 -04:00
Robin Gareus
b130dc032e Do not allow to de/activate a track while the transport is rolling.
roll_delay and latency are only re-calculated when the transport is stopped.
de/activating a track is also not RT-safe.

Conflicts:
	gtk2_ardour/mixer_strip.cc
	gtk2_ardour/route_time_axis.cc
2014-08-17 17:53:50 -04:00
Paul Davis
d003eda9c3 button click (release, to be precise) within the canvas drop zone cancels all object and track selections 2014-08-17 17:44:34 -04:00
Robin Gareus
1a68b43ee8 fix latency-measurement dialog back-button. 2014-08-17 17:44:29 -04:00
Robin Gareus
c18826b858 ALSA-backend: dedicated Midi-Buffer n-periods (only use for HW output) 2014-08-17 17:44:23 -04:00
Paul Davis
28fdc71d70 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-08-17 17:44:17 -04:00
Paul Davis
72ab6f6fe5 add missing new files for canvas redesign 2014-08-17 17:44:12 -04:00
Paul Davis
f11ad4f901 explicitly qualify cast to ArdourCanvas::Container so that it works.
I assume that gcc is failing to complain about ambiguity with Gtk::Container even though there should
really be no ambiguity
2014-08-17 17:43:51 -04:00
John Emmas
c7240fa01d Rename all 3 backends for the MSVC sln file 2014-08-17 17:43:46 -04:00
John Emmas
32503e1585 Rename dummy backend to match Tim's name 2014-08-17 17:43:27 -04:00
John Emmas
53d387398b Rename jack backend to match Tim's name 2014-08-17 17:43:21 -04:00
John Emmas
211bfda0a5 Rename waves backend to match Tim's name 2014-08-17 17:43:14 -04:00
Paul Davis
3be5f658ea use newly factored canvas in gtk2_ardour 2014-08-17 17:43:03 -04:00
Paul Davis
98aa604aa0 refactor Canvas so that all Items have children; add Container abstract base class; rename Group as "Layout" and retain only drawing semantics 2014-08-17 17:42:59 -04:00
Robin Gareus
eeca22c67a virtual abstraction of Alsa Raw+Seq 2014-08-17 17:42:45 -04:00
Robin Gareus
048d127208 prepare ALSA sequencer 2014-08-17 17:42:39 -04:00
Robin Gareus
35b5f853cd alsa sequencer device/port listing 2014-08-17 17:42:34 -04:00
Paul Davis
dc757ab7c1 fix conflicts caused by XML-ization of old 2-canvas design 2014-08-17 17:40:48 -04:00
Paul Davis
af3143ba4a manually catch up on API changes in libs/ardour/import.cc 2014-08-17 17:40:19 -04:00
Paul Davis
157512cce3 fix missed API changes in editor dragging code 2014-08-17 17:39:50 -04:00
Paul Davis
4af36f221d new API for Session::possible_states() required minor changes in session dialog logic 2014-08-17 17:39:19 -04:00
Paul Davis
2219436888 clean up un-fixed merge conflict 2014-08-17 17:38:48 -04:00
Paul Davis
2987e8ba8b fix some confusion when redrawing editor/mixer track/strip displays after track/bus deletion
The code relied on the idea that the order-key resync that occurs after deletion would change the order keys and thus cause
a redisplay. But since both the editor and mixer can initiate an order-key resync, the other window's resync will actually
do nothing (the order keys will already be correct). This led to the incorrect placement of material in the tracks canvas,
because the first resync triggered a redisplay while the route still existed, and then the second resync didn't cause a
redisplay (repositioning) but the canvas elements representing the track went away.

Fixed by forcing a redisplay in both editor and mixer if a route deletion is believed to be triggering a row deletion
in their underlying data models.

Conflicts:
	gtk2_ardour/editor_routes.cc
2014-08-17 16:39:01 -04:00
Paul Davis
207bbbb395 fix some confusion when redrawing editor/mixer track/strip displays after track/bus deletion
The code relied on the idea that the order-key resync that occurs after deletion would change the order keys and thus cause
a redisplay. But since both the editor and mixer can initiate an order-key resync, the other window's resync will actually
do nothing (the order keys will already be correct). This led to the incorrect placement of material in the tracks canvas,
because the first resync triggered a redisplay while the route still existed, and then the second resync didn't cause a
redisplay (repositioning) but the canvas elements representing the track went away.

Fixed by forcing a redisplay in both editor and mixer if a route deletion is believed to be triggering a row deletion
in their underlying data models.

Conflicts:
	gtk2_ardour/editor_routes.cc
	gtk2_ardour/editor_routes.h
2014-08-17 16:29:16 -04:00
Paul Davis
08768cef90 ensure that all waveviews have ALL their colors set accurately before first render
Avoids occasional bright red zero line drawn because the color(s) had not been reset correctly
2014-08-17 16:28:11 -04:00
Paul Davis
27be517b9f explanatory comment 2014-08-17 16:28:05 -04:00
Paul Davis
281ebd951e correct conversion of drop y-position into trackview for drag-n-drop of external files 2014-08-17 16:28:00 -04:00
Robin Gareus
ca90eea96c no more stack smashing, renice debug messages 2014-08-17 16:27:56 -04:00
Robin Gareus
b1e3adbc56 latency measurement dialog updates:
* distinguish errors: no ports and no engine.
* fix "No measurement results yet" message at successful end
* stop update callback
2014-08-17 16:27:50 -04:00
Robin Gareus
8ca38ef634 engine-dialog: properly restore previous active state 2014-08-17 16:26:51 -04:00
Robin Gareus
f2c98d886b rework raw-midi drain strategy (workaround for sync devices) 2014-08-17 16:26:46 -04:00
Robin Gareus
c1345f2bb7 fix port-unregister (on failed latency measurement) 2014-08-17 16:26:38 -04:00
Paul Davis
9efe20d919 fix non-working cmd-Q on OS X. For some reason the shenanigans related to removing it from various menus as part of OS X standards breaks the accel system 2014-08-17 16:26:32 -04:00
Paul Davis
b2e2b7639c change the way font specifications are used in UI config files
If no font family is specified, enforce use of Sans to match GTK behaviour (which we inadvertently relied on, it appears)
2014-08-17 16:26:28 -04:00
Paul Davis
cca9f676a1 modifications to region drag implementation
(1) if we're dragging over the drop zone, then x-axis motion is irrelevant for threshold-of-move
(2) store original time axis view of a dragged region so that if we create a new track with the region drag, it can be the same height
2014-08-17 16:26:21 -04:00
Paul Davis
7f63055578 various fixes for places that used get_font_for_style() ... converted to use UIConfiguration::get_canvasvar_*Font()
Conflicts:
	gtk2_ardour/mono_panner.cc
2014-08-17 16:26:14 -04:00
Paul Davis
4311b70d4f add bold monospace font specs to canvas_vars/ardour3_ui_default.conf 2014-08-17 16:25:31 -04:00