Commit graph

9454 commits

Author SHA1 Message Date
Paul Davis
563d9dfb65 add 2 new session properties related to implicit fades/gain ramps 2015-09-15 09:00:50 -04:00
Paul Davis
d92fceabb0 use an explicit black list of route names that require numbering.
This replaces an attempt to check port names which fails for a number of reasons.
2015-09-15 09:00:50 -04:00
Robin Gareus
04e7cfabbe prepare peak-file cleanup/recreate. 2015-09-15 14:44:05 +02:00
John Emmas
551e20b926 Remove ifstream / ofstream when accessing session template files (or creating a new session from a template file)
On Windows, the above classes don't support UTF-8 so let's get rid of them and use g_fopen / stringstream / fwrite() etc.
2015-09-15 13:17:22 +01:00
Robin Gareus
8a4bf386a4 amend previous commit. 2015-09-14 21:25:57 +02:00
Robin Gareus
9a533c925b fix short x-fade rendering 2015-09-14 21:18:56 +02:00
Robin Gareus
e63c3d028a note-off ordering - fixes #6340
Evoral::Beats::operator>() rounds to (1.0 / PPQN), hardcoded 1/1920.0.

If the time difference between two events is smaller than 1/PPQN,
Beats::operator>()  and  Beats::operator<()  produce ambiguous results.
The same pair of values is both "less than" and "greater than" depending
which operator is used.

While it's fine for some cases to ignore the order of nearly concurent
events, the std::priority_queue must be strictly ordered.
2015-09-14 04:55:01 +02:00
Robin Gareus
d83889079b hack around a bug in cppunit/mingw/windows. 2015-09-13 20:23:12 +02:00
Robin Gareus
e45db26d97 adjust precision to specified value, avoid "0". 2015-09-13 20:12:10 +02:00
Robin Gareus
8e8f8d92c2 allow to run unit-test under wine from srcdir. 2015-09-13 15:30:00 +02:00
Robin Gareus
69ff6d0507 fix mismatched delete/free 2015-09-13 04:09:24 +02:00
Tim Mayberry
6f6dde4f06 Fix typo in DSPLoadCalculator causing assertions on Windows debug builds 2015-09-13 09:01:26 +10:00
Robin Gareus
eb998b3264 plug some memory leaks in libs 2015-09-12 20:05:25 +02:00
Robin Gareus
cb6c975417 remove cruft 2015-09-12 17:55:04 +02:00
Robin Gareus
a5e3371b80 Event Pool usage debugging, see also 6ade16b38 2015-09-12 02:18:38 +02:00
Paul Davis
ec06f2c49f spelling error fixes (notably "overriden" => "overidden") from IOhannes m zmölnig 2015-09-11 09:23:43 -04:00
Robin Gareus
9fcc48d140 fail to create Monitor section if port-names are not unique
We should still prevent a user from naming a route "Monitor", but
since "Monitor" is a translatable string, this is an i18n safeguard. eg.
 - create a session with a mon-section and a track Монитор.
 - send the session to a friend in Russia.
2015-09-11 13:14:27 +02:00
Paul Davis
def273ea71 queue disk buffer overwrite when playlist layering changes.
This is a first approximation. Doing this 100% efficiently is quite hard because it would require comparing the range
currently in the disk buffer and the range impacted by the layer change. I suspect this will work fine for the
foreseeable future
2015-09-10 16:49:15 -04:00
Paul Davis
bfd66b2ea0 use PortManager::port_name_prefix_is_unique to check for new route names 2015-09-10 16:41:34 -04:00
Paul Davis
c7e755b25c add PortManager::port_name_prefix_is_unique() 2015-09-10 16:41:34 -04:00
Robin Gareus
8d54a2472d fix recent session loading.
std::stringstream::operator<< calls strlen(), but the string in the
temp buffer may not [yet] be NULL terminated.
2015-09-10 17:39:31 +02:00
Paul Davis
0ef8175b5a when removing routes, don't do potentially expensive work once for each route.
We can update solo state and tell interested parties about the removal once the actual removal is done
2015-09-10 11:35:57 -04:00
Paul Davis
cb85080ca8 fix deadlock when removing routes and using JACK1.
graph reorder callback needed an early exit if we were deleting routes, is all.
2015-09-10 11:35:57 -04:00
Robin Gareus
a86aa9e5bc use FileSource::within_session() for peak-files 2015-09-10 16:47:26 +02:00
Paul Davis
b3e8495662 remove duplicate enum registration 2015-09-10 08:15:11 -04:00
John Emmas
1a6c08dcfc Make sure that the DSPLoadCalculator class is exportable 2015-09-10 10:24:04 +01:00
John Emmas
d2e083397c Add support for newly introduced class ARDOUR::DSPLoadCalculator (when building with MSVC) 2015-09-10 10:22:38 +01:00
Tim Mayberry
28803fface Remove DSPLoadCalculator class in portaudio backend source 2015-09-10 12:12:56 +10:00
Tim Mayberry
c2e5bdedff Use ARDOUR::DSPLoadCalculator in PortAudioBackend 2015-09-10 12:12:56 +10:00
Tim Mayberry
8625362cac Add DSPLoadCalculator class to libardour
This is similar to the class in the PortaudioBackend but uses an average of the
values if raw load is under 80%
2015-09-10 12:12:56 +10:00
Robin Gareus
09caf8336f allow LV2 plugins to query current block-size.
This is akin to VST2's audioMasterGetBlockSize.
It returns the current nominal block size (think jack-buffersize).

It's not the only block size that may be used when calling run(), it's
just the normal one. The actual block sizes used may be larger or smaller
and may vary between successive calls of run().

This change became neccesary after 53e969e9. Some plugins expected 
maxBlockLength to be the /current/ buffer-size and not all-time maxiumum.
Those plugins can now use nominalBlockLength.
2015-09-10 00:55:59 +02:00
Robin Gareus
390ea007c5 rework peakfile handling:
- copy old peak-files to new (do not require re-calc)
- keep old peak-files (for now, backwards compat)
- fix cleanup-sources to remove *new* peak-file
- include channel-number in hash (like it was done before)

see also 624f76b

TODO: add Session > Cleanup > remove/re-create peaks
2015-09-10 00:55:58 +02:00
Robin Gareus
78ff3c05a3 remove Ardour broken peak-file support
Ardour-2.0 put peak-files in a "broken" location for several months.
Since then Ardour renamed those files. No more. When loading ancient
sessions peak-files are now re-created (in the background).
2015-09-10 00:55:58 +02:00
Robin Gareus
48579d42b0 update libltc to v1.1.4-4-gb034a23 (endianess issue) 2015-09-09 16:54:26 +02:00
Len Ovens
f8912b8b57 Made master fader touch and jog go to _master_surface instead of first surface. 2015-09-08 20:47:16 -07:00
Paul Davis
bbfb53e881 RF64, RF64 (WAV) and MBWF native file header formats 2015-09-08 17:40:28 -04:00
Paul Davis
f1c0f587ca new enums required for RF64 => RIFF and MBWF support 2015-09-08 17:40:28 -04:00
Guy Sherman
036ebab8a0 Replaced broken code in recent_sessions.cc
The original broken code was intended to stop using ifstream
and ofstream to open files, but it used a very old MSVCism to
open streams from FILE*.

In the case for reading, this patch replaces that code by using
standard c file manipulation to read the data into a stringstream,
and then it uses the existing stream-based code to read from there.

Similarly the ofstream in the code for writing the recent files list
is replaced by a stringstream, and then a c-string is extracted
from it and written using standard c file manipulation.

Also tweaked a couple of typos from rgareus :)
2015-09-08 22:29:20 +02:00
John Emmas
dee324cc36 Use glib to open our 'recent file' list, rather than opening directly with ifstream / ofstream
(on Windows, ifstream & ofstream don't support UTF8)
2015-09-08 15:45:34 +01:00
Robin Gareus
d11b15fbca dummy, allow 8k buffer-size. 2015-09-08 15:14:02 +02:00
Robin Gareus
fcbf359dd6 properly clean up meter-pattern cache 2015-09-07 13:35:48 +02:00
Robin Gareus
d6a5e6fc2e fix some more uninitialized vars 2015-09-07 00:00:44 +02:00
Robin Gareus
1e404da10d libardour: initialize some uninitialized vars.. 2015-09-06 21:55:12 +02:00
Robin Gareus
57321bef35 consistent pango-text layout size - fixes #6490
Use gdk_pango_layout() for all text-size calculations.
In Canvas::Text always use the same context (local image surface)
for layouting (prior to this, local and window-context mix resulted in 
different sizes).
2015-09-06 16:39:08 +02:00
Robin Gareus
ef3a42faed terminate peak-file creation on session-close 2015-09-06 11:49:47 +02:00
Robin Gareus
f5f11158aa another hint for clang static analysis. 2015-09-06 10:42:58 +02:00
Robin Gareus
788234e317 fix dummy-backend driver state
When loading previous state, set_driver() is called before
enumerate_drivers(). 
The available driver list must be available early on.
2015-09-06 10:42:29 +02:00
Robin Gareus
3fc5bf617a mode dummy speeds 2015-09-06 00:46:05 +02:00
Robin Gareus
4ef62a0d6d add dummy-backend speed-selection 2015-09-06 00:33:24 +02:00
Robin Gareus
7f00c70f9f create peak files in background when loading session 2015-09-05 23:28:34 +02:00