Commit graph

7832 commits

Author SHA1 Message Date
David Robillard
767c0238a3 Replace half-baked param metadata with descriptor.
Among other things, this means that automation controls/lists have the actual
min/max/normal/toggled of parameters, and not those inferred from the Parameter
ID, which is not correct for things like plugin parameters.

Pushing things down to the Evoral::ParmeterDescriptor may be useful in the
future to have lists do smarter things based on parameter range, but currently
I have just pushed down the above-mentioned currently used attributes.
2014-12-01 23:35:24 -05:00
Julien de Kozak
cb8abbe8d2 Make it compile with C++11 support.
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
2014-12-01 23:18:11 +01:00
Colin Fletcher
43cc295a58 Tidy up comments in Evoral::coverage
Remove old (already #if 0'ed) implementation of Evoral::coverage() and its
comments.

Tidy up the comment enumerating all the possible ways in which two ranges
can overlap, note the Evoral::OverlapType corresponding to each one, and add
comments to the if()s in coverage corresponding to the cases in the list of
overlap types.

Remove some commented-out assert()s that actually do happen, and re-instate
one that really shouldn't.

Fix a small typo (with -> within)
2014-12-01 20:13:04 +00:00
Colin Fletcher
dd5fc9432f Simplify Evoral::RangeList::subtract(), and make it pass amended tests
The various conditionals in Evoral::RangeList::subtract() appear to have
been there to work around
 (a) coverage() not always returning the correct value, &
 (b) the test suite assuming that the ->to point lies outside the range

Now that these are both fixed, the implementation of subtract() becomes
quite a bit clearer. I replaced the if()s with assert()s for now, but these
shouldn't trip if coverage() is working as I expect.

Also (attempt to) clarify the comments in subtract.
2014-12-01 20:13:04 +00:00
Colin Fletcher
30a9c2d05b Comments in various call-sites of coverage()
Comments in various call sites of Evoral::coverage() marking things I think
are dubious (with XXX). Also straightened up the alignment of some ASCII
art in libs/ardour/diskstream.cc
2014-12-01 20:12:51 +00:00
Colin Fletcher
d7cc7775f3 Rework Evoral::coverage() to pass unit tests
Rewrite Evoral::coverage() to (hopefully) do what it's supposed to.

Return OverlapNone for invalid ranges: if either of the ranges passed to
Evoral::coverage() have negative length (i.e.  start > end), return OverlapNone
- it seems reasonable to say that a negative-length range can't overlap
anything. Also return OverlapNone from the fallthrough case, though this should
never happen.
2014-12-01 20:03:22 +00:00
Colin Fletcher
47d329ca40 Make tests of Evoral::Range functions include both endpoints in Range
Some of the tests for Evoral::RangeList::subtract() assume that ranges
don't contain their end (->to) point. This appears inconsistent with how
they are used elsewhere.

Add some ASCII art comments to the tests to try to clarify what they're
really testing for, and amend subtractTest1, subtractTest4, & subtractTest5
to incorporate the assumption that ranges include their end points.
2014-12-01 16:52:58 +00:00
Robin Gareus
0c7dd82239 exclude fader-reserve from range 2014-12-01 17:45:27 +01:00
David Robillard
0ffeaa6d6a Remove braindead Parameter inheritance abuse. 2014-11-30 23:56:20 -05:00
David Robillard
7eb4e5d22b Replace thinning static state with parameter. 2014-11-30 23:56:20 -05:00
David Robillard
b68fd1cc25 Remove dead code. 2014-11-30 23:56:20 -05:00
David Robillard
0b48eb68f8 Remove bogus test and noisy output. 2014-11-30 23:56:19 -05:00
David Robillard
2588b1cac9 Trim the include tree. 2014-11-30 23:56:19 -05:00
David Robillard
1693e57e0e Move EventRingBuffer to libardour.
This is not used anywhere in Evoral and is just a wrapper around the PBD
RingBuffer anyway.  Towards a (once again?) independently buildable/testable
Evoral and fewer cross-dependencies.
2014-11-30 23:56:19 -05:00
David Robillard
cf537b97f5 Add missing namespace qualifiers. 2014-11-30 23:56:19 -05:00
David Robillard
008bfceb77 Clean up state tracking of raw MIDI. 2014-11-30 23:56:19 -05:00
David Robillard
a0deb7c3bf Save mute automation state. 2014-11-30 23:56:19 -05:00
Robin Gareus
272c93db12 CLA approved consistent fine-grained scale modifier 2014-11-30 21:27:31 +01:00
John Emmas
2996e677c4 Process 'default_ui_config.in' when building with MSVC 2014-11-30 17:57:44 +00:00
Robin Gareus
18efe8f446 consistent step+page sizes for fader+spinbox 2014-11-30 15:05:40 +01:00
Robin Gareus
fb3f9033cf use update_steps() instead of custom function 2014-11-30 15:05:39 +01:00
Robin Gareus
0622fc9d4b update_steps(), properly handle integer ranges 2014-11-30 15:05:39 +01:00
Robin Gareus
bd85c8ec43 fix ladpsa default value.
because get_parameter_descriptor() is const, also wrap
default_value() in a const function.
2014-11-30 15:05:39 +01:00
Robin Gareus
cf859270e0 fix LV2 default port value. 2014-11-30 15:05:39 +01:00
David Robillard
77d5fb7a35 Fix write for boolean automation. 2014-11-29 14:32:12 -05:00
Robin Gareus
c77f4b7a18 don't move faders on click.
for one, it can mess up the value when switching to
numeric-entry. It is also rather useless and not
Fader-like (faders are not scrollbars).
Besides, "stepvalue" is way to large and causes jumps
(sometimes step-value is even negative, see
"fast lookahead limiter", "release time"
 -> some other bug)
2014-11-29 17:31:41 +01:00
Robin Gareus
58663db374 change ownership of processor window-proxy
fixes crashes:
* If the Editor-Mixer shows a channel with a plugin that
has been edited in the Mixer, double-clicking the plugin 
will try to bring up a 2nd instance of the plugin-UI.
* When closing Ardour both the Mixer and the Editor-Mixer try to delete the underlying plugin, resulting in a double free.
2014-11-29 10:06:25 +01:00
David Robillard
784b96e255 Set discrete by default for boolean parameters. 2014-11-29 01:40:23 -05:00
David Robillard
ed1bbefd19 Somewhat working gain automation.
This probably isn't correct in several ways, but it works more than it did, so
I figure it's push worthy.

Still not working:

 * Saving mute automation list
 * Dragged control points are not snapped to model restrictions
   (boolean, in this case, but general problem)
 * Line goes funny if you record mute automation
   (as opposed to drawing it which works)
2014-11-29 01:25:27 -05:00
David Robillard
f190e630ab Show discrete/toggled automation as stepped line. 2014-11-28 21:15:28 -05:00
David Robillard
e55b68298b Fix crash when deleting all points from a line. 2014-11-28 20:04:57 -05:00
David Robillard
358ebde106 Set the toggled default metadata of parameters.
This is so generic code looking at the Parameter for gain, solo, and
rec-enable will get the correct value for toggled.
2014-11-28 18:04:51 -05:00
John Emmas
ea35595370 Add some newly introduced source files to our MSVC project (cairocanvas) 2014-11-28 14:42:17 +00:00
David Robillard
16947f751b Remove dead code. 2014-11-27 04:17:15 -05:00
David Robillard
3d4b1d324e Fix calculation using uninitialized value.
Implicit "this" is the devil.
2014-11-27 04:15:30 -05:00
Paul Davis
25e1eddc50 remove "port sources" management from MidiControlUI and Mackie support.
This was necessary due to a bug/design issue between Glibmm and Glib (see https://bugzilla.gnome.org/show_bug.cgi?id=561885)
 but the problem needs to be managed by the *creator* of the IOSource and that has now moved inside CrossThreadChannel.
2014-11-26 18:22:22 +02:00
Paul Davis
6edd81e4f6 get correct ::distance() and ::delta() implementations for cases involving achromatics 2014-11-26 18:22:22 +02:00
Paul Davis
318a9edab9 massive reworking of color selection implementation 2014-11-26 18:22:22 +02:00
Paul Davis
c927eeb9ee ensure that Ardour recognizes its own MMC device ID as "all-call" when set to 0x7f (127) 2014-11-26 18:22:22 +02:00
Tim Mayberry
b9be8d2652 Replace individual waf options for enabling backends with one --with-backends option 2014-11-26 22:47:05 +07:00
Colin Fletcher
4358b8db79 Add test for Evoral::coverage()
Add a test function to test Evoral::coverage() with all possible overlap
types. The first test (line 161) that expects OverlapExternal will fail
with the current implementation of coverage().

There's possibly still a discussion to be had about what the overlap type of
ranges with negative lengths should be: there are currently places in the main
Ardour code base where coverage() is called with ranges where start > end.
2014-11-25 17:49:51 +00:00
Colin Fletcher
3a6c9e3bb9 Fix build of evoral tests
Fix compile errors in libs/evoral/test/, by explicitly calling
Evoral::MusicalTime::to_double() wherever a double value is required of a
MusicalTime.

Some of the double variables should probably really be made into MusicalTime
ones instead, but I don't want to mess with this too much.

takeFiveTest still fails for me after this, but a failing test is probably
more informative in the long run than a test that won't even compile.
2014-11-25 14:59:48 +00:00
Colin Fletcher
1f58f81aa6 Fix order of parameters to stop_touch() in Mackie::Control
Reverse the parameters of Mackie::Control::stop_touch() to make them
consistent with AutomationControl::stop_touch(), and fix up the call to
AutomationControl::stop_touch() to have the parameters in the correct
order.

Unfortunately, I don't possess any devices that speak the Mackie protocol, so
though the patch seems logical and correct to me, I have no way of testing it.
If anyone has a device with touch faders that speaks Mackie, I'd be glad of any
confirmation that it at least doesn't break anything.
2014-11-25 14:59:48 +00:00
David Robillard
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
Robin Gareus
78218e8c07 fix OSX open URL in browser 2014-11-24 20:35:38 +01:00
John Emmas
c7ddedc5b8 Simulate 'trunc()' which isn't available in MSVC
(needed by 'gtk2_ardour/editor.cc')
2014-11-24 12:56:07 +00:00
John Emmas
018f559aad Remove a commented out line in 'pbd/stacktrace.h'
(was probably just needed for testing at some stage)
2014-11-24 12:53:24 +00:00
John Emmas
25745758aa Changes needed to accommodate building libevoral with MSVC
Note that class 'MusicalTime' needn't be exportable (with a little work, this could be reverted if it affects the other builds)
2014-11-24 12:51:54 +00:00
Robin Gareus
c0e8647806 amend c4533939b9 2014-11-24 00:04:45 +01:00
Robin Gareus
cd91fa0046 hotfix windows-compilation (unfinished bfe49540b9)
..at least it compiles and starts. Mackie support etc
is probably still broken.
2014-11-23 23:57:56 +01:00