13
0
Commit Graph

22235 Commits

Author SHA1 Message Date
a5169907e5 match ID of Inline Scope following 2b7a89e 2016-09-18 01:17:05 +02:00
078889efa8 Save changes when toggling checkboxes in ExportDialog
I used the Widget::on_hide method in the ExportFileDialog to defer the saving
of changes in state of the analysis and soundcloud-upload checkboxes as it was
not possible to save the format xml state directly from the
ToggleButton::toggled() signal as it created a recursive loop and also to
prevent saving the state more than once.

Even though the ExportProfileManager::FormatListChanged signal is no longer
emitted when saving format state and the crash no longer occurs without this
change. I think it is worth saving explicitily from in the toggle callbacks to
reduce the complexity of understanding what is taking place and when even if it
is less efficient.

There is definitely more opportunity for refactoring and redesign.
2016-09-17 22:03:16 +10:00
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
ac4ad28b4f Fix indentation in ARDOUR::ExportProfileManager source file 2016-09-17 22:03:16 +10:00
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
a1fae47c15 NO-OP: whitespace 2016-09-16 22:38:14 +02:00
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
2b8979647b Revert "Add convenience Lua bindings to access plugin controls"
This reverts commit faf4438646.
2016-09-16 22:31:43 +02:00
Thomas Brand
faf4438646 Add convenience Lua bindings to access plugin controls 2016-09-16 22:09:05 +02:00
8e36e9bf05 remove cruft - don't pollute global namespace
* remove unused functions
* don't globally export C functions that are only used locally
2016-09-16 22:05:43 +02:00
0996656ecc Allow to query HTTP headers 2016-09-16 01:39:04 +02:00
4042c234b1 Modify our MSVC project to use the newly introduced 'libarchive' library (libardour) 2016-09-15 14:46:33 +01:00
e9e412b989 Modify our MSVC project to use the newly introduced 'libarchive' library (libpbd) 2016-09-15 14:39:38 +01:00
b302f70265 Skip pin-management for MB channelstrip plugins 2016-09-15 15:32:45 +02:00
Guido Aulisi
e2b724194e Do not delete selected MIDI notes while dragging. (See #6602)
This is not caused by commit_reversible_command, but because
NoteDrag::total_dx calls Evoral::Note<Evoral::Beats>::time()
with invalid MIDI note (deleted).
2016-09-15 23:24:36 +10:00
9a0d4499f9 Fix passing ctrl-output data to lua inline display thread 2016-09-15 14:01:43 +02:00
60777d5804 Fix links to manual in windows installer 2016-09-15 14:01:43 +02:00
ff53fa9806 Send/show error message if g_stat fails in Session::cleanup_sources
let the user/developer know if this does occur rather than just silently
skipping the file.

Fix some whitespace issues while we are changing indentation.
2016-09-15 21:27:55 +10:00
304b491a29 Use g_strerror() instead of ::strerror() in Session::cleanup_sources
The error is generated by a glib function so use the glib version of this
function(it also consistent with usage in the rest the file).
2016-09-15 21:27:55 +10:00
36d1d842df Use g_rename() instead of ::rename() in Session::cleanup_sources
The paths are in UTF-8 encoding and ::rename expects paths in the system
codepage encoding so ::rename will fail for any paths that contain characters
that aren't in the system codepage.

This fixes Flush Wastebasket on Windows where paths contain characters that
aren't in the system codepage(usually most non-ascii characters).
2016-09-15 21:27:55 +10:00
d36c41f128 Use g_strerror instead of strerror in ARDOUR::FileSource
For consistency when calling glib functions and to get UTF-8 strings for
display.
2016-09-15 21:27:55 +10:00
331bfef416 Use ::g_rename instead of ::rename in ARDOUR::FileSource class
The path is in UTF-8 encoding so use Glib functions to properly support paths
containing characters that aren't in the system codepage.

This fixes Clean-up Unused Sources on Windows where paths contain characters
that aren't in the system codepage(usually most non-ascii characters).
2016-09-15 21:27:55 +10:00
e297e27b7f Add defines necessary for successful gcc/mingw compile with --cxx11 option
_USE_MATH_DEFINES is required for M_PI

WIN32 is no longer defined by gcc/mingw with --cxx11 option enabled(of course
_WIN32 still is) but as it is used in a liblo header(even though it is probably
incorrect to do so) define it.
2016-09-15 21:27:55 +10:00
5643ed4257 Allow to bunde demo session(s) 2016-09-15 13:11:43 +02:00
98491b9eb2 bundle embeddable/nativeUI Harrison plugins 2016-09-15 13:05:31 +02:00
5eb36a3283 remove cruft from packaging scripts 2016-09-15 12:51:32 +02:00
77bd398153 implement file-[un]archive progress report 2016-09-14 23:10:41 +02:00
1ee63d2610 Restore state of analyze and soundcloud upload checkboxes in ExportDialog
This should be a proper fix for bug #7003, now that I've spent a bit more time
reading the code. The options are now stored as part of the export format
state.
2016-09-14 20:36:04 +10:00
b66d5e842b Add analyse and soundcloud-upload properties of ExportFormatSpecification to xml state 2016-09-14 20:36:03 +10:00
83b48f5cc4 Check a return value from 'g_stat()'
Some Mixbus users (on Windows) have reported seeing ludicrously high figures for the amount of disk space that'll be recovered if they choose to clean up unused sources. I can't see anything obviously wrong in Ardour's code - except for one situation where we don't check a return value after calling 'g_stat()'.

On Windows, the relevant path should be (hopefully!) in UTF8 format and the first thing that g_stat() does is to convert it to UTF16. If that conversion fails for some reason, g_stat() will return an error status and statbuf will be uninitialized - but at the moment, we're not checking this. As an experiment, let's check the returned value and find out if these user reports go away.

Unfortunately, if it does fix the problem then we've got an even bigger problem - because somehow, a Windows user can create source files with invalid names which can't be later deleted!!
2016-09-14 09:58:10 +01:00
Nathan Stewart
3b7cb8275a Fixes 7004 - Ardour crash on Just Quit when AudioEngine is stopped. AudioEngine::stop() if running() is not true and _backend->stop() is true, mutex was being unlocked without being locked. 2016-09-13 19:26:36 -05:00
f41bc70ee9 change all MIDI read-from-source to map all events into the loop-range for seamless looping (if using) 2016-09-13 14:11:29 -05:00
182e35235c debug output formatting 2016-09-13 14:11:29 -05:00
e942c389a7 do not call MidiRingBuffer::skip_to() when getting a MidiDiskstream's playback buffer, and do not use port offset to shift data in time either (it should be correct) 2016-09-13 14:11:29 -05:00
4fa0e3ee90 make MidiBuffer::read_from() use "dst_offset" correctly to alter the time of events read from the MidiBuffer 2016-09-13 14:11:29 -05:00
e05cb11bb0 extend Evoral::Range<T> to offer ::length() and ::squish()
The latter maps a T into a range, using loop semantics
2016-09-13 14:11:29 -05:00
c578fc724b add back event offsetting into MidiRingBuffer::read() (even if we never really use it) 2016-09-13 14:11:29 -05:00
1389fa9e22 NOOP: spacing and indentation 2016-09-13 14:11:29 -05:00
d5984c6c15 show "this" in MidiRingBuffer::dump() 2016-09-13 14:11:29 -05:00
6e59ff4229 slight DEBUG_TRACE enhancement for MidiPort::flush_buffers() output 2016-09-13 14:11:29 -05:00
e16d8637f8 NO-OP: indentation 2016-09-13 14:11:29 -05:00
fbc8504f9e Delivery::run() now offsets data delivered to MIDI ports by the global port offset
if the output is then re-used, MIDI data is readjusted to not use the global port offset
2016-09-13 14:11:29 -05:00
ab160ca748 use class-static method rather than pretend there is a per-member value for Port::port_offset() 2016-09-13 14:11:29 -05:00
21b919c210 provide Session::declick_out_pending() 2016-09-13 14:11:29 -05:00
368a091acd second part of: change offset arguments to various <T>Buffer::read/merge methods from framecnt_t to frameoffset_t 2016-09-13 14:11:29 -05:00
b32ca9e9d9 change offset arguments to various <T>Buffer::read/merge methods from framecnt_t to frameoffset_t 2016-09-13 14:11:29 -05:00
22a9031713 add a new DEBUG enum for MidiRingBuffer 2016-09-13 14:11:29 -05:00
8e995be5cf copy demo sessions 2016-09-13 19:31:38 +02:00
f57e2f2fbe add option to skip unzipping bundled demo sessions 2016-09-13 18:53:29 +02:00
53ee3e2e72 Add support for built-in file/url unzip/untar
This introduces new build-dependency: libarchive
(http://www.libarchive.org/)
2016-09-13 16:14:40 +02:00