Commit graph

11650 commits

Author SHA1 Message Date
Paul Davis
ac9b5f872d add method (taken from GTK GUI) to goto_nth_marker() to BasicUI 2016-09-27 14:59:29 -05:00
Paul Davis
93dd5414d6 beginning of stripable control; solo+mute mostly operational 2016-09-27 14:59:29 -05:00
Paul Davis
c6faede00c add shift modifier support 2016-09-27 14:59:29 -05:00
Paul Davis
98335084c7 turn on all buttons that be envisaged as useful in ardour (for now); add support for edit-range-from-playhead ops 2016-09-27 14:59:29 -05:00
Paul Davis
3438003566 remove debug output 2016-09-27 14:59:29 -05:00
Paul Davis
eadf9bbef1 light solo button, and do cancel_all_solo() when it is pressed 2016-09-27 14:59:29 -05:00
Paul Davis
0e5ac13a04 use new shared cancel_all_solo() in Mackie code 2016-09-27 14:59:29 -05:00
Paul Davis
40dd604dbc add correct implementation for cancel all solo to BasicUI 2016-09-27 14:59:29 -05:00
Paul Davis
d407d09d9c pulse metronome led when enabled 2016-09-27 14:59:29 -05:00
Paul Davis
a96b320e3d expand display contents to include TC & BBT clocks, plus button function and track indicators
So many possibilities, so little time. Really going to need a "native" widget kit before this is finished
2016-09-27 14:59:29 -05:00
Paul Davis
5ae72d574c only 1 MIDI port needed; more button functionality 2016-09-27 14:59:29 -05:00
Paul Davis
4991bf5a1a push2: working bidirectional communication, some transport control/display (LED only); some scrolling 2016-09-27 14:59:29 -05:00
Paul Davis
96db13e1ba push2: working port i/o 2016-09-27 14:59:29 -05:00
Paul Davis
67698b8232 push2: port registration, LED setup 2016-09-27 14:59:29 -05:00
Paul Davis
e0be45de38 remove duplicate/unnecessary header inclusions 2016-09-27 14:59:29 -05:00
Paul Davis
189173c1b1 various fixes for push2 support. Now setups video display when enabled 2016-09-27 14:59:29 -05:00
Paul Davis
413fe2cf9a adjustments to build nascent push2 surface support 2016-09-27 14:59:29 -05:00
Ross Lagerwall
2203e03831 Match new[] with delete[] 2016-09-27 18:22:53 +01:00
Robin Gareus
6298246a00 fix detecting .flac format 2016-09-25 22:20:08 +02:00
Robin Gareus
8018bed0de add an option to exclude unused Audio Sources when archiving the session 2016-09-23 20:34:28 +02:00
Robin Gareus
f7cb5b1a6b fix a typo.
Really a no-op, AudioSource::length() ignores the position, and
for regular regions > 0 is equivalent to != 0
2016-09-23 18:46:34 +02:00
nick_m
080e7755a6 Remove _midi_regions_use_bbt_beats from Session, _start_pulse and _length_pulse from MidiRegion.
- _start/length_beats are now quarter notes regardless
	  of loaded session version.

	- also restores note colour update
2016-09-23 03:39:05 +10:00
Paul Davis
b475fda66e PortManager::silence() should not clear data in AsyncMIDIPorts
This data was generated asynchronously and is not required to be "silenced"
the way that session data would be. Compare also to the similar tests for
sync-related MIDI ports
2016-09-21 23:02:38 -05:00
Paul Davis
c21332df71 gain controls are supposed to be "gain-like" 2016-09-21 17:18:48 -05:00
Robin Gareus
c80e8727df report archive encoding progress 2016-09-21 13:04:25 +02:00
Robin Gareus
aeb1c71211 Add option to flac encode audio when archiving 2016-09-21 04:05:45 +02:00
Robin Gareus
1acfb11cb6 add a static flag to force writing LV2 state
This is needed for save-as and archiving, LV2 state may not be saved
otherwise if lilv_state_equals() returns true.

Also if thestate is saved as part of save-as or archiving or
template, the state-version did increase.
Upcoming normal save will reference a plugin state that does not exist
in the current session bundle.
2016-09-21 03:45:57 +02:00
Robin Gareus
ad0aef7dce add API to change FileSource path in-place
This allows to retain IDs and References of a FileSource, while
changing the actual file under the hood (e.g. from .wav to .flac)
2016-09-21 03:42:06 +02:00
Robin Gareus
22e16b7904 add a SndFileSource c'tor to create .flac encoded file for archiving 2016-09-21 03:40:48 +02:00
Robin Gareus
7e09dc1aa6 fix LV2 State Flags for Atom:Path
state-restore does not set the same flag, so lilv_state_equals()
returns false even for identical states and a new state is saved regardless

actual fix also depends on http://dev.drobilla.net/ticket/1145
2016-09-21 03:34:43 +02:00
Robin Gareus
20ebf10ba3 initial support for archiving sessions 2016-09-20 19:52:56 +02:00
Tim Mayberry
441eaebd92 Restore ARDOUR::MuteControl state, fixes bug #7025
This should be the final part of a fix for bug #7025, which means the id
property of PBD::Controllable is restored and a new id is not generated at
first save.

I'm assuming this was a typo, comparing with the wrong name meant the state of
the MuteControl was never being restored. This also fixes restoring bindings
associated MuteControl instances.
2016-09-20 15:52:31 +10:00
Tim Mayberry
3797d8c2f1 Fully restore ARDOUR::SoloSafeControl state
This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.
2016-09-20 15:52:31 +10:00
Tim Mayberry
359e63fbe8 Fully restore ARDOUR::SoloIsolateControl state
This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.
2016-09-20 15:52:30 +10:00
Tim Mayberry
19831f068c Fully restore ARDOUR::SoloControl state
This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.

This also fixes restoring bindings associated SoloControl instances, which is a
bit surprising hasn't been noticed/reported.
2016-09-20 15:51:16 +10:00
Robin Gareus
b6c80153c3 add API to create [tar.xz] archives 2016-09-19 11:33:07 +02:00
Tim Mayberry
02b7db03bd PBD::canonical_path will no longer throw so change test 2016-09-19 15:55:39 +10:00
Tim Mayberry
569167a603 Move PBD::canonical_path to pbd/file_utils.h/cc and reimplement for Windows
This fixes the libpbd testCanonicalPathUTF8 and libardour
open_session_utf8_path unit tests

You can now have Sessions with localized names containing characters that
aren't in the system codepage on Windows.

It also fixes the issue where a Session would not open when it was moved into a
path with characters that aren't in the system codepage.

The only use case for calling canonical_path/realpath on the session path
AFAICT is for resolving relative paths that are passed via the command
line/terminal. I'm doubtful that works correctly on Windows because of
character encoding issues with the current API we use for that(not glib), so it
is slightly ironic that this issue was caused by an incorrect implementation of
a function that is not really necessary on Windows at this point in time.
2016-09-19 14:47:52 +10:00
Tim Mayberry
75ade6b2df Add test to create new Sessions with localized names and reopen them
This test is successful on Linux but fails on Windows currently because of the
incorrect realpath implementation for windows in pbd/path_expand.cc
2016-09-19 14:47:52 +10:00
Tim Mayberry
1a0ac52021 Copy UTF-8 test strings from libpbd tests into libardour test utils
Ideally these would be shared.
2016-09-19 14:47:52 +10:00
Tim Mayberry
9192a2e969 Add test for PBD::canonical_path on Windows using utf8 strings
This currently fails because the windows only realpath implementation in
pbd/pathexpand.cc, which is called from PBD::canonical_path to resolve the path
uses Glib::locale_from/to_utf8. As I demonstrated in the
testOpenFileUTF8Filename test case Glib::locale_from/to_utf8 are not the
correct functions to use for this use case as it converts to/from utf-8 to the
locale's current character encoding.  On Windows this is most often a single
byte encoding such as Windows-1252 and conversion will fail if the path
contains any characters that are not in system codepage.
2016-09-19 14:47:52 +10:00
Tim Mayberry
aa77c2eb58 Give the Windows MMTimer test a better chance of passing
The default scheduling on windows seems fairly erratic or is at least in the
VM that I'm running these tests on, so increase the timing slack a bit so the
test has a better chance of passing. It is still quite easy for it to fail
though, especially if you for instance manipulate the terminal window somehow
while running the tests but it does not really matter in any case as this test
serves its purpose in testing the PBD::MMTimers API.
2016-09-19 14:47:52 +10:00
Robin Gareus
aca6e667a8 update a-plugins to use official lv2plug.in URI 2016-09-18 19:07:49 +02:00
Robin Gareus
e2b06156c9 add support for LV2 #coarseBlockLength and #enabled
this deprecated previously non-standard extensions
2016-09-18 19:06:59 +02:00
Robin Gareus
eaa1dacf5f ensure that Lua DSP scripts are configured (even with 0 channels)
This fixes an issue with dsp_configure not being when there are
only MIDI signals at the given insertion point.
2016-09-18 01:17:05 +02:00
Tim Mayberry
ce16b5424f Fix crash when ExportDialog is hidden
The issue is that when ExportDialog is destroyed
ExportFileNotebook::FilePage::on_hide is called which in turn calls
ExportProfileManager::save_format_to_disk() in order to save changes to the
analysis and soundcloud upload checkboxes. This then causes the
ExportProfileManager::FormatListChanged signal to be emitted, which in all
other cases is emitted when the format list is modified so that the GUI can
rebuild the format selector menu in ExportFormatSelector::update_format_list
when a format is added or removed.

The problem when doing this in the destructor is that some of the widgets have
already been destroyed, specifically the issue was in
ExportFileNotebook::update_soundcloud_upload trying to access the
soundcloud_selector member that had already had its destructor called.

As it is not necessary to call this signal in the first place and it just
causes unnecessary GUI updates remove the signal emission.
2016-09-17 22:03:16 +10:00
Tim Mayberry
ac4ad28b4f Fix indentation in ARDOUR::ExportProfileManager source file 2016-09-17 22:03:16 +10:00
Robin Gareus
6ad519ce8e VST threading: prevent concurrent effSetChunk and process()
This is a potential fix for unreliable preset load/restore.
(http://mixbus.harrisonconsoles.com/forum/thread-1970-post-21486.html#pid21486)

Since a Glib Mutex can't be copy-constructed an explicit copy c'tor
is needed.
2016-09-17 13:46:30 +02:00
Robin Gareus
a1fae47c15 NO-OP: whitespace 2016-09-16 22:38:14 +02:00
Robin Gareus
140c4bb115 re-do previous commit
* do not include _by_name() API. Port names are locale dependent
* proper whitespace (after comma, before bracket) and styleguide
2016-09-16 22:35:27 +02:00