John Emmas [Fri, 13 Feb 2015 11:37:00 +0000 (11:37 +0000)]
When building with MSVC add a couple of new pragmas to cut down on the most frequent compiler warnings, namely:-
1) C4244 (conversion loses data) - e.g. when re-assigning a var of (say) int64_t to a lesser type, such as int32_t
2) C4275 (an exported class was derived from a class which is not exportable) - e.g. when deriving classes from std::set, std::exception or some other class which isn't declared with 'dllexport'
John Emmas [Fri, 13 Feb 2015 11:23:59 +0000 (11:23 +0000)]
When building with MSVC, follow Robin's lead and add support for a new env var (SUIL_MODULE_DIR)
Robin Gareus [Thu, 12 Feb 2015 22:00:47 +0000 (23:00 +0100)]
win-pkg, ignore missing suil modules
Ben Loftis [Thu, 12 Feb 2015 17:35:27 +0000 (11:35 -0600)]
add accessor methods for single_exposure
Ben Loftis [Thu, 12 Feb 2015 17:22:55 +0000 (11:22 -0600)]
_single_exposure is now a member variable for each GtkCanvas.
Gtk coalesces multiple exposes into a single combined rect.
If _single_exposure is disabled, we break apart the individual expose rects for the canvas rendering.
Robin Gareus [Thu, 12 Feb 2015 16:35:39 +0000 (17:35 +0100)]
windows: deploy suil modules
Tim Mayberry [Sat, 7 Feb 2015 00:16:49 +0000 (10:16 +1000)]
Fix whitespace in pbd/debug.h
Tim Mayberry [Thu, 12 Feb 2015 04:05:10 +0000 (14:05 +1000)]
Add local PwdReset class to reset pwd in event of test failure
This fixes subsequent tests that rely on pwd but not PBD::path_is_within
breakage caused by commit
2689848e
Tim Mayberry [Thu, 12 Feb 2015 10:05:54 +0000 (20:05 +1000)]
Add some more test assertions so that tests fail when they should
Paul Davis [Thu, 12 Feb 2015 02:59:25 +0000 (21:59 -0500)]
remove naive attempt to avoid drawing first vertical pixel line of Canvas::WaveView
And add commented out attempt at more subtle attempt to get it right
Paul Davis [Thu, 12 Feb 2015 02:56:44 +0000 (21:56 -0500)]
remove use of TimeRectangle
Paul Davis [Thu, 12 Feb 2015 02:56:29 +0000 (21:56 -0500)]
simplify Canvas::Rectangle rendering to avoid unnecessary nonsense, and remove TimeRectangle
Paul Davis [Thu, 12 Feb 2015 02:35:59 +0000 (21:35 -0500)]
Canvas::Rect::contains() should treat its right/left coordinates as exclusive
Paul Davis [Thu, 12 Feb 2015 02:35:23 +0000 (21:35 -0500)]
When setting the duration of a TimeAxisViewItem, do not round before computing pixel width
Paul Davis [Thu, 12 Feb 2015 02:34:49 +0000 (21:34 -0500)]
Editor::sample_to_pixel() always returns an integer value, but it should use explicit rounding
Robin Gareus [Wed, 11 Feb 2015 23:59:55 +0000 (00:59 +0100)]
fix midi-capture filter
diskstream reads directly from port, Route
use prefilled buffer-set.
Ben Loftis [Wed, 11 Feb 2015 20:29:50 +0000 (14:29 -0600)]
use magic strings instead of magic numbers (allow profiles to leave out some track type options)
Ben Loftis [Tue, 10 Feb 2015 22:41:46 +0000 (16:41 -0600)]
desensitize redirect-menu Send and Control items when they are not applicable
Paul Davis [Wed, 11 Feb 2015 00:48:28 +0000 (19:48 -0500)]
properly activating MIDI parsing for traced ports
Paul Davis [Wed, 11 Feb 2015 00:48:01 +0000 (19:48 -0500)]
infrastructure to allow tracing of all MIDI ports
Paul Davis [Mon, 9 Feb 2015 22:56:06 +0000 (17:56 -0500)]
skip drawing the first pixel of waves in an audio region view.
This means that they do no overwrite the frame border of the time axis item
Paul Davis [Mon, 9 Feb 2015 22:55:05 +0000 (17:55 -0500)]
add a sort-of hack to allow us to avoid drawing the first pixel of a waveview when necessary
Ben Loftis [Tue, 10 Feb 2015 20:54:43 +0000 (14:54 -0600)]
fix previous commit
Ben Loftis [Tue, 10 Feb 2015 20:42:47 +0000 (14:42 -0600)]
Track Mode is too vague; rename to Record Mode
Ben Loftis [Mon, 9 Feb 2015 20:03:38 +0000 (14:03 -0600)]
flip the priority of input and output buttons and menus
left-click should show the simple input picker menu.
right-click shows the routing grid.
also reordered the menu to give lower precedence to {add/remove}-port
Ben Loftis [Mon, 9 Feb 2015 17:12:15 +0000 (11:12 -0600)]
fix boot message always sticking on the last loaded route; it looked like an error
Ben Loftis [Mon, 9 Feb 2015 17:03:05 +0000 (11:03 -0600)]
fixed collision with <SECONDARY>n binding
Paul Davis [Mon, 9 Feb 2015 21:41:28 +0000 (16:41 -0500)]
correct drawing of rectangle borders.
They need to use fractional coordinates, and the border position needed
generalizing for other border widths. See verbose comment for details
Paul Davis [Mon, 9 Feb 2015 21:40:10 +0000 (16:40 -0500)]
canvas items must be able to use fractional positions when rendering.
This is required to be able to draw precise single pixel lines, as described
in the Cairo FAQ
Paul Davis [Mon, 9 Feb 2015 17:43:20 +0000 (12:43 -0500)]
fix last cherry-pick
Paul Davis [Sat, 7 Feb 2015 03:46:43 +0000 (22:46 -0500)]
fix color and alpha of timestretch rect
Paul Davis [Fri, 6 Feb 2015 21:39:13 +0000 (16:39 -0500)]
put function into namespace
David Robillard [Thu, 5 Feb 2015 22:37:17 +0000 (17:37 -0500)]
Fix sending out of bounds events to LV2 plugins.
Paul Davis [Mon, 9 Feb 2015 15:50:54 +0000 (10:50 -0500)]
After dragging from multiple tracks to the dropzone, create the right number of new tracks.
This does not address the visual flattening that occurs before the drop
is complete. Doing that is complex and there is no immediate solution
visible. The result after the drop is complete is correct, however.
Conflicts:
gtk2_ardour/editor_drag.cc
nick_m [Sat, 7 Feb 2015 12:33:09 +0000 (23:33 +1100)]
Properly deallocate memory when clearing selection_op_history and
before XMLNode*s.
Improve some comments.
Ben Loftis [Fri, 6 Feb 2015 19:57:22 +0000 (13:57 -0600)]
fix 192k rate
Ben Loftis [Fri, 6 Feb 2015 19:55:00 +0000 (13:55 -0600)]
when the user changes devices, notify the backend
Paul Davis [Fri, 6 Feb 2015 15:19:58 +0000 (10:19 -0500)]
fix (and comment) on subtle bug with audio file data width function
nick_m [Fri, 6 Feb 2015 10:54:27 +0000 (21:54 +1100)]
Make undo/redo work for:
undo (n) where n > 1
redo (m) where m < n
new transaction.
Previously the redo list was left untouched.
This would lead to utter nonsense in the redo list.
AFAICT this never worked.
Paul Davis [Fri, 6 Feb 2015 01:26:02 +0000 (20:26 -0500)]
fixup cherry-picked changes from Waves Tracks, and fix for Ardour
Paul Davis [Thu, 5 Feb 2015 23:20:53 +0000 (18:20 -0500)]
implement RangeMarkerBarDrag::abort
Conflicts:
gtk2_ardour/editor_drag.cc
Paul Davis [Thu, 5 Feb 2015 23:00:32 +0000 (18:00 -0500)]
implement MarkerDrag::abort()
Paul Davis [Thu, 5 Feb 2015 23:02:57 +0000 (18:02 -0500)]
do not attempt to call an empty/null boost functor in clear_events()
Paul Davis [Thu, 5 Feb 2015 22:42:34 +0000 (17:42 -0500)]
fix issue with region dragging while mouse pointer is in rulers/marker lanes
Paul Davis [Thu, 5 Feb 2015 21:49:14 +0000 (16:49 -0500)]
fix bad fix for cherry-pick conflict
Paul Davis [Thu, 5 Feb 2015 21:31:01 +0000 (16:31 -0500)]
make two obvously const methods actually be const
Paul Davis [Thu, 5 Feb 2015 21:21:01 +0000 (16:21 -0500)]
modify behaviour of session when updating skips to use new SessionEvent API
Conflicts:
libs/ardour/ardour/session.h
libs/ardour/session.cc
Paul Davis [Thu, 5 Feb 2015 21:20:34 +0000 (16:20 -0500)]
add SessionEvent::Action to libs/ardour enums registration
Paul Davis [Thu, 5 Feb 2015 21:20:09 +0000 (16:20 -0500)]
expand SessionEvent API to allow ::clear_events() to work correctly.
clear_events() must run in realtime context, which is likely to be asynchronous
with respect to the thread that calls it. So allow caller to pass in a functor
that will be executed (also in realtime context) after the clear is done.
Additionally, allow for a cross-thread callback to the event loop/thread which
initiated/allocated the clear event request so that it can flush its own pending
loop. This part probably isn't necessary but doesn't hurt and is a useful model.
The event would be placed back in the free list at the next event allocation
by the calling thread anyway.
Paul Davis [Thu, 5 Feb 2015 21:13:24 +0000 (16:13 -0500)]
expand PBD::Pool API and add additional DEBUG_TRACE output.
Expanded API splits apart some CrossThreadPool functionality, and provides
access to current pool status information (available(), total(), used(), pending_size())
Paul Davis [Thu, 5 Feb 2015 21:11:28 +0000 (16:11 -0500)]
set name of GUI event loop thread
Ben Loftis [Thu, 5 Feb 2015 18:24:11 +0000 (12:24 -0600)]
ContentEdit drag on empty MIDI track should not create new midi regions
nick_m [Thu, 5 Feb 2015 14:09:04 +0000 (01:09 +1100)]
Rework previous commit to avoid extra property lookup (fwiw).
nick_m [Thu, 5 Feb 2015 13:53:12 +0000 (00:53 +1100)]
Make sure we have the property rather than the value of patch change id.
(don't crash whenever someone adds a patch change and reloads the session).
nick_m [Thu, 5 Feb 2015 12:32:57 +0000 (23:32 +1100)]
Clean up Session's _current_trans when aborting a drag.
nick_m [Thu, 5 Feb 2015 08:57:56 +0000 (19:57 +1100)]
Make redo action insensitive after new command.
Don't erroneously send first_move more than once after autoscroll drag.
Robin Gareus [Wed, 4 Feb 2015 17:04:33 +0000 (18:04 +0100)]
remove duplicate callback
mcontrol->Changed is [also] subscribed to further below (input & output).
Ben Loftis [Tue, 3 Feb 2015 23:35:37 +0000 (17:35 -0600)]
tweak to help with uncoalesced renders
Paul Davis [Tue, 3 Feb 2015 20:38:14 +0000 (15:38 -0500)]
render canvas using the GDK region rather than the GDK area.
The region is the un-coalesced set of rectangles that were requested for redraw. The area
is the coalesced single rectangle. In the worst cases, the coalesced rectangle could span
the entire window even though just two pixels in opposite corners were to be redrawn.
There is a problem with the verbose cursor as it is dragged across MIDI tracks. TO BE
FIXED.
John Emmas [Tue, 3 Feb 2015 11:57:38 +0000 (11:57 +0000)]
Add an extra test to prevent 'PBD::path_is_within()' from looping infinitely on Windows
The infinite loop would happen if the 2 supplied paths were on different Windows drives - for example if one was on drive C:\ and the other on drive E:\
I don't think this new test will be detrimental to the other platforms but if it is, we could easily separate it out with a '#ifdef PLATFORM_WINDOWS' directive.
Robin Gareus [Mon, 2 Feb 2015 17:46:26 +0000 (18:46 +0100)]
OSX packaging: fix disk-image "Resource busy"
see http://lists.apple.com/archives/darwin-dev/2008/Sep/msg00030.html
Ben Loftis [Sun, 1 Feb 2015 23:21:02 +0000 (17:21 -0600)]
Remove remaining LEVEL4 bindings
Ben Loftis [Sun, 1 Feb 2015 22:59:01 +0000 (16:59 -0600)]
Fix Session Export keybinding to call correct action (ExportAudio).
Still broken though, due to ongoing Mod4><Super binding confusion.
Ben Loftis [Fri, 30 Jan 2015 17:46:06 +0000 (11:46 -0600)]
make it possible to bundle harrison plugins; osx version (disabled for now)
Ben Loftis [Fri, 30 Jan 2015 16:12:35 +0000 (10:12 -0600)]
fix cursor color for text entries
Ben Loftis [Fri, 30 Jan 2015 02:35:01 +0000 (20:35 -0600)]
remove locate before loop, which was causing intermittent loop behavior
Paul Davis [Fri, 30 Jan 2015 16:08:56 +0000 (11:08 -0500)]
use Gtkmm2ext::possibly_translate_mod_to_make_legal_accelerator() in all cases where we use gtk_accel_groups_activate()
Because that function needs it, whereas the old gtk_window_activate_key() did not.
John Emmas [Fri, 30 Jan 2015 14:55:23 +0000 (14:55 +0000)]
If 'force' is TRUE (when using 'Location::set_start()' or 'Location::set_end()') make sure we do actually force the value to get set.
This gets us around a problem when converting a session from the old (Ardour2) format - where the Session Range (start) value was getting incorrectly set if we hadn't already set the end value.
Robin Gareus [Fri, 30 Jan 2015 10:01:36 +0000 (11:01 +0100)]
fix “invalid use of incomplete type jack_client_t”
introduced in
66eef25
Robin Gareus [Fri, 30 Jan 2015 09:42:43 +0000 (10:42 +0100)]
clarify sync-lock and disable it by default.
Robin Gareus [Fri, 30 Jan 2015 08:22:59 +0000 (09:22 +0100)]
Paul Davis [Thu, 29 Jan 2015 23:57:01 +0000 (18:57 -0500)]
stop transport when process_routes fails, even when using the parallel graph execution model
Paul Davis [Thu, 29 Jan 2015 23:56:21 +0000 (18:56 -0500)]
fix incorrect return value from sndfile_data_width()
Robin Gareus [Fri, 30 Jan 2015 00:26:47 +0000 (01:26 +0100)]
take down backend specific threads with backend
Robin Gareus [Fri, 30 Jan 2015 00:25:54 +0000 (01:25 +0100)]
fix jack thread joining
at the time the graph gets around to takes down
client threads, the jack-backend’s jack_client has been reset.
But never mind: libjack does not care about it, anyway.
Paul Davis [Thu, 29 Jan 2015 23:49:04 +0000 (18:49 -0500)]
return to old default disk chunk read size
Paul Davis [Thu, 29 Jan 2015 17:15:36 +0000 (12:15 -0500)]
don't wipe out SHIFT from event state when processing keyboard events, as done in a recent commit
Ben Loftis [Thu, 29 Jan 2015 17:23:49 +0000 (11:23 -0600)]
in mixbus, treat the canvas rulers just like the canvas wrt mouse-wheel-zoom
Ben Loftis [Thu, 29 Jan 2015 17:00:04 +0000 (11:00 -0600)]
consolidate using SECONDARY+number bindings for region properties, such as gain, mute, etc
Ben Loftis [Thu, 29 Jan 2015 16:50:07 +0000 (10:50 -0600)]
switch WINDOW bindings to use SECONDARY instead and displace any bindings that conflicted
Paul Davis [Thu, 29 Jan 2015 02:02:57 +0000 (21:02 -0500)]
fix up and comment fmt-bindings tool
Paul Davis [Thu, 29 Jan 2015 02:02:44 +0000 (21:02 -0500)]
use gtk_accel_groups_active() in preference to gtk_window_activate_key() since the latter behaves incorrectly
The window version will not activate bindings like <Mod4><Super>-space, whereas the former one works correctly. We already used
the former one just above, when handling "fakekeys".
Also add a utility function to show modifier state.
Robin Gareus [Thu, 29 Jan 2015 01:28:25 +0000 (02:28 +0100)]
fix -Wreorder in
6377fe89
Robin Gareus [Thu, 29 Jan 2015 01:12:15 +0000 (02:12 +0100)]
allow bundling of lv2core
Don’t statically initiate the lv2 world, use explicit call after
scanning bundles.
lilv_world_load_specifications() and lilv_world_load_plugin_classes()
are only ever called after lilv_world_load_all(), so we postpone
the call to it.
David Robillard [Wed, 28 Jan 2015 23:52:54 +0000 (18:52 -0500)]
Map window bindings to alt.
As they were before, got caught in the crossfire of super key bindings fix.
Robin Gareus [Wed, 28 Jan 2015 22:50:07 +0000 (23:50 +0100)]
guess what?!
Robin Gareus [Wed, 28 Jan 2015 22:08:06 +0000 (23:08 +0100)]
add lv2core to bundles
The ontology is needed for plugin classification.
Robin Gareus [Wed, 28 Jan 2015 16:29:33 +0000 (17:29 +0100)]
readtest: calculate running average and stddev
Robin Gareus [Wed, 28 Jan 2015 13:35:17 +0000 (14:35 +0100)]
read-test format directly for gnuplot
Robin Gareus [Wed, 28 Jan 2015 12:19:03 +0000 (13:19 +0100)]
ALSA-backend separate report for error and x-run
Robin Gareus [Wed, 28 Jan 2015 12:17:40 +0000 (13:17 +0100)]
ALSA-Backend prefer ppoll()
Robin Gareus [Wed, 28 Jan 2015 01:22:52 +0000 (02:22 +0100)]
fix #6117 - fader prelight
Robin Gareus [Tue, 27 Jan 2015 22:13:29 +0000 (23:13 +0100)]
towards fixing #5711
Don’t call ::output() [here: SilenceTrimmer::process()]
with no data to process.
If (position + N * period-size) % chunksize == 0;
frames_left == 0 before the last call to ::output().
chunker.h:60 keeps the ProcessContext<T>::EndOfInput
flag and the SilenceTrimmer will already have done ‘in_end’ processing.
Valeriy Kamyshniy [Tue, 27 Jan 2015 21:54:15 +0000 (23:54 +0200)]
[Summary] Adding missing initialization of the date &time formats. “Init trashes” caused a bit ruined logic of the export dialog.
Robin Gareus [Tue, 27 Jan 2015 13:04:19 +0000 (14:04 +0100)]
fix printf format-security warning.
warning: format string is not a string literal (potentially insecure) [-Wformat-security]
John Emmas [Tue, 27 Jan 2015 11:59:23 +0000 (11:59 +0000)]
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.
Paul Davis [Mon, 26 Jan 2015 21:37:53 +0000 (16:37 -0500)]
ignore context menu click events, notably during drag but also for a couple of other purposes
Conflicts:
gtk2_ardour/editor_canvas_events.cc
Paul Davis [Mon, 26 Jan 2015 16:58:35 +0000 (11:58 -0500)]
remove unnecessary commented-out line.
Session is marked as in-deletion during deletion itself
Paul Davis [Mon, 26 Jan 2015 16:55:48 +0000 (11:55 -0500)]
on OS X, do not require click to activate the application
Robin Gareus [Mon, 26 Jan 2015 16:12:09 +0000 (17:12 +0100)]