ardour.git
9 years agoAutomation of LV2 plugin properties.
David Robillard [Sun, 2 Nov 2014 03:29:10 +0000 (23:29 -0400)]
Automation of LV2 plugin properties.

Work towards ParameterDescriptor being used more universally to describe control characteristics.

9 years agoMove ParameterDescriptor from Plugin to its own header.
David Robillard [Sat, 1 Nov 2014 03:48:27 +0000 (23:48 -0400)]
Move ParameterDescriptor from Plugin to its own header.

This fixes circular dependency issues that arise when using ParameterDescriptor more widely.

9 years agoDecouple ControlUI from port index.
David Robillard [Sat, 1 Nov 2014 02:20:24 +0000 (22:20 -0400)]
Decouple ControlUI from port index.

9 years agoDon't complain about properties with plugins that do not support them.
David Robillard [Sat, 1 Nov 2014 02:17:30 +0000 (22:17 -0400)]
Don't complain about properties with plugins that do not support them.

9 years agoproperly initialize variable (amend cffd18d2d84)
Robin Gareus [Sun, 2 Nov 2014 01:50:28 +0000 (02:50 +0100)]
properly initialize variable (amend cffd18d2d84)

9 years agoone off by one off - red-selection outline
Robin Gareus [Sat, 1 Nov 2014 20:05:43 +0000 (21:05 +0100)]
one off by one off - red-selection outline

This mitigates issues introduced with 3.5-3406-g90872c2
but is not a final solution. The x-axis is still broken.
see #5589 comment0015955

9 years agoNOOP, just whitespace/indenting
Robin Gareus [Sat, 1 Nov 2014 17:24:47 +0000 (18:24 +0100)]
NOOP, just whitespace/indenting

9 years agoimplement spin-button internal<>interface bridge
Robin Gareus [Sat, 1 Nov 2014 17:24:31 +0000 (18:24 +0100)]
implement spin-button internal<>interface bridge

Widgets were written to use "[User] Interface" values, but the
spinbutton in a Bar-controller should allow to directly access
the "Internal Value".

9 years agoSlider Controller API Change
Robin Gareus [Sat, 1 Nov 2014 17:22:29 +0000 (18:22 +0100)]
Slider Controller API Change

Prepare to allow BarController (with Spinbutton) to translate
internal/interface values for the SpinBox.

(The change is irrelevant for the fader/slider itself which
always use the [user-]interface value)

9 years agoretain selection on track-height change
Robin Gareus [Sat, 1 Nov 2014 15:48:22 +0000 (16:48 +0100)]
retain selection on track-height change

9 years agoAdd some newly introduced source files to our MSVC project (gtk2_ardour)
John Emmas [Sat, 1 Nov 2014 13:54:39 +0000 (13:54 +0000)]
Add some newly introduced source files to our MSVC project (gtk2_ardour)

9 years agoAdd a newly introduced header file to our MSVC project (libardour)
John Emmas [Sat, 1 Nov 2014 13:53:55 +0000 (13:53 +0000)]
Add a newly introduced header file to our MSVC project (libardour)

9 years agodon't print error when announcing property values for plugins that have none
Robin Gareus [Sat, 1 Nov 2014 06:27:16 +0000 (07:27 +0100)]
don't print error when announcing property values for plugins that have none

9 years agoincrease fine grained control (Ctrl+Alt+[drag|scroll])
Robin Gareus [Sat, 1 Nov 2014 06:26:25 +0000 (07:26 +0100)]
increase fine grained control (Ctrl+Alt+[drag|scroll])

9 years agoconvert interface <> internal values for all automation
Robin Gareus [Sat, 1 Nov 2014 06:25:47 +0000 (07:25 +0100)]
convert interface <> internal values for all automation

fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges

9 years agoFix compilation against older LV2.
David Robillard [Sat, 1 Nov 2014 01:03:12 +0000 (21:03 -0400)]
Fix compilation against older LV2.

9 years agoMore generic RT-safe implementation of LV2 properties.
David Robillard [Sat, 1 Nov 2014 00:44:02 +0000 (20:44 -0400)]
More generic RT-safe implementation of LV2 properties.

9 years agoUse precise define names for LV2 version configure checks.
David Robillard [Sat, 1 Nov 2014 00:22:57 +0000 (20:22 -0400)]
Use precise define names for LV2 version configure checks.

9 years agoFix spelling error.
David Robillard [Fri, 31 Oct 2014 07:29:26 +0000 (03:29 -0400)]
Fix spelling error.

9 years agoRemove unused variable.
David Robillard [Fri, 31 Oct 2014 07:27:34 +0000 (03:27 -0400)]
Remove unused variable.

9 years agofix Dummy DSP load on win32 & low-pass filter load
Robin Gareus [Fri, 31 Oct 2014 21:51:47 +0000 (22:51 +0100)]
fix Dummy DSP load on win32 & low-pass filter load

g_get_monotonic_time() has millisecond granularity,
use performance Counter if available

9 years agoLV2 patch amends:
Robin Gareus [Fri, 31 Oct 2014 18:41:58 +0000 (19:41 +0100)]
LV2 patch amends:

* fix Label (user readable key)
* check if patch range is a file Path
* free some lilv-nodes (plug small mem leak)

9 years agoadd new floating text entry class (ported from Tracks)
Paul Davis [Fri, 31 Oct 2014 16:26:57 +0000 (12:26 -0400)]
add new floating text entry class (ported from Tracks)

9 years agomore changes for rectangle outlining
Paul Davis [Fri, 31 Oct 2014 14:56:03 +0000 (10:56 -0400)]
more changes for rectangle outlining

9 years agocomment fix and expansion re: Canvas::Rectangle outline
Paul Davis [Thu, 30 Oct 2014 13:05:27 +0000 (09:05 -0400)]
comment fix and expansion re: Canvas::Rectangle outline

9 years agoplug memory leak
Robin Gareus [Fri, 31 Oct 2014 05:02:32 +0000 (06:02 +0100)]
plug memory leak

9 years agoprototype [LV2]patch-change support for generic plugin UIs.
Robin Gareus [Fri, 31 Oct 2014 02:26:47 +0000 (03:26 +0100)]
prototype [LV2]patch-change support for generic plugin UIs.

9 years agofix "Session Setup" dialog obscures "File Open" dlg on windows.
Robin Gareus [Wed, 29 Oct 2014 22:05:46 +0000 (23:05 +0100)]
fix "Session Setup" dialog obscures "File Open" dlg on windows.

9 years agoAdd support for USE_CAIRO_IMAGE_SURFACE when building with MSVC
John Emmas [Wed, 29 Oct 2014 17:33:56 +0000 (17:33 +0000)]
Add support for USE_CAIRO_IMAGE_SURFACE when building with MSVC

(new preprocessor directive - greatly improves CPU loading)

9 years agofix typo in 58fec98a
Robin Gareus [Wed, 29 Oct 2014 17:31:13 +0000 (18:31 +0100)]
fix typo in 58fec98a

the documentation was correct: “GTK+ uses G_PRIORITY_HIGH_IDLE + 10
for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 for redrawing
operations.”  but the priority for the idle visual changer was wrong.

fixes, follow-playhead and zoom/scrolling under load (no idle)

9 years agoredraw summary when theme preference changes & consolidate code.
Robin Gareus [Wed, 29 Oct 2014 15:07:13 +0000 (16:07 +0100)]
redraw summary when theme preference changes & consolidate code.

9 years agoKind of Blue
Robin Gareus [Wed, 29 Oct 2014 05:37:20 +0000 (06:37 +0100)]
Kind of Blue

9 years agofix vertical canvas scrolling
Robin Gareus [Wed, 29 Oct 2014 05:35:55 +0000 (06:35 +0100)]
fix vertical canvas scrolling

 * properly account for hidden tracks
 * allow to scroll to last track

9 years agofix summary display (offset on-canvas rulers)
Robin Gareus [Wed, 29 Oct 2014 04:43:38 +0000 (05:43 +0100)]
fix summary display (offset on-canvas rulers)

9 years agofix summary re-size
Robin Gareus [Wed, 29 Oct 2014 04:41:58 +0000 (05:41 +0100)]
fix summary re-size

w/USE_CAIRO_IMAGE_SURFACE

9 years agougly hacks to make the peak display widget not act like a text entry widget. This...
Paul Davis [Wed, 29 Oct 2014 00:30:57 +0000 (20:30 -0400)]
ugly hacks to make the peak display widget not act like a text entry widget. This should die.

9 years agoRevert "change the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton...
Paul Davis [Tue, 28 Oct 2014 14:12:01 +0000 (10:12 -0400)]
Revert "change the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton, since it is absolutely not editable."

This reverts commit 58f7d02bf21776f7537ac16ae41646859dbca0b1.

Conflicts:
gtk2_ardour/default_ui_config.in
gtk2_ardour/gain_meter.cc

9 years agodon't show x-fade menu when right-clicking on frame handles
Robin Gareus [Tue, 28 Oct 2014 15:43:45 +0000 (16:43 +0100)]
don't show x-fade menu when right-clicking on frame handles

Fix crash with midi-regions (they have a frame-handle but no x-fade).
fixes 2nd part of #5992 (backtrace 20141021-B)

This is nicer in one way: When the cursor is "trim" the x-fade
context menu is no longer accessible.
And a bit worse: The x-fade context menu is only accessible on the
small fade-handles (boxes) and on the x-fade itself.

9 years agoadd win IRC channel
Robin Gareus [Tue, 28 Oct 2014 01:40:04 +0000 (02:40 +0100)]
add win IRC channel

9 years agoturn pixfader into a cairowidget
Robin Gareus [Tue, 28 Oct 2014 01:18:46 +0000 (02:18 +0100)]
turn pixfader into a cairowidget

9 years agoallow to use cairo-image/software surface for canvas & cairowidgets
Robin Gareus [Tue, 28 Oct 2014 01:15:10 +0000 (02:15 +0100)]
allow to use cairo-image/software surface for canvas & cairowidgets

9 years agoremove unused old API
Robin Gareus [Tue, 28 Oct 2014 00:27:14 +0000 (01:27 +0100)]
remove unused old API

9 years agofix potential crash at session close (when port-matrix is visible)
Robin Gareus [Mon, 27 Oct 2014 20:15:39 +0000 (21:15 +0100)]
fix potential crash at session close (when port-matrix is visible)

remove_aux_or_listen() -> PortMatrix::route_processors_changed()
-> setup_global_ports() -> PortGroupList::gather() -> crash
if some session ports were already removed.

9 years agofile binary compat is for windows in general (not msvc)
Robin Gareus [Sun, 26 Oct 2014 02:10:53 +0000 (03:10 +0100)]
file binary compat is for windows in general (not msvc)

Fixes crash with MIDI file save/load.

9 years agoupdate GPL (formatting and update FSF address)
Robin Gareus [Sun, 26 Oct 2014 01:24:35 +0000 (02:24 +0100)]
update GPL (formatting and update FSF address)

Verbatim copy of https://www.gnu.org/licenses/gpl-2.0.txt

Also remove the "How to apply" section below "End of Terms",
this allows to use this file 1:1 as License in Installer.

9 years agofix gcc/C++11
Robin Gareus [Sat, 25 Oct 2014 20:00:47 +0000 (22:00 +0200)]
fix gcc/C++11

9 years agocombine short periodic timeout functions for windows.
Robin Gareus [Sat, 25 Oct 2014 17:21:15 +0000 (19:21 +0200)]
combine short periodic timeout functions for windows.

Fixes excessive CPU usage (spinlock instead of sleep/WaitForSingleObject)

MS Windows has a scheduler time-slice of 15ms.
Ardour has two fast timeout functions: The FPS timeout (20-60Hz, clock
video-monitor) and a fast-screen-update (25Hz, meters etc).
They are loosely coupled (async) and scheduled from the main application
thread (gtk main).

Since they're async, gtk schedules them as needed. Even though the actual
period of the separate timeouts is larger. The effective period between
all timeout callbacks is <15ms and the main application thread never idles.

9 years agoskip meter re-draw when no pixels are changed.
Robin Gareus [Sat, 25 Oct 2014 14:15:54 +0000 (16:15 +0200)]
skip meter re-draw when no pixels are changed.

9 years agoproper solution for variable-args jack_client_open()
Robin Gareus [Sat, 25 Oct 2014 14:12:38 +0000 (16:12 +0200)]
proper solution for variable-args jack_client_open()

9 years ago Add some newly introduced source files to our MSVC project (gtkmm2ext)
John Emmas [Fri, 24 Oct 2014 17:38:09 +0000 (18:38 +0100)]
 Add some newly introduced source files to our MSVC project (gtkmm2ext)

9 years ago Add some newly introduced source files to our MSVC project (jack_audiobackend)
John Emmas [Fri, 24 Oct 2014 17:37:24 +0000 (18:37 +0100)]
 Add some newly introduced source files to our MSVC project (jack_audiobackend)

9 years agoSome minor bits of casting to keep MSVC happy when building 'backends/jack/weak_libja...
John Emmas [Fri, 24 Oct 2014 17:34:01 +0000 (18:34 +0100)]
Some minor bits of casting to keep MSVC happy when building 'backends/jack/weak_libjack.c'

9 years agoport changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.
Paul Davis [Fri, 24 Oct 2014 16:18:40 +0000 (12:18 -0400)]
port changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.

Fixes deadlocks caused by mutex on Locations list, and clarifies the purposes and uses of the class-level and
object-level change-related signals.

9 years agoavoid const cast warning
Paul Davis [Fri, 24 Oct 2014 16:16:55 +0000 (12:16 -0400)]
avoid const cast warning

9 years agoadd #include that had gone unnoticed before
Paul Davis [Fri, 24 Oct 2014 14:40:52 +0000 (10:40 -0400)]
add #include that had gone unnoticed before

9 years agofix screwup in prev commit-diff
Robin Gareus [Fri, 24 Oct 2014 15:19:28 +0000 (17:19 +0200)]
fix screwup in prev commit-diff

9 years agoadd explicit construction (for MSVC) and some debug messages
Robin Gareus [Fri, 24 Oct 2014 15:15:03 +0000 (17:15 +0200)]
add explicit construction (for MSVC) and some debug messages

9 years agofix jack transport return value
Robin Gareus [Fri, 24 Oct 2014 14:19:44 +0000 (16:19 +0200)]
fix jack transport return value

9 years agouse x-macros to simplify weak-jack implementation
Robin Gareus [Fri, 24 Oct 2014 13:18:38 +0000 (15:18 +0200)]
use x-macros to simplify weak-jack implementation

9 years agofix libjack names
Robin Gareus [Fri, 24 Oct 2014 12:36:04 +0000 (14:36 +0200)]
fix libjack names

9 years agofix 64bit compile with old gcc
Robin Gareus [Thu, 23 Oct 2014 18:34:44 +0000 (20:34 +0200)]
fix 64bit compile with old gcc

9 years agoadd new Gtk2mmext::EmScale class for measuring font-based sizing
Paul Davis [Thu, 23 Oct 2014 17:17:27 +0000 (13:17 -0400)]
add new Gtk2mmext::EmScale class for measuring font-based sizing

9 years agoskip unavailable backends early on.
Robin Gareus [Thu, 23 Oct 2014 11:02:09 +0000 (13:02 +0200)]
skip unavailable backends early on.

9 years agoadd 'available' interface to the AudioBackendInfo
Robin Gareus [Thu, 23 Oct 2014 11:02:02 +0000 (13:02 +0200)]
add 'available' interface to the AudioBackendInfo

If a backend can be loaded, it does not mean that it can be used;
e.g. weak-linked jack-backend if libjack is not available.

9 years agoweak/runtime jack linking: load libjack dynamically at runtime
Robin Gareus [Thu, 23 Oct 2014 11:01:45 +0000 (13:01 +0200)]
weak/runtime jack linking: load libjack dynamically at runtime

9 years agoshow meter-bridge context-menu on mouse-down
Robin Gareus [Thu, 23 Oct 2014 12:45:14 +0000 (14:45 +0200)]
show meter-bridge context-menu on mouse-down

9 years agoDon't show meter-type menu for MIDI-only meters
Robin Gareus [Thu, 23 Oct 2014 12:25:05 +0000 (14:25 +0200)]
Don't show meter-type menu for MIDI-only meters

9 years agoanother round of compiler warning fixes
Robin Gareus [Thu, 23 Oct 2014 03:11:10 +0000 (05:11 +0200)]
another round of compiler warning fixes

9 years agoavoid name conflict with Note (gtk2_ardour/note.h)
Robin Gareus [Thu, 23 Oct 2014 01:40:44 +0000 (03:40 +0200)]
avoid name conflict with Note (gtk2_ardour/note.h)

9 years agosmall round of compiler warning fixes
Robin Gareus [Thu, 23 Oct 2014 01:32:14 +0000 (03:32 +0200)]
small round of compiler warning fixes

9 years agosilence clang ‘unused include file/compiler flag’ warnings
Robin Gareus [Thu, 23 Oct 2014 00:59:47 +0000 (02:59 +0200)]
silence clang ‘unused include file/compiler flag’ warnings

9 years agowindows installer: add option to use zlib (a lot faster)
Robin Gareus [Wed, 22 Oct 2014 21:58:57 +0000 (23:58 +0200)]
windows installer: add option to use zlib (a lot faster)

9 years agofix jack/mingw compilation
Robin Gareus [Wed, 22 Oct 2014 21:57:55 +0000 (23:57 +0200)]
fix jack/mingw compilation

9 years agofix delivery of MMC events under split process cycle conditions
Paul Davis [Wed, 22 Oct 2014 21:06:53 +0000 (17:06 -0400)]
fix delivery of MMC events under split process cycle conditions

9 years agorequire a timestamp on MIDI::MachineControl::send()
Paul Davis [Wed, 22 Oct 2014 21:06:33 +0000 (17:06 -0400)]
require a timestamp on MIDI::MachineControl::send()

9 years agofix timestamps for immediate MIDI events to deal with split process cycle conditions
Paul Davis [Wed, 22 Oct 2014 21:05:58 +0000 (17:05 -0400)]
fix timestamps for immediate MIDI events to deal with split process cycle conditions

9 years agoerror/debug output when dropping MIDI event due to timing now shows MIDI bytes
Paul Davis [Wed, 22 Oct 2014 21:04:12 +0000 (17:04 -0400)]
error/debug output when dropping MIDI event due to timing now shows MIDI bytes

9 years agoremove unused code
Paul Davis [Wed, 22 Oct 2014 21:02:38 +0000 (17:02 -0400)]
remove unused code

9 years agofix all 4 backends' failure to include the main "backend" thread when computing ...
Paul Davis [Wed, 22 Oct 2014 21:02:15 +0000 (17:02 -0400)]
fix all 4 backends' failure to include the main "backend" thread when computing ::in_process_thread()

9 years agoignore negative value locates and MMC locate commands
Paul Davis [Wed, 22 Oct 2014 16:18:31 +0000 (12:18 -0400)]
ignore negative value locates and MMC locate commands

9 years agoprevent negative playhead positions from entering code via serialized state
Paul Davis [Wed, 22 Oct 2014 16:17:59 +0000 (12:17 -0400)]
prevent negative playhead positions from entering code via serialized state

9 years agoremove obsolete jack includes in libardour
Robin Gareus [Wed, 22 Oct 2014 14:56:12 +0000 (16:56 +0200)]
remove obsolete jack includes in libardour

9 years agowindows: allow loading session with absolute path
Robin Gareus [Wed, 22 Oct 2014 13:22:55 +0000 (15:22 +0200)]
windows: allow loading session with absolute path

9 years agohide splash screen on Windows
Robin Gareus [Wed, 22 Oct 2014 12:29:33 +0000 (14:29 +0200)]
hide splash screen on Windows

..until we get GDK window stack to play along.

9 years agorevert to previous waf version
Paul Davis [Wed, 22 Oct 2014 02:58:31 +0000 (22:58 -0400)]
revert to previous waf version

9 years agoremove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI...
Paul Davis [Wed, 22 Oct 2014 02:55:08 +0000 (22:55 -0400)]
remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config()

9 years agosome keyboard layouts have KP_Separator instead of KP_Decimal
Ben Loftis [Tue, 21 Oct 2014 21:36:15 +0000 (16:36 -0500)]
some keyboard layouts have KP_Separator instead of KP_Decimal

9 years agoslightly closer to correct color for peak display button when not active.
Paul Davis [Tue, 21 Oct 2014 21:26:52 +0000 (17:26 -0400)]
slightly closer to correct color for peak display button when not active.

This cannot be correct at present because all buttons get a fade applied to them.

9 years agoset correct font for peak display button
Paul Davis [Tue, 21 Oct 2014 21:26:21 +0000 (17:26 -0400)]
set correct font for peak display button

9 years agoadd ::set_layout_font (const Pango::FontDescription&) to ArdourButton
Paul Davis [Tue, 21 Oct 2014 21:25:50 +0000 (17:25 -0400)]
add ::set_layout_font (const Pango::FontDescription&) to ArdourButton

9 years agochange the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton, since...
Paul Davis [Tue, 21 Oct 2014 20:01:23 +0000 (16:01 -0400)]
change the peak display widget from Gtkmm2ext::FocusEntry to ArdourButton, since it is absolutely not editable.

This adds a new button name and corresponding colors in default_ui_config which requires a theme reset

9 years agomigrate build & package scripts to where they belong.
Robin Gareus [Tue, 21 Oct 2014 18:16:10 +0000 (20:16 +0200)]
migrate build & package scripts to where they belong.

The build stack-script remains in ardour-build-tools.

9 years agoa few tweaks to zoom computations so that zoom-to-range works correctly
Paul Davis [Tue, 21 Oct 2014 18:48:45 +0000 (14:48 -0400)]
a few tweaks to zoom computations so that zoom-to-range works correctly

9 years agoremove mouse zoom mode; bind z to zoom-to-range
Paul Davis [Tue, 21 Oct 2014 16:47:53 +0000 (12:47 -0400)]
remove mouse zoom mode; bind z to zoom-to-range

9 years agofix note 15897 on #5589 - only use fader cursor for region gain line when in mouse...
Paul Davis [Tue, 21 Oct 2014 15:50:06 +0000 (11:50 -0400)]
fix note 15897 on #5589 - only use fader cursor for region gain line when in mouse gain mode

9 years agoadd mouse mode enums to enums.cc (just for utility purposes)
Paul Davis [Tue, 21 Oct 2014 15:49:27 +0000 (11:49 -0400)]
add mouse mode enums to enums.cc (just for utility purposes)

9 years agoDisallow midi-note duration changes beyond region boundaries
Robin Gareus [Tue, 21 Oct 2014 13:12:13 +0000 (15:12 +0200)]
Disallow midi-note duration changes beyond region boundaries

Fixes crash/assert with negative Beats.

TODO discuss alternative:
 automatically extend/trim region (if possible) or
 accept but hide notes that are out of bounds. That would need
 some solution for ghost notes which still can have negative Beats
 while dragging.

9 years agofix midi-ghost region y-scale
Robin Gareus [Tue, 21 Oct 2014 12:05:41 +0000 (14:05 +0200)]
fix midi-ghost region y-scale

9 years agofix track height resizing on OSX.
Robin Gareus [Tue, 21 Oct 2014 11:20:17 +0000 (13:20 +0200)]
fix track height resizing on OSX.

If the transport is running, g_idle with G_PRIORITY_DEFAULT_IDLE is
never called.

TODO: check other g_idle functions in libs/gtkmm2ext

9 years agofix region drag/drop from region list
Robin Gareus [Tue, 21 Oct 2014 09:46:15 +0000 (11:46 +0200)]
fix region drag/drop from region list

The canvas’ Y-offset (rulers & scroll) needs to be subtracted here.