ardour.git
9 years agoRemove unnecessary includes.
David Robillard [Sun, 7 Dec 2014 01:58:58 +0000 (20:58 -0500)]
Remove unnecessary includes.

9 years agoAllow creation of MIDI control points object tool.
David Robillard [Sun, 7 Dec 2014 01:01:06 +0000 (20:01 -0500)]
Allow creation of MIDI control points object tool.

9 years agoGrab keyboard only with note selection.
David Robillard [Sun, 7 Dec 2014 00:56:36 +0000 (19:56 -0500)]
Grab keyboard only with note selection.

When entered, the keyboard is grabbed when the selection becomes non-empty, and
ungrabbed if it becomes empty again or the region is left or the user switches
out of internal mode.

This fixes scroll in internal mode and note moving with arrow keys.  Also frees
up useful keybindings when there is no note selection, which is much nicer than
the "nothing works in edit mode at all" greedy grab approach used previously.

Attempt #874327892 of getting this damned grabbing right.

9 years agoFix crash on quit when in a non-route time axis.
David Robillard [Sat, 6 Dec 2014 23:42:35 +0000 (18:42 -0500)]
Fix crash on quit when in a non-route time axis.

9 years agoInvalidate iterator whenever model changes.
David Robillard [Sat, 6 Dec 2014 23:04:30 +0000 (18:04 -0500)]
Invalidate iterator whenever model changes.

I suspect this is an underlying cause of several tricky to reproduce bugs, but
we'll have to wait around and see...

9 years agoFix crash on shift+rclick of region to remove.
David Robillard [Sat, 6 Dec 2014 23:02:36 +0000 (18:02 -0500)]
Fix crash on shift+rclick of region to remove.

This doesn't seem to have been touched for years, and I don't see how such an
obvious bug could possibly have been around for so long, but, well, this fixes
it as far as I can tell.

9 years agoFix crash when resizing a track quickly.
David Robillard [Sat, 6 Dec 2014 22:46:12 +0000 (17:46 -0500)]
Fix crash when resizing a track quickly.

Triggered by resize drag an automation track very quickly upwards to shrink it
to the minimum.  Caused by unsigned integer underflow.

9 years agomidnam test: don't clutter up output.
Robin Gareus [Sat, 6 Dec 2014 22:51:33 +0000 (23:51 +0100)]
midnam test: don't clutter up output.

9 years agoFix crash when showing MIDI regions we shouldn't.
David Robillard [Sat, 6 Dec 2014 21:46:00 +0000 (16:46 -0500)]
Fix crash when showing MIDI regions we shouldn't.

I am not sure what causes this, but it can happen when finishing a record
sometimes.  Probably MidiSource::_writing isn't updated in the right order with
whatever triggers the redisplay, but at least not crashing is better...

9 years agoFix inappropriately massive flag font.
David Robillard [Sat, 6 Dec 2014 21:07:32 +0000 (16:07 -0500)]
Fix inappropriately massive flag font.

9 years agoFix patch flag scroll theft when in normal mode.
David Robillard [Sat, 6 Dec 2014 21:05:47 +0000 (16:05 -0500)]
Fix patch flag scroll theft when in normal mode.

9 years agoFix seek in linearly interpolated control lists.
David Robillard [Sat, 6 Dec 2014 20:44:10 +0000 (15:44 -0500)]
Fix seek in linearly interpolated control lists.

9 years agoAdapt range when copying between automation types.
David Robillard [Sat, 6 Dec 2014 18:37:08 +0000 (13:37 -0500)]
Adapt range when copying between automation types.

For things like copying from pitch bender to a CC.

Also things like fader to pan, but that seems a bit funny.  The conversion
probably needs to be a bit smarter here, perhaps taking the normal into
consideration...

9 years agoRestore an accidentally deleted #include
John Emmas [Sat, 6 Dec 2014 17:47:53 +0000 (17:47 +0000)]
Restore an accidentally deleted #include

9 years agoSupport paste between automation lanes.
David Robillard [Sat, 6 Dec 2014 17:20:52 +0000 (12:20 -0500)]
Support paste between automation lanes.

Also push the increasingly unwieldly paste parameters into a context object.

As with othe things, currently it is only possible to do "cross-type paste" by
explicitly selecting the target track.  We will need to get automation region
view selection working to do better here, but at least for now it's possible to
get the data over.

9 years agoFix wacky return type.
David Robillard [Sat, 6 Dec 2014 17:19:52 +0000 (12:19 -0500)]
Fix wacky return type.

9 years agoFix uninitialized members.
David Robillard [Sat, 6 Dec 2014 17:06:48 +0000 (12:06 -0500)]
Fix uninitialized members.

9 years agoMore potential SMF crash fixes.
David Robillard [Sat, 6 Dec 2014 16:19:48 +0000 (11:19 -0500)]
More potential SMF crash fixes.

9 years agoPossible half-fix for SMF crash.
David Robillard [Sat, 6 Dec 2014 15:37:08 +0000 (10:37 -0500)]
Possible half-fix for SMF crash.

9 years agoUse source-relative time converter directly.
David Robillard [Sat, 6 Dec 2014 15:27:18 +0000 (10:27 -0500)]
Use source-relative time converter directly.

9 years agoFix internal paste when selection has only points.
David Robillard [Sat, 6 Dec 2014 15:26:25 +0000 (10:26 -0500)]
Fix internal paste when selection has only points.

9 years agoAdd a newly introduced header file to our MSVC project (gtk2_ardour)
John Emmas [Sat, 6 Dec 2014 11:02:37 +0000 (11:02 +0000)]
Add a newly introduced header file to our MSVC project (gtk2_ardour)

9 years agofix/amend pre commit
Robin Gareus [Sat, 6 Dec 2014 07:24:21 +0000 (08:24 +0100)]
fix/amend pre commit

9 years agofix another ambiguity, this time: WINAPI Rectangle
Robin Gareus [Sat, 6 Dec 2014 06:40:17 +0000 (07:40 +0100)]
fix another ambiguity, this time: WINAPI Rectangle

9 years agofix ambiguous reference.
Robin Gareus [Sat, 6 Dec 2014 04:52:31 +0000 (05:52 +0100)]
fix ambiguous reference.

OSX CoreServices typedef's struct Rect

9 years agofix typo in wscript
Robin Gareus [Sat, 6 Dec 2014 01:42:14 +0000 (02:42 +0100)]
fix typo in wscript

9 years agoMake scroll work on MIDI regions when internal.
David Robillard [Fri, 5 Dec 2014 21:54:29 +0000 (16:54 -0500)]
Make scroll work on MIDI regions when internal.

For some reason, grabbing the magic keyboard focus makes scroll stop working
regardless of what MRV::canvas_group_event() returns.  I can't figure out any
reason to grab the keyboard in this case anyway, so I just removed it.

Also simlify MRV event handling code in general.

9 years agoexperimental drawing optimization.
Robin Gareus [Fri, 5 Dec 2014 21:40:26 +0000 (22:40 +0100)]
experimental drawing optimization.

Q: is bounding_box(); etc more complex than queuing draw?

either way, canvas should eventually switch to
use an optimized OptimizingLookupTable.

9 years agoFix stuck faders on very fine adjustments.
David Robillard [Fri, 5 Dec 2014 20:16:54 +0000 (15:16 -0500)]
Fix stuck faders on very fine adjustments.

I attempted to preserve the "don't draw unless different" by ditching rounding for more
precise display_span, but that didn't work.  An alternative solution would be
to draw on adjustment change if there's text, since then we need to redraw
regardless of slider position, but it seemed weird even just with respect to
the slider, so I opted for this, which really definitely redraws when the
adjustment changes, period.

If this proves to be a performance issue we'll have to figure that out.

9 years agofix small memory leak in the tests
Robin Gareus [Fri, 5 Dec 2014 19:50:32 +0000 (20:50 +0100)]
fix small memory leak in the tests

9 years agoupdate to 'new' ControlList API
Robin Gareus [Fri, 5 Dec 2014 19:50:09 +0000 (20:50 +0100)]
update to 'new' ControlList API

add (double when, double value, bool with_guards=true, bool with_default=true);

9 years agoif a Route's processor lock cannot be taken, fill buffers with silence (causing click...
Paul Davis [Fri, 5 Dec 2014 19:49:21 +0000 (14:49 -0500)]
if a Route's processor lock cannot be taken, fill buffers with silence (causing click) rather than abort()

9 years agofix "expected" <> "actual" semantics in test-util
Robin Gareus [Fri, 5 Dec 2014 17:17:21 +0000 (18:17 +0100)]
fix "expected" <> "actual" semantics in test-util

9 years agosave and restore color aliases
Paul Davis [Fri, 5 Dec 2014 16:17:56 +0000 (11:17 -0500)]
save and restore color aliases

9 years agoadd default (for now) color aliases to default_ui_config
Paul Davis [Fri, 5 Dec 2014 16:17:43 +0000 (11:17 -0500)]
add default (for now) color aliases to default_ui_config

9 years agoadded new header file for color aliases
Paul Davis [Fri, 5 Dec 2014 14:36:55 +0000 (09:36 -0500)]
added new header file for color aliases

9 years agopart two of remove CANVAS_STRING_VARIABLE (it was replaced by CANVAS_FONT_VARIABLE
Paul Davis [Fri, 5 Dec 2014 14:26:12 +0000 (09:26 -0500)]
part two of remove CANVAS_STRING_VARIABLE (it was replaced by CANVAS_FONT_VARIABLE

9 years agoremove CANVAS_STRING_VARIABLE (it was replaced by CANVAS_FONT_VARIABLE
Paul Davis [Fri, 5 Dec 2014 14:25:34 +0000 (09:25 -0500)]
remove CANVAS_STRING_VARIABLE (it was replaced by CANVAS_FONT_VARIABLE

9 years agoseveral steps closer to more sane color system
Paul Davis [Fri, 5 Dec 2014 14:01:49 +0000 (09:01 -0500)]
several steps closer to more sane color system

9 years agoinclude alpha-delta computation in HSV::delta()
Paul Davis [Fri, 5 Dec 2014 14:00:36 +0000 (09:00 -0500)]
include alpha-delta computation in HSV::delta()

9 years agocorrect alias definitions in default derived color list
Paul Davis [Fri, 5 Dec 2014 14:00:01 +0000 (09:00 -0500)]
correct alias definitions in default derived color list

9 years agomake new color aliases actually work
Paul Davis [Tue, 2 Dec 2014 12:05:14 +0000 (07:05 -0500)]
make new color aliases actually work

9 years agoworking compilation for new color code
Paul Davis [Mon, 1 Dec 2014 14:16:30 +0000 (09:16 -0500)]
working compilation for new color code

9 years agoAdd 'pbd/crossthread.cc' to the MSVC build
John Emmas [Fri, 5 Dec 2014 08:40:47 +0000 (08:40 +0000)]
Add 'pbd/crossthread.cc' to the MSVC build

9 years agoMake recorded MIDI controls discrete, take 2.
David Robillard [Fri, 5 Dec 2014 05:15:40 +0000 (00:15 -0500)]
Make recorded MIDI controls discrete, take 2.

Hopefully-desired behaviour is that controls created in the GUI are linear, so
clicking in stuff works like other automation, but controls that originated
from recording are set to discrete so Ardour plays back the input exactly,
instead of doing crazy things like linear interpolation of already high-rate
user input, hold pedals, and so on.

Hopefully that remains the desired behaviour, because we're basically screwed
for ever making any control discrete by default, since we only save the mode to
XML at all if it's not the default, which is currently linear.

9 years agoRevert "Create discrete lists for recorded MIDI controls."
David Robillard [Fri, 5 Dec 2014 05:03:47 +0000 (00:03 -0500)]
Revert "Create discrete lists for recorded MIDI controls."

This broke saving/restoring interpolation style.

This reverts commit 07a381a8f5572ae7550c60e5b1bd18c3dcdc7369.

9 years agoAdd MIDI control points only in internal/pencil.
David Robillard [Fri, 5 Dec 2014 03:40:39 +0000 (22:40 -0500)]
Add MIDI control points only in internal/pencil.

9 years agoFix crash when twiddling MIDI controllers (#6050).
David Robillard [Fri, 5 Dec 2014 03:23:16 +0000 (22:23 -0500)]
Fix crash when twiddling MIDI controllers (#6050).

9 years agoFix steps for log controls with wide range.
David Robillard [Fri, 5 Dec 2014 02:22:31 +0000 (21:22 -0500)]
Fix steps for log controls with wide range.

9 years agoAlois Cochard Add MIDI map for the control surface.
Paul Davis [Thu, 4 Dec 2014 18:31:48 +0000 (13:31 -0500)]
Alois Cochard Add MIDI map for the  control surface.

9 years agofix windows compilation
Robin Gareus [Thu, 4 Dec 2014 16:13:43 +0000 (17:13 +0100)]
fix windows compilation

9 years agoadd required header
Paul Davis [Thu, 4 Dec 2014 16:05:33 +0000 (11:05 -0500)]
add required header

9 years agomove WSAStartup() and WSACleanup() out of per-object methods into per-library init...
Paul Davis [Thu, 4 Dec 2014 15:07:11 +0000 (10:07 -0500)]
move WSAStartup() and WSACleanup() out of per-object methods into per-library init/cleanup methods

9 years agoclean up whitespace
Paul Davis [Thu, 4 Dec 2014 14:11:37 +0000 (09:11 -0500)]
clean up whitespace

9 years agoInclude pbd/crossthread.cc in the mingw build
Tim Mayberry [Thu, 4 Dec 2014 09:16:06 +0000 (16:16 +0700)]
Include pbd/crossthread.cc in the mingw build

9 years agoUse correct name for windows.h
Tim Mayberry [Thu, 4 Dec 2014 09:15:07 +0000 (16:15 +0700)]
Use correct name for windows.h

9 years agoMake gain controls step by roughly 1.0/0.1 dB.
David Robillard [Thu, 4 Dec 2014 05:29:28 +0000 (00:29 -0500)]
Make gain controls step by roughly 1.0/0.1 dB.

Shoot for roughly 30 steps for all controls.

Always keep sensible step information in ParameterDescriptor and just convert
for the UI.

This is a little weird, but it's less weird than it was before, and works.

9 years agoactual expected test results:
Robin Gareus [Thu, 4 Dec 2014 02:55:03 +0000 (03:55 +0100)]
actual expected test results:

We should not add an initial implicit value
at time ‘0’ to automations.

9 years agomake all tests pass
Robin Gareus [Thu, 4 Dec 2014 02:53:26 +0000 (03:53 +0100)]
make all tests pass

9 years agofix to follow changes to evoral/libardour split
Paul Davis [Thu, 4 Dec 2014 02:22:53 +0000 (21:22 -0500)]
fix to follow changes to evoral/libardour split

9 years agochanges to Mackie Control support for new crossthreadchannel implementation
Paul Davis [Thu, 4 Dec 2014 02:22:34 +0000 (21:22 -0500)]
changes to Mackie Control support for new crossthreadchannel implementation

9 years agoadapt changes to async MIDI port to use new evoral/libardour split
Paul Davis [Thu, 4 Dec 2014 02:11:24 +0000 (21:11 -0500)]
adapt changes to async MIDI port to use new evoral/libardour split

9 years agofix up BaseUI to use crossthreadchannel on all platforms
Paul Davis [Thu, 4 Dec 2014 02:11:02 +0000 (21:11 -0500)]
fix up BaseUI to use crossthreadchannel on all platforms

9 years agomodify Mackie surface code to use crossthreadchannel on all platforms
Paul Davis [Thu, 4 Dec 2014 01:57:58 +0000 (20:57 -0500)]
modify Mackie surface code to use crossthreadchannel on all platforms

9 years agomodify MidiUI code to use crossthreadchannel on all platforms
Paul Davis [Thu, 4 Dec 2014 01:55:44 +0000 (20:55 -0500)]
modify MidiUI code to use crossthreadchannel on all platforms

9 years agoalter Async MIDI port implementation to use crossthreadchannel on all platforms
Paul Davis [Thu, 4 Dec 2014 01:53:49 +0000 (20:53 -0500)]
alter Async MIDI port implementation to use crossthreadchannel on all platforms

9 years agonew platform specific crossthreadchannel files
Paul Davis [Thu, 4 Dec 2014 01:47:59 +0000 (20:47 -0500)]
new platform specific crossthreadchannel files

9 years agomanually merge new CrossThreadChannel implementation for windows from Tracks
Paul Davis [Thu, 4 Dec 2014 01:47:27 +0000 (20:47 -0500)]
manually merge new CrossThreadChannel implementation for windows from Tracks

9 years agoTest: update AutomationList properties for v3.5
Robin Gareus [Wed, 3 Dec 2014 22:37:27 +0000 (23:37 +0100)]
Test: update AutomationList properties for v3.5

9 years agoTest: print assert message if XML property mismatch
Robin Gareus [Wed, 3 Dec 2014 22:27:14 +0000 (23:27 +0100)]
Test: print assert message if XML property mismatch

9 years agofix audioengine use in unit-tests.
Robin Gareus [Wed, 3 Dec 2014 19:47:29 +0000 (20:47 +0100)]
fix audioengine use in unit-tests.

9 years agofix MTDM test
Robin Gareus [Wed, 3 Dec 2014 19:45:27 +0000 (20:45 +0100)]
fix MTDM test

9 years agoallow spaces in TOP, cd to gtk2_ardour to avoid dup midnam, etc warnings
Robin Gareus [Wed, 3 Dec 2014 19:45:12 +0000 (20:45 +0100)]
allow spaces in TOP, cd to gtk2_ardour to avoid dup midnam, etc warnings

9 years agoTests: ensure that libardour is initialized
Robin Gareus [Wed, 3 Dec 2014 19:45:01 +0000 (20:45 +0100)]
Tests: ensure that libardour is initialized

9 years agofix audio-engine dtor.
Robin Gareus [Wed, 3 Dec 2014 19:44:23 +0000 (20:44 +0100)]
fix audio-engine dtor.

backends - once instantiated - keep a reference to the engine.
when audioengine is destroyed, the backends must be deinstantiated.
This fixes various unit-test cases.

9 years agoallow to auto-start dummy backend (needed for tests)
Robin Gareus [Wed, 3 Dec 2014 17:24:56 +0000 (18:24 +0100)]
allow to auto-start dummy backend (needed for tests)

9 years agofix test segfault
Robin Gareus [Wed, 3 Dec 2014 15:03:57 +0000 (16:03 +0100)]
fix test segfault

whe XMLTree goes out of scope, the root-node is deleted

9 years agouse Dummy backend for tests
Robin Gareus [Wed, 3 Dec 2014 15:03:19 +0000 (16:03 +0100)]
use Dummy backend for tests

9 years agoreduce confusion.
Robin Gareus [Wed, 3 Dec 2014 11:47:46 +0000 (12:47 +0100)]
reduce confusion.

9 years agoFix running libpbd unit tests when $TOP(in test scripts) is set as relative path
Tim Mayberry [Tue, 2 Dec 2014 13:40:50 +0000 (20:40 +0700)]
Fix running libpbd unit tests when $TOP(in test scripts) is set as relative path

Add test for PBD::canonical_path that was used to track down silly mistake
in test code

9 years agoAdd DEBUG_TRACE output to PBD::canonical_path
Tim Mayberry [Tue, 2 Dec 2014 13:39:48 +0000 (20:39 +0700)]
Add DEBUG_TRACE output to PBD::canonical_path

9 years agoCall PBD::init() from libmidi++ test runner
Tim Mayberry [Tue, 2 Dec 2014 13:37:45 +0000 (20:37 +0700)]
Call PBD::init() from libmidi++ test runner

This is mostly just to be able to set PBD_DEBUG for testing if
necessary

9 years agoAdd ability to set libpbd debug options via PBD_DEBUG environment var
Tim Mayberry [Tue, 2 Dec 2014 13:36:14 +0000 (20:36 +0700)]
Add ability to set libpbd debug options via PBD_DEBUG environment var

9 years agoCall PBD::init from evoral testrunner
Tim Mayberry [Tue, 2 Dec 2014 05:48:23 +0000 (12:48 +0700)]
Call PBD::init from evoral testrunner

This is needed to set _fmode = O_BINARY for libsmf/fread and
fixes takeFiveTest on windows

9 years agoMove setting _fmode flag on windows into PBD::init
Tim Mayberry [Wed, 5 Nov 2014 01:24:39 +0000 (11:24 +1000)]
Move setting _fmode flag on windows into PBD::init

This moves setting of _fmode slightly later in the initialization
of the application via Ardour::init.

9 years agoCopy evoral test files to correct location Fedora mingw bundle
Tim Mayberry [Tue, 2 Dec 2014 05:21:28 +0000 (12:21 +0700)]
Copy evoral test files to correct location Fedora mingw bundle

9 years agoAdd midi++2 unit tests to the Fedora based mingw build
Tim Mayberry [Mon, 1 Dec 2014 14:44:42 +0000 (21:44 +0700)]
Add midi++2 unit tests to the Fedora based mingw build

9 years agoFix definition of application name in Fedora based mingw packaging scripts
Tim Mayberry [Mon, 1 Dec 2014 14:42:33 +0000 (21:42 +0700)]
Fix definition of application name in Fedora based mingw packaging scripts

Probably needs to be configurable at some point

9 years agoRemove references in pbd test script to libs no longer in source tree
Tim Mayberry [Tue, 2 Dec 2014 02:53:16 +0000 (09:53 +0700)]
Remove references in pbd test script to libs no longer in source tree

9 years agoMake pbd test script consistant with other test scripts
Tim Mayberry [Tue, 2 Dec 2014 02:32:05 +0000 (09:32 +0700)]
Make pbd test script consistant with other test scripts

remove running script from pwd limitation

9 years agoexport MIDIPP_TEST_PATH in midi++ test script so test files can be located
Tim Mayberry [Tue, 2 Dec 2014 02:27:55 +0000 (09:27 +0700)]
export MIDIPP_TEST_PATH in midi++ test script so test files can be located

Modify formatting of script to be consistant with other test scripts

9 years agoAdd test_search_path to find test files in MidnamTest
Tim Mayberry [Mon, 1 Dec 2014 14:41:40 +0000 (21:41 +0700)]
Add test_search_path to find test files in MidnamTest

9 years agoRemove old scripts from when scons was used for build system
Tim Mayberry [Sat, 29 Nov 2014 13:33:53 +0000 (20:33 +0700)]
Remove old scripts from when scons was used for build system

9 years agoUse test_output_directory() in pbd filesystem test
Tim Mayberry [Sat, 29 Nov 2014 09:53:56 +0000 (16:53 +0700)]
Use test_output_directory() in pbd filesystem test

This prevents directory being created in pwd and means deletion of
directory is unnecessary

9 years agoUse test utility function to find evoral test files
Tim Mayberry [Sat, 29 Nov 2014 09:30:35 +0000 (16:30 +0700)]
Use test utility function to find evoral test files

either via EVORAL_TEST_PATH env var or on windows via directory relative
to dll

9 years agoUse PBD::tmp_writable_directory to write evoral test file into
Tim Mayberry [Sat, 29 Nov 2014 09:11:22 +0000 (16:11 +0700)]
Use PBD::tmp_writable_directory to write evoral test file into

no need to remove directory as it is temporary

9 years agoUse PBD::tmp_writable_directory in libardour test_util.cc
Tim Mayberry [Sat, 29 Nov 2014 07:55:58 +0000 (14:55 +0700)]
Use PBD::tmp_writable_directory in libardour test_util.cc

9 years agoRemove unnecessary comma in pbd wscript file
Tim Mayberry [Sat, 29 Nov 2014 06:58:07 +0000 (13:58 +0700)]
Remove unnecessary comma in pbd wscript file

9 years agoUse PBD::tmp_writable_directory in test_output_directory
Tim Mayberry [Sat, 29 Nov 2014 06:56:26 +0000 (13:56 +0700)]
Use PBD::tmp_writable_directory in test_output_directory

9 years agoAdd PBD::tmp_writable_directory utility function to pbd/file_utils.h/cc
Tim Mayberry [Sat, 29 Nov 2014 06:44:11 +0000 (13:44 +0700)]
Add PBD::tmp_writable_directory utility function to pbd/file_utils.h/cc