13
0
Commit Graph

22216 Commits

Author SHA1 Message Date
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
3193aa93ce Rename Struct defined in freesound header to be less generic
This could potentially conflict with a struct declared in the
ardour/soundcloud_upload.h file.
2016-09-13 14:55:02 +10:00
cec0c57b78 Remove duplicate header includes in gtk2_ardour 2016-09-13 14:55:02 +10:00
af15cf9ef7 Remove duplicate header include from libardour source file 2016-09-13 14:55:02 +10:00
7d31ec02b3 Add missing header include guards in various gtk2_ardour headers 2016-09-13 14:54:54 +10:00
d4a64299c5 Add missing header include guards in canvas library 2016-09-13 14:32:22 +10:00
937a175898 Put ARDOUR::SystemExec implementation inside ARDOUR namespace in source file 2016-09-13 14:32:22 +10:00
6c2aa7ffc5 Add missing include guards in libardour header files 2016-09-13 14:31:35 +10:00
37f7d7595c Tweak PR 269 for portable file-path 2016-09-12 12:05:03 +02:00
Johannes Mueller
cf0d06c137 Cleaned up messed indents (tabs vs. spaces) 2016-09-12 12:03:16 +02:00
Johannes Mueller
9d927b54c1 Lua script to export markers as mp4 chapters
Location markers, that are not xruns are exported as mp4 chapter
marks. This requires `Location::name()` to be exposed to Lua.
2016-09-12 12:03:16 +02:00
Johannes Mueller
5eaec8c82d Expose Location::name() to Lua 2016-09-12 12:03:16 +02:00
656b3b9c28 Add a Lua wrapper to Glib::build_filename() 2016-09-12 12:02:07 +02:00
55af1d539f allow running from src-tree using system-wide gtk-themes w/color defs 2016-09-12 12:01:07 +02:00
Johannes Mueller
ba0eb858bc Example script to prepare the session to record
Often one needs to make sure that all the relevant settings are made
before one actually starts recording. The Lua interface can take care of
this task easily, that the operater by just one action can make sure
that the relevant settings (e.g. recenables, playhead position, etc.)
are ready for recording. This example was written with a quasi live
podcast scenario in mind.

See `scripts/prepare_record_example.lua` for details.
2016-09-12 11:10:40 +02:00
Johannes Mueller
e54ae02170 Expose Locations::remove() to Lua
Clearing location markers is a frequent task and should be automizable. For
example it is handy to clear all the markers when restarting the recording
from scratch after a failed recording.
2016-09-12 11:10:40 +02:00
Thomas Brand
98d9887adb add request_play_loop() & get_play_loop() to luabindings 2016-09-12 11:08:37 +02:00
fc0114a7e2 Fix #7015, Crash while aborting Region trim using Esc key
There were two issues:

The first is that TrimDrag::aborted was calling TrimDrag::finished with a null
GdkEvent which caused a segfault when dereferencing. So avoid that by passing
in a dummy event as we are just going to undo the operation in the next step
anyway so it shouldn't matter if it is valid(AFAICT).

The other is that TrimDrag:aborted was calling Editor::undo() which was in turn
calling TrimDrag::aborted leading to infinite recursion and stack overflow.
Calling Session::undo() directly seems to avoid that issue.

This fix feels like a bit of a hack...but it seems to work and is better than a
crash.
2016-09-11 22:53:00 +10:00
f91e591f40 Fix #6774, Moving start/end markers doesn't set Session as modified/dirty
If a Session is saved and then the start or end session markers are moved,
closing the Session will not result in "Unsaved Session" dialog being presented
even though the Session has been modified. This change sets the Session as
modified when either the Session start or end markers are modified.
2016-09-11 21:24:56 +10:00
dab6e8a2d3 Fix #7003, Store/Restore state of checkboxes in Export dialog 2016-09-11 09:29:53 +10:00