Commit graph

7832 commits

Author SHA1 Message Date
Valeriy Kamyshniy
6377fe89a6 [Summary] Adding missing initialization of the date &time formats. “Init trashes” caused a bit ruined logic of the export dialog. 2015-01-27 17:06:54 -05:00
John Emmas
302dc2bea3 Don't try to dereference a NULL ptr (the function 'ARDOUR::IO::nth()' can return an invalid ptr, so let's make sure we test for it)
Note 1: Potentially we could have the same issue with 'AutomationLine::nth()' (although the current code seems okay)

Note 2: This (specific) problem seems mostly to affect Mixbus3 when it tries to load an old (version2) session from Ardour2. Mixbus can mark certain IO ports as being 'unused'. While loading sessions, function 'ARDOUR::IO::ensure_ports_locked()' deletes any unused ports. But later, the function 'ARDOUR::IO::make_connections_2X()' was crashing while trying to connect those (now NULL) ports. This commit fixes that crash but there's some evidence that it might only have moved the problem elsewhere. The version2 sessions now open successfully - but an MSVC (Debug) build now crashes whilst closing them (the Release build however, is okay). Someone who's more familiar with the code than me should review the Mixbus3/Ardour2 loading procedure to make sure it's safe.
2015-01-27 11:59:23 +00:00
Paul Davis
cab01bac6c on OS X, do not require click to activate the application 2015-01-26 11:55:58 -05:00
Paul Davis
bd3643a597 fix declaration of Cocoa NSApplicationDelegate methods 2015-01-25 12:52:26 -05:00
Paul Davis
7c7f642a6f Revert "alter default disk chunk sizes"
This reverts commit 3068e55e51.
2015-01-25 11:42:35 -05:00
Robin Gareus
e6bb75cf01 audio-engine use internal API to stop
emit signal(s) when engine is stopped due to backend
change.
2015-01-25 10:19:06 +01:00
Paul Davis
1fb83d698c make butler thread merely ask for session state save, not actually do the save itself.
This prevents the possibility of cross-thread calls in the GUI when it adds its state
to the session via extra XML
2015-01-24 19:27:28 -05:00
Paul Davis
ab3ec791ea Add a new signal (not yet used) to initiate session saves; alter signal name for existing signal used to allow other objects to add XML state to session 2015-01-24 19:06:31 -05:00
Paul Davis
3068e55e51 alter default disk chunk sizes 2015-01-24 19:05:05 -05:00
Paul Davis
5ff6402dad add function to get data width for ARDOUR::SampleFormat 2015-01-24 18:53:10 -05:00
Paul Davis
ccd881d518 ScrollGroup::covers_{window,canvas}() need to account for possible non-zero position of the group.
They also do NOT need to consider scroll offset
2015-01-24 18:48:28 -05:00
Paul Davis
e84e1f7403 ScrollGroups are kept in their own list, so ::window_to_canvas() does not need to inspect root group children to find them
Conflicts:
	libs/canvas/canvas.cc
2015-01-24 18:48:15 -05:00
Robin Gareus
db28eefc49 ALSA backend: synchronous switch to/from freewheeling 2015-01-24 23:39:41 +01:00
Robin Gareus
f2ea059db3 DummyBackend: sync switch to freewheeling 2015-01-24 22:45:42 +01:00
Paul Davis
3b2c23be93 split apart read and write chunk size and offer platform-dependent sizes for reading. Write chunk size should remain unchanged from before. 2015-01-23 12:25:49 -05:00
Robin Gareus
f282884094 apply Theme > “Show waveform clipping”
fixes http://tracker.ardour.org/view.php?id=5589#c15515
2015-01-21 19:35:04 +01:00
Robin Gareus
304b05ffd9 clarify reasonable synth description. 2015-01-20 21:25:59 +01:00
Robin Gareus
9c992fa97c few more basic ControList/Curve Tests 2015-01-20 00:46:58 +01:00
Guido Aulisi
c6e71a683e Curve::_get_vector: fix return value when veclen == 1
When the crossfade length is only 1 frame, I got strange
gain coefficients from get_vector (63 in my case).
The function wrongly returned the x axis value.
2015-01-19 23:55:52 +01:00
Robin Gareus
5190cbc9b2 2-point Curve Linear Interpolation Test 2015-01-19 23:55:52 +01:00
Robin Gareus
2a7389d8df minimalistic Evoral::Curve Unit Test. 2015-01-19 22:15:28 +01:00
Robin Gareus
b0a5245ef0 Hotfix crash in OSX engine dialog.
This is not really a fix, just some quick hack
to make ardour start at all if there’s no prior
CoreAudio EngineState in the config.
2015-01-19 17:50:50 +01:00
Ben Loftis
d2fa2450aa use C locale, because POSIX locale is not supported on windows, and operation is undefined. C works on all platforms 2015-01-19 07:29:25 -06:00
John Emmas
8900d7d9ea On Windows, #include <shellapi.h> so we can use ShellExecute() 2015-01-18 18:52:24 +00:00
Ben Loftis
a994dbaa0c fix open_uri for windows 2015-01-18 11:16:28 -06:00
Ben Loftis
d3227ac0d0 Dramatically improve windows session-save-time by avoiding recursive calls to set_locale. 2015-01-18 09:43:21 -06:00
David Robillard
219a09496f Fix MIDI bounce/consolidate note resolution. 2015-01-17 22:19:57 -05:00
David Robillard
d23eaea2ab Fix stuck notes in short MIDI regions. 2015-01-17 21:33:00 -05:00
Robin Gareus
20ea90a186 waf: fix concurrency issue with duplicate targets
The same source file cannot safely be used in different wscripts
with concurrency (if they were in the same wscript it works
.c.1.o .c.2.o, etc).


[387/764] c: libs/fst/vstwin.c -> build/libs/fst/vstwin.c.1.o
[731/764] c: libs/fst/vstwin.c -> build/libs/fst/vstwin.c.1.o
[746/764] cxxprogram: build/libs/fst/scanner.cc.1.o build/libs/fst/vstwin.c.1.o -> build/libs/fst/ardour-vst-scanner.exe
[750/764] cxxshlib: [...]  build/libs/fst/vstwin.c.1.o [...] -> build/libs/ardour/ardour-3.dll

and about one every full moon (depending on concurrency) it failed:
missing file: 'build/libs/fst/vstwin.c.1.o'
2015-01-17 18:19:25 +01:00
David Robillard
a58730e8f9 Revert "Kludgey fix for invisible playhead when scrolled."
This reverts commit 8f823388d9.
2015-01-16 22:06:10 -05:00
David Robillard
fc70b5a9f9 Compute arrow bbox manually to appease crazy canvas. 2015-01-16 22:04:26 -05:00
David Robillard
8f823388d9 Kludgey fix for invisible playhead when scrolled.
The problem this is avoiding makes absolutely no sense.  Either I'm dumb, or
something is more deeply wrong with scroll group bounding boxes, or both, but I
don't care anymore.  This works.  Viva release mode.
2015-01-16 21:04:38 -05:00
David Robillard
b759fd5879 Put playhead on top of everything.
Achieve this by adding a new hscroll group just for cursors.

That requires a slightly smarter window_to_canvas() to deal with overlapping
sensitive scroll groups.  New rule is that scroll groups can overlap, but the
most sensitive one found from the top down will be chosen to translate
coordinates.  This basically means don't overlap scroll groups with different
sensitivities.

In the presence of scroll groups, having a canvas-wide window_to_canvas()
and/or canvas_to_window() fundamentally makes no sense.  At some point in the
glorious future we should kill those and use only item-relative coordinate
translation.
2015-01-16 19:13:56 -05:00
David Robillard
d194ec9135 Update arrow bbox when geometry changes. 2015-01-16 19:13:56 -05:00
David Robillard
e48ff6b6a0 Fix clipping for scroll groups an offset bbox. 2015-01-16 19:13:56 -05:00
Ben Loftis
05a612b563 ASIO devices have a preferred buffersize.
pass this value up so it can be used by the engine dialog.
if for some reason the engine dialog still doesn't have a buffersize selected, print an error and try 512 instead of crashing.
2015-01-16 17:15:26 -06:00
David Robillard
4166b05bda Fix setting command key bindings on OSX. 2015-01-14 20:31:38 -05:00
Robin Gareus
37f351ccdd JACK: add support for device names with whitespace
This is backwards compatible, quotes are only added if needed.
JACK1 < 0.123.1-30 and JACK2 < 1.9.10-25 fail with either
whitespace or quotes, so nothing is lost.
2015-01-14 19:29:55 +01:00
Robin Gareus
12d4375211 fix auditioning of regions with offset - fixes #6131 2015-01-13 18:36:10 +01:00
Robin Gareus
9863d160fc LTC: don’t flag “no lock” until delta was at zero at least least once. 2015-01-12 23:17:39 +01:00
Robin Gareus
b8bec75aa3 add an explicit indicator for LTC lock 2015-01-12 20:27:23 +01:00
Robin Gareus
e90a784fb5 force complete peak compute.
Do not skip peaks when creating peak files while recording.
Fixes missing peaks in #6127

(TODO: after double-check and sign-off, remove ‘force’
parameter from ::compute_and_write_peaks API)
2015-01-12 18:19:05 +01:00
John Emmas
95091a52a0 When building with MSVC make sure any backends / panners etc get copied to the correct target folder
(i.e. 'lib/ardour3' or 'lib/mixbus3' as appropriate)

These changes are MSVC specific and shouldn't affect the other builds
2015-01-12 14:43:22 +00:00
David Robillard
55278fb3b0 Fix mouse event position offset bug.
Search scroll groups for event delivery from top to bottom rather than bottom
to top.  Overlapping scroll groups still aren't properly supported by the
canvas, but currently all we care about is that the top one gets the event, so
the hscroll group (tempo lines) can be below the hvscroll group (tracks), but
the latter gets events.
2015-01-12 01:05:01 -05:00
Robin Gareus
4d370b8942 add a midi->audio dummy backend mode.
this allows to easily debug latency compensation
as well as visualize lost midi events.
2015-01-11 20:51:57 +01:00
Robin Gareus
38c2bdc856 gracefully handle missing .midnam
Fixes bug: Add a .midnam to local preferences.
use it in a session. delete the .midnam,
reload session -> crash
2015-01-10 19:31:50 +01:00
John Emmas
9e873acedb Accommodate a newly introduced #define ('LIBARDOUR') when building with MSVC
These changes are MSVC specific and shouldn't affect the other builds.
2015-01-10 12:15:47 +00:00
John Emmas
2abd8b8f06 Add a newly introduced header file to our MSVC project (libevoral)
This change is MSVC specific and shouldn't affect the other builds.
2015-01-10 11:58:58 +00:00
John Emmas
f598105966 Add support for the C99 function 'log2()' which is newly needed by 'gtk2_ardour/tempo_lines.cc' (but isn't available from MSVC).
These changes are MSVC specific and shouldn't affect the other builds.

(incidentally, libpbd already offers a function called 'fast_log2()'. Not sure if that could have been used instead...)
2015-01-10 11:56:24 +00:00
Robin Gareus
0367aa5825 remove cruft (old unused pre-git version files) 2015-01-09 06:11:57 +01:00