29c484cd95
NOOP: reformat indentation
2015-10-03 13:13:58 -04:00
91d3aabf53
NOOP: reformat indentation
2015-10-03 13:13:58 -04:00
76398911d4
more code-control when laying out Mackie Control GUI panel
2015-10-03 13:13:58 -04:00
6bf0d4f627
add basic support for HUI heartbeat, only used for HUI devices
2015-10-03 13:13:58 -04:00
4ef45aacc1
add DeviceType specifier for mackie devices.
...
Incomplete, because we need a way to handle multiple devices of different types
2015-10-03 13:13:58 -04:00
13765d41e3
NOOP: reformat indentation
2015-10-03 13:13:58 -04:00
c8448cb0dd
add device type to Mackie device info
2015-10-03 13:13:57 -04:00
53c47e0ccd
add support to display and set key aliases in mackie GUI
2015-10-03 13:13:57 -04:00
6357770588
additional check for DSP falloff.
2015-10-03 17:46:55 +02:00
20038fedf4
less verbose unit-tests
2015-10-03 17:46:39 +02:00
01105dc971
DSP load fall-off from 100%.
...
get_dsp_load_unbound() will return large values >100% for testing,
but actual fall-off is from 100%.
2015-10-03 17:46:19 +02:00
9fc3883cbb
fix float calc:
...
divide large number. not multiply a small.
2015-10-03 17:44:56 +02:00
f0c1d58f59
fix windows compilation
2015-10-03 11:20:15 +02:00
3733fd7f31
remove undefined and unused method declaration
2015-10-02 22:08:15 -04:00
0ee737f129
another change from modifier_state() to main_modifier_state()
2015-10-02 22:08:15 -04:00
c78426968f
avoid handling pitchbend (fader) messages while SHIFT modifier is active.
...
See comment in code for more detail
2015-10-02 22:08:15 -04:00
40a4e2e6af
no longer call ::zero_all() when deleting an MCP surface object.
...
The ports required may no longer exist, and it requires a lot of messages. A reset is sent instead
2015-10-02 22:08:14 -04:00
9476657cd1
use ::main_modifier_state() in some more places
2015-10-02 22:08:14 -04:00
ef6b0bdb07
necessary header changes for new redisplay code in MCP
2015-10-02 22:08:14 -04:00
4d47760d61
add new (fast) redisplay timer that pushes parameter display text to MCP device.
...
Changes are queued in a FIFO, and pulled when a timeout in the MCP event loop fires.
2015-10-02 22:08:14 -04:00
05a8107ff6
fix comment spelling
2015-10-02 22:08:14 -04:00
2cdfeda884
use Surface::reset() when deleting MackieControlProtocol, rather than sending lots of messages.
...
This may be a bit "strong" because on the MCU Pro (at least) it causes a fader recalibration.
2015-10-02 22:08:14 -04:00
ccf505c3a2
implement backlight, fader touch sensitivity and recalibrate fader functions for MCP GUI
2015-10-02 22:08:14 -04:00
04b9df1fd9
avoid sending replicated fader set position messages
2015-10-02 22:08:14 -04:00
3bc7f863ca
explicitly drop control surface protocols before disconnecting from engine.
...
This is not bomb/thread proof yet, because it still requires at least one process callback to function
2015-10-02 22:08:14 -04:00
136b659f1c
remove debug output
2015-10-02 22:08:14 -04:00
64b4877ef6
the return of the 1 second fade out at session close
2015-10-02 22:08:14 -04:00
a05e48dab0
fix unbound DSP calc.
2015-10-02 22:28:03 +02:00
87c36aba60
use new error-messages
2015-10-02 17:51:17 +02:00
798c235d4d
define more backend error-messages.
2015-10-02 17:49:31 +02:00
3f99c44ff6
improve CoreAudio error reporting
2015-10-02 17:28:28 +02:00
918133a342
fix handler of fader (pitchbend) messages in Mackie Control so that the outbound messages match the inbound ones
...
Pitch bend values really can span 0 to 16384, not 16383
2015-10-02 10:22:00 -04:00
71bf231199
allow aliasing Mackie Control buttons to other buttons
2015-10-02 10:21:20 -04:00
5c63ed589c
catch changes in click status and alter LED appropriately
2015-10-02 07:32:56 -04:00
a4fced6d63
change zoom and scrub handling to use modifier bits
2015-10-02 07:32:56 -04:00
d28c8c9bb4
spelling correction in error message
2015-10-02 07:32:56 -04:00
4a31b03761
re-apply roll-delay after seek - fixes #5781
2015-10-01 23:17:01 +02:00
8384d98c92
there's no class called "The" :)
2015-10-01 21:39:15 +02:00
6b4e5f1d47
ALSA: update error-codes for HW initialization.
2015-10-01 12:42:05 +02:00
dcf327f86a
Return meaningful error codes when ALSA backend fails to start
...
Unfortunately it seems that in zita-alsa-pcmi doesn't set state() correctly in
some cases. Setting an invalid SR doesn't display the correct error message,
first guess would be that set_hwpar is failing and state() is not
representative of the actual error.
2015-10-01 09:10:19 +10:00
aa713fcd83
Return meaningful error codes when PortaudioBackend fails to start
...
So they can be used to give a contextual error message in the GUI
2015-10-01 09:10:19 +10:00
f178152114
Use portaudio error codes in the PortaudioIO class.
...
Having error codes defined in PortaudioIO means it is not dependent on the
ErrorCodes in AudioBackend but it doesn't really make sense to have another
set, so just use the PA ones until they become insufficient.
2015-10-01 09:10:19 +10:00
d85ab8af89
Reinterpret the return value of AudioBackend::start as AudioBackend::ErrorCode
...
This will allow backends to return a more meaningful error message. Eventually
an error code could be returned by AudioEngine::start and the GUI can then use
AudioBackend::get_error_string to convert the error into a translated error
message directly, or it may be desirable to define its own error messages.
The reasons for not doing that right now is that this is a workable solution
with the least change required.
2015-10-01 09:10:19 +10:00
9a7f96f15a
Add a couple of error codes to AudioBackend::ErrorCode
...
Also use the error message from ARDOUR_UI::reconnect_to_engine as the default
error string
2015-10-01 09:10:19 +10:00
71343e835a
change the logic for a capture buffer flush to disk when a locate is occuring
...
We can't check for Session::actively_recording() because punch out may have disabled that. Rather
than add logic to check if a flush is needed (which is not much different than the code that runs
as part of the flush to disk), just do a flush anyway.
2015-09-30 13:02:58 -04:00
7ff47ab80e
tweak some debug output
2015-09-30 13:02:58 -04:00
343bc5160b
remove apparently bogus adjustment to capture_captured in AudioDiskstream::transport_looped
2015-09-30 13:02:58 -04:00
2cf779fd0c
split Butler::flush_tracks_to_disk() into two distinct versions with clear names and make one of them private
2015-09-30 13:02:58 -04:00
239da0efb5
Fix Mackie control metering ( fixes #6608 ).
2015-09-28 20:13:15 -07:00
b8ccf8accc
BWF USID according to EBU-R99
2015-09-29 01:20:30 +02:00
1536228d00
fix initialization of reserved I/O names vector
2015-09-28 17:52:27 -04:00
34f088576c
get loop recording working when using seam-ed looping
2015-09-28 17:42:11 -04:00
0613ddd1f9
better more reliable checks on renamed, newly created and imported track/bus names
2015-09-28 17:42:11 -04:00
9f8fe4b0bc
change semantics of 4th argument to Session::locate to mean "this locate is connected with play-loop just being enabled"
2015-09-28 17:42:11 -04:00
b9611a3168
a few new DEBUG_TRACE calls related to session transport state
2015-09-28 17:42:11 -04:00
9202bc162a
minor fix for possible off-by-one logic when at/near the end of the loop range
2015-09-28 17:42:11 -04:00
f24fef669a
fix a long-standing bug arising from a change to some logic which reversed an "is-rolling" test
2015-09-28 17:42:11 -04:00
c9b991ba50
move code location where loop playback is cancelled when stopping
2015-09-28 17:42:11 -04:00
f2aa681974
loop record is a feature whether or not loop-is-mode is true or not
2015-09-28 17:42:11 -04:00
3e23b5903e
Session::disable_record() should work whether we are in loop mode or not
2015-09-28 17:42:11 -04:00
dd89363292
remove cruft.
2015-09-28 00:36:44 +02:00
e65903a49a
Sort ports in state-save.
...
This results in identical XML if the session did not change, allowing
to keep track of state-changes easily (e.g. session file in git).
Thanks to deva (again).
2015-09-27 16:10:10 +02:00
ed2ce36735
LV2 state cleanup, patch from deva. closes #6607
...
set _impl->state on session load in order to detect state changes
properly (no not save duplicate states).
+ some small mem-leaks (free state)
2015-09-27 14:07:57 +02:00
e344d379d2
update semantics of PBD::remove_directory()
...
Remove the directory recursively including itself. The function
is used in two places only:
* LV2Plugin::add_state() -- no change, remove tmp. state
* Session::save_as() -- on error, remove target
In both cases removing the folder itself is correct.
2015-09-27 12:44:54 +02:00
26fdf99a92
copy LV2 options to heap.
...
Stack pointer becomes invalid when the array goes out of scope.
Fixes rare crash in suil_wrapper_new() or GUIs iterating over options.
2015-09-25 19:44:30 +02:00
e4adb99e06
Add some casting to keep MSVC happy
2015-09-24 09:06:19 +01:00
402c69c0fd
Add some newly introduced sources to our MSVC project (libardour)
2015-09-24 09:05:38 +01:00
fedec84d3b
fix iterator after map::erase().
...
The iterator referring to the removed element is invalidated.
Other iterators remain valid.
2015-09-23 22:26:44 +02:00
ccf558f482
standardize VST Callback debug message print
2015-09-22 21:02:27 +02:00
30713adb16
add debug flags for VST Callbacks
2015-09-22 20:37:35 +02:00
f5b3ad18cf
PBD::Debug to stdout
...
fixes debug output on windows. std::cerr is lost,
only std::cout, printf() and fprintf(stderr, ..) work.
2015-09-21 23:08:45 +02:00
621e9992a7
amend 01403dc
(VST Pin connected)
2015-09-21 23:01:59 +02:00
Todd Naugle
233c144c2c
Update RouteGroup property defaults.
...
This is part of a larger fix for #6450 . Previously new route groups were
created with different default properties depending on which code created
the new group. The group tab method had all properties set and that is now
going to be the default.
2015-09-21 14:49:31 -05:00
cba31db6fe
processor-box: explicitly check for "Amp" (Fader)
2015-09-21 13:14:29 +02:00
77ee3d18a6
add includes for g_open()
2015-09-21 11:06:34 +02:00
df0544c4e6
fix vst plugin; not sure if this was the intention, but it builds now.
2015-09-21 10:10:07 +02:00
b1424dab79
Vpot assign buttons don't do anything, don't light LEDs either.
2015-09-21 10:04:06 +02:00
47976ed4fa
Make Mackie control surface LEDs for modifier keys only light while pressed. ( fixes #6601 )
2015-09-21 10:03:56 +02:00
01403dc1dd
fix VST audioMasterPinConnected callback
2015-09-21 02:20:22 +02:00
André Nusser
6a248b61f0
fix duplicating multiple selected regions - fixes #6202
2015-09-20 22:22:39 +02:00
7b4aa97145
explicit string.h include for memset()
2015-09-20 20:24:49 +02:00
70bed9d6a0
silence detection: include fades.
...
Fades must be outside of regions above threshold in order
to properly split drum-hits or fast transients in general.
2015-09-20 19:40:32 +02:00
ac078fd93f
fix sndfilesource::open return value typo.
2015-09-20 18:38:52 +02:00
8bee256e4f
prepare LTC File Reader
2015-09-20 18:35:29 +02:00
861d6f81a3
add silence-stripping fade constraints
...
Ensure that non-silent regions are at least
as long as the selected fade-duration.
2015-09-20 01:28:15 +02:00
bd5b97e964
Dummy: add a CC only test-sequence
2015-09-19 19:00:43 +02:00
91d786a078
fix silence-strip process report
2015-09-19 19:00:42 +02:00
2e9e8d3b33
Fix windows test to also pass under wine
...
It looks as if the default timer resolution for applications running under wine
is different than Windows so just test that the minimum timer resolution is
below a certain amount rather than checking before and after calling
timeBeginPeriod
2015-09-19 10:59:39 +10:00
555ef50521
no c99
2015-09-19 01:22:14 +02:00
7648824773
speed-up smf_track_delete() from O(N^2) to O(n)
2015-09-19 00:38:32 +02:00
a5141fdaf3
NOOP - SMF debugging.
2015-09-18 17:37:36 +02:00
21b720fddc
Midi CC events have no event-ID
...
Prior to this change the last iterator's ID was used. (event's ID was
not updated for CCs)
2015-09-18 17:37:03 +02:00
8b2fb88f15
fix ever increasing MIDI event IDs
...
Iterating over a const Midi-Sequence calls Evoral::Sequence::set_event(),
which in turn used Evoral::Event::operator=() which always created
a new event-ID (create copy of the event).
Issues fixed:
- Saving *unmodified* MIDI produced new event-IDs on every save;
files changed with every save. - greetings to Deva.
- all [GUI] operations that use IDs to refer to notes e.g. undo.
invalid undo-history.
Also clarify assignment operator name. Prefer explicit assign() over =.
2015-09-18 17:36:15 +02:00
c12e8cc47c
Modify Strip Silence so that it can't create regions with -ve lengths
...
AFAICT this could happen if a region's end time (on the timeline) was earlier than the end time in the actual recording. This could cause a situation where the last block of detected silence would have an end time greater than the end tome for the region being processed. Strip Silence would create its new regions - but the last one it created would usually come out with a negative duration.
2015-09-18 10:44:07 +01:00
d609217c55
Make sure that those recently moved functions will be visible if they're needed outside of libpbd
2015-09-18 10:27:27 +01:00
44ea59495c
MSVC projects - accommodate some modules that recently got moved or removed
...
(mostly these got moved out of the PortAudio backend and into libpbd)
2015-09-18 10:25:11 +01:00
c1d6a2fd92
add string_compose argument specializations so that empty std::string and empty C strings are handled as intended
2015-09-17 17:16:23 -04:00
f3a1ac21cb
associate label more closely with VST path button. the plugin tab needs a complete layout rethink, someday
2015-09-17 16:07:40 -05:00
e44212321e
Add test to libpbd to check PBD::touch_file and pbd/gstdio_compat.h
...
GStatBuf is not usable on 32 bit Windows without the redefinition in
pbd/gstdio_compat.h so add a test to check for the correct behavior of
g_stat and g_utime on all platforms now that the issue is fixed.
2015-09-17 23:26:38 +10:00
95b55c7346
fix g_lstat()
2015-09-17 15:01:26 +02:00
7ac691ec82
use pbd's gstdio compatibility wrapper
2015-09-17 14:37:57 +02:00
c90bab4d4e
add glib/stdio compat wrapper for mingw64-w32
2015-09-17 14:36:47 +02:00
96cc1dbe80
Revert "add an Amp to Delivery, remove it from Send, make use of this in various ::run() methods"
...
This reverts commit 601a34521c
.
2015-09-16 18:38:44 -04:00
74db5abc7e
Add ardour/types.h to ardour/parameter_descriptor.h for AutomationType
2015-09-16 16:55:17 -04:00
1691e965a5
update reported DSP load for ALSA & Dummy
2015-09-16 18:24:57 +02:00
1c43383e92
CoreAudio: use libardour provided DSP load calc.
2015-09-16 18:24:57 +02:00
e125c78070
fix DSP load bounds 0..1 and add unbound API
2015-09-16 18:24:57 +02:00
119e56e7eb
Add PBD::QPC::initialize to initialize timer and call it from PBD::init
...
Check timer for invalid frequency
Precalculate timer tick rate to save a few instructions
Don't use static variables inside functions to avoid checking for initialization
Use static functions inside anonymous namespace for internal linkage
2015-09-16 23:59:38 +10:00
9bd893a6a2
Make sure the QPC frequency is cached so the timer can be used
2015-09-16 22:50:37 +10:00
faa38a0d29
Use ARDOUR::DSPLoadCalculator in DummyBackend
2015-09-16 11:22:17 +10:00
305f1d73bb
Use PBD::get_microseconds() from pbd/windows_timer_utils.h in DummyBackend
2015-09-16 11:22:17 +10:00
782dbf0e3f
Set max time of DSPLoadCalculator in every cycle in ALSA backend
2015-09-16 11:22:17 +10:00
ccfe3e1015
Use ARDOUR::DSPLoadCalculator in ALSA Backend
2015-09-16 11:22:17 +10:00
449b57d583
Add test for DSPLoadCalculator to libardour tests
2015-09-16 11:22:17 +10:00
158c12eb92
Add DSPLoadCalculator::set_max_time() to set max time based on samplerate and period size
2015-09-16 11:22:17 +10:00
35a1c3b6a5
Put functions inside anonymous namespace and use static for internal linkage
2015-09-16 11:22:17 +10:00
5d9144173b
Mark strings intended for developers/debugging as not for translation
2015-09-16 11:22:17 +10:00
d007fc05b1
De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend
2015-09-16 11:22:16 +10:00
091c4ed3a7
Move Windows MMCSS related utility functions into libpbd
2015-09-16 11:22:16 +10:00
76a0c823ca
Add PBD::DebugBit for debugging thread related debugging output
2015-09-16 11:22:16 +10:00
d76fe212b7
Move MMCSS related utility functions into PBD namespace
...
In preparation for moving to libpbd
2015-09-16 11:22:16 +10:00
f58e3abdbe
Perform QPC timer check on windows in PBD::init when PBD_TEST_TIMERS env is defined
2015-09-16 11:22:16 +10:00
f4cb4e479d
Rename PBD::QPC::get_timer_valid to check_timer_valid and perform timer test
...
I'm not sure if this test is going to be effective as I don't have hardware to
test on at the moment. As noted in the documentation, Windows XP should be the
only OS where QPC uses a timer source that is non-monotonic(multi-core with
non-syncronized TSC).
2015-09-16 11:22:16 +10:00
cd05d46c00
Add windows specific test for pbd/windows_timer_utils.h API
2015-09-16 11:22:16 +10:00
a88b2da6a9
Fix PBD::MMTIMER::reset_resolution and add some documentation
...
timeEndPeriod must be called with the same timer resolution value used in
timeBeginPeriod. When the process exits the timer resolution is restored anyway
so this is not very important.
2015-09-16 11:22:16 +10:00
62f75b8b16
Remove glib timer test from pbd testsuite
...
There are no test assertions and it takes a long time to execute the test so
just leave it disabled for now.
2015-09-16 11:22:16 +10:00
3f5c01e4eb
Move Windows timer utility functions from PA backend into libpbd
2015-09-16 11:22:16 +10:00
4ffe8ffc0f
Put Windows timer functions into PBD namespace in preparation for moving them to libpbd
...
Add functions for get/set the Multimedia timer resolution, although we are
really only interested in the minimum, this will facilitate testing
Put timer utility functions inside nested namespaces as they are platform
specific
2015-09-16 11:22:16 +10:00
4330db1aa7
Update timestamp types in CycleTimer class to be signed
2015-09-16 11:22:16 +10:00
08e18a0cb4
Move implementation for DSPLoadCalculator back into header
...
It can be inline now that it is much simpler
2015-09-16 11:22:16 +10:00
f5e7aa11f9
Use same algorithm as CA and ALSA backends in DSPLoadCalculation
...
Stop using an averaging of the values until we can establish whether it is
really necessary.
2015-09-16 11:22:16 +10:00
cf88bbc472
Add check for invalid timer values from the DummyBackend
...
Needed for systems where the Windows QPC timer returns erratic values
2015-09-16 11:22:16 +10:00
b2a7393553
Change types in DSPLoadCalculator to signed integer after change in utils::get_microsecond
2015-09-16 11:22:16 +10:00
a974659504
Check return value of windows timer functions and handle errors
...
Change return type of utils::get_microseconds to signed int and return -1 when
failing to read timer
2015-09-16 11:22:16 +10:00
50a6487e77
move speed quietning code into Delivery, where it belongs.
...
Note: I find the -12dB reduction too much of a reduction.
2015-09-15 17:01:12 -04:00
601a34521c
add an Amp to Delivery, remove it from Send, make use of this in various ::run() methods
...
Delivery::_amp now will handle monitor-related delicks assuming the Session::config.get_use_monitor_fades() is
true.
2015-09-15 16:35:37 -04:00
fc74894def
another note-off fix.
...
For nearly coincident note-on the sequence does not matter,
but note-off must be sent before a new note-on in strict
order (could be the same note).
2015-09-15 17:50:27 +02:00
4b20e719a8
prepare displaying peakfile queue-len
2015-09-15 17:50:27 +02:00
bed85f98d1
logic rearrangement to avoid unnecessary call to Route::monitoring_state() in instrument/generator tracks
2015-09-15 09:08:38 -04:00
392836a7d2
NO-OP: comment clarification
2015-09-15 09:06:16 -04:00
952443a4b7
NO-OP: parenthesis and brace style
2015-09-15 09:05:08 -04:00
2b1a30ca96
only apply transport declicking if requested to do so (default is to do so)
2015-09-15 09:00:50 -04:00
563d9dfb65
add 2 new session properties related to implicit fades/gain ramps
2015-09-15 09:00:50 -04:00
d92fceabb0
use an explicit black list of route names that require numbering.
...
This replaces an attempt to check port names which fails for a number of reasons.
2015-09-15 09:00:50 -04:00
04e7cfabbe
prepare peak-file cleanup/recreate.
2015-09-15 14:44:05 +02:00
551e20b926
Remove ifstream / ofstream when accessing session template files (or creating a new session from a template file)
...
On Windows, the above classes don't support UTF-8 so let's get rid of them and use g_fopen / stringstream / fwrite() etc.
2015-09-15 13:17:22 +01:00
8a4bf386a4
amend previous commit.
2015-09-14 21:25:57 +02:00
9a533c925b
fix short x-fade rendering
2015-09-14 21:18:56 +02:00
e63c3d028a
note-off ordering - fixes #6340
...
Evoral::Beats::operator>() rounds to (1.0 / PPQN), hardcoded 1/1920.0.
If the time difference between two events is smaller than 1/PPQN,
Beats::operator>() and Beats::operator<() produce ambiguous results.
The same pair of values is both "less than" and "greater than" depending
which operator is used.
While it's fine for some cases to ignore the order of nearly concurent
events, the std::priority_queue must be strictly ordered.
2015-09-14 04:55:01 +02:00
d83889079b
hack around a bug in cppunit/mingw/windows.
2015-09-13 20:23:12 +02:00
e45db26d97
adjust precision to specified value, avoid "0".
2015-09-13 20:12:10 +02:00
8e8f8d92c2
allow to run unit-test under wine from srcdir.
2015-09-13 15:30:00 +02:00
69ff6d0507
fix mismatched delete/free
2015-09-13 04:09:24 +02:00
6f6dde4f06
Fix typo in DSPLoadCalculator causing assertions on Windows debug builds
2015-09-13 09:01:26 +10:00
eb998b3264
plug some memory leaks in libs
2015-09-12 20:05:25 +02:00
cb6c975417
remove cruft
2015-09-12 17:55:04 +02:00
a5e3371b80
Event Pool usage debugging, see also 6ade16b38
2015-09-12 02:18:38 +02:00
ec06f2c49f
spelling error fixes (notably "overriden" => "overidden") from IOhannes m zmölnig
2015-09-11 09:23:43 -04:00
9fcc48d140
fail to create Monitor section if port-names are not unique
...
We should still prevent a user from naming a route "Monitor", but
since "Monitor" is a translatable string, this is an i18n safeguard. eg.
- create a session with a mon-section and a track Монитор.
- send the session to a friend in Russia.
2015-09-11 13:14:27 +02:00
def273ea71
queue disk buffer overwrite when playlist layering changes.
...
This is a first approximation. Doing this 100% efficiently is quite hard because it would require comparing the range
currently in the disk buffer and the range impacted by the layer change. I suspect this will work fine for the
foreseeable future
2015-09-10 16:49:15 -04:00
bfd66b2ea0
use PortManager::port_name_prefix_is_unique to check for new route names
2015-09-10 16:41:34 -04:00
c7e755b25c
add PortManager::port_name_prefix_is_unique()
2015-09-10 16:41:34 -04:00
8d54a2472d
fix recent session loading.
...
std::stringstream::operator<< calls strlen(), but the string in the
temp buffer may not [yet] be NULL terminated.
2015-09-10 17:39:31 +02:00
0ef8175b5a
when removing routes, don't do potentially expensive work once for each route.
...
We can update solo state and tell interested parties about the removal once the actual removal is done
2015-09-10 11:35:57 -04:00
cb85080ca8
fix deadlock when removing routes and using JACK1.
...
graph reorder callback needed an early exit if we were deleting routes, is all.
2015-09-10 11:35:57 -04:00
a86aa9e5bc
use FileSource::within_session() for peak-files
2015-09-10 16:47:26 +02:00
b3e8495662
remove duplicate enum registration
2015-09-10 08:15:11 -04:00
1a6c08dcfc
Make sure that the DSPLoadCalculator class is exportable
2015-09-10 10:24:04 +01:00
d2e083397c
Add support for newly introduced class ARDOUR::DSPLoadCalculator (when building with MSVC)
2015-09-10 10:22:38 +01:00
28803fface
Remove DSPLoadCalculator class in portaudio backend source
2015-09-10 12:12:56 +10:00
c2e5bdedff
Use ARDOUR::DSPLoadCalculator in PortAudioBackend
2015-09-10 12:12:56 +10:00
8625362cac
Add DSPLoadCalculator class to libardour
...
This is similar to the class in the PortaudioBackend but uses an average of the
values if raw load is under 80%
2015-09-10 12:12:56 +10:00
09caf8336f
allow LV2 plugins to query current block-size.
...
This is akin to VST2's audioMasterGetBlockSize.
It returns the current nominal block size (think jack-buffersize).
It's not the only block size that may be used when calling run(), it's
just the normal one. The actual block sizes used may be larger or smaller
and may vary between successive calls of run().
This change became neccesary after 53e969e9
. Some plugins expected
maxBlockLength to be the /current/ buffer-size and not all-time maxiumum.
Those plugins can now use nominalBlockLength.
2015-09-10 00:55:59 +02:00
390ea007c5
rework peakfile handling:
...
- copy old peak-files to new (do not require re-calc)
- keep old peak-files (for now, backwards compat)
- fix cleanup-sources to remove *new* peak-file
- include channel-number in hash (like it was done before)
see also 624f76b
TODO: add Session > Cleanup > remove/re-create peaks
2015-09-10 00:55:58 +02:00
78ff3c05a3
remove Ardour broken peak-file support
...
Ardour-2.0 put peak-files in a "broken" location for several months.
Since then Ardour renamed those files. No more. When loading ancient
sessions peak-files are now re-created (in the background).
2015-09-10 00:55:58 +02:00
48579d42b0
update libltc to v1.1.4-4-gb034a23 (endianess issue)
2015-09-09 16:54:26 +02:00
f8912b8b57
Made master fader touch and jog go to _master_surface instead of first surface.
2015-09-08 20:47:16 -07:00
bbfb53e881
RF64, RF64 (WAV) and MBWF native file header formats
2015-09-08 17:40:28 -04:00
f1c0f587ca
new enums required for RF64 => RIFF and MBWF support
2015-09-08 17:40:28 -04:00
Guy Sherman
036ebab8a0
Replaced broken code in recent_sessions.cc
...
The original broken code was intended to stop using ifstream
and ofstream to open files, but it used a very old MSVCism to
open streams from FILE*.
In the case for reading, this patch replaces that code by using
standard c file manipulation to read the data into a stringstream,
and then it uses the existing stream-based code to read from there.
Similarly the ofstream in the code for writing the recent files list
is replaced by a stringstream, and then a c-string is extracted
from it and written using standard c file manipulation.
Also tweaked a couple of typos from rgareus :)
2015-09-08 22:29:20 +02:00
dee324cc36
Use glib to open our 'recent file' list, rather than opening directly with ifstream / ofstream
...
(on Windows, ifstream & ofstream don't support UTF8)
2015-09-08 15:45:34 +01:00
d11b15fbca
dummy, allow 8k buffer-size.
2015-09-08 15:14:02 +02:00
fcbf359dd6
properly clean up meter-pattern cache
2015-09-07 13:35:48 +02:00
d6a5e6fc2e
fix some more uninitialized vars
2015-09-07 00:00:44 +02:00
1e404da10d
libardour: initialize some uninitialized vars..
2015-09-06 21:55:12 +02:00
57321bef35
consistent pango-text layout size - fixes #6490
...
Use gdk_pango_layout() for all text-size calculations.
In Canvas::Text always use the same context (local image surface)
for layouting (prior to this, local and window-context mix resulted in
different sizes).
2015-09-06 16:39:08 +02:00
ef3a42faed
terminate peak-file creation on session-close
2015-09-06 11:49:47 +02:00
f5f11158aa
another hint for clang static analysis.
2015-09-06 10:42:58 +02:00
788234e317
fix dummy-backend driver state
...
When loading previous state, set_driver() is called before
enumerate_drivers().
The available driver list must be available early on.
2015-09-06 10:42:29 +02:00
3fc5bf617a
mode dummy speeds
2015-09-06 00:46:05 +02:00
4ef62a0d6d
add dummy-backend speed-selection
2015-09-06 00:33:24 +02:00
7f00c70f9f
create peak files in background when loading session
2015-09-05 23:28:34 +02:00
bea9bf5387
initialize private variable (unit-test)
2015-09-05 19:16:50 +02:00
482bd4b51c
leave a hint for clang scan-build
2015-09-05 19:16:50 +02:00
c6272812e2
Add a newly introduced source to our MSVC project (libardour)
2015-09-05 18:05:10 +01:00
7e589dcda2
Add some newly introduced sources to our MSVC project (portaudio_backend)
2015-09-05 18:04:29 +01:00
42f0142bb9
remove a float loop counter
2015-09-05 15:47:00 +02:00
56eae394cc
provide details about session-creation failure.
2015-09-05 15:44:41 +02:00
ebfd0782e1
add missing include
2015-09-05 11:36:16 +02:00
d84bc9123f
unit-test: set instance name to pre-configure dummy engine
2015-09-05 01:16:10 +02:00
d6df63ed91
Dummy-Backend: special case unit-test
2015-09-05 01:15:28 +02:00
b66bf67030
fix bitwise enum parsing
2015-09-05 00:00:16 +02:00
015b588d65
print insanity-check message only in debug builds
2015-09-04 22:36:14 +02:00
ad6c71e1fd
Fix invalid error message when selecting directories/folders in Import dialog
...
On linux SndFileSource::get_soundfile_info was being called with an empty path
value when clicking on a folder in the left side part of the file browser which
resulted in an unnecessary error message.
On Windows every time a directory was selected in the Import dialog,
SndFileSource::get_soundfile_info would fail to open the directory in read only
mode and produce an error, but as we don't want to query/open soundfile info
for directories anyway just test and return if the path is a directory.
2015-09-04 11:50:08 +10:00
Mathias Buhr
cfb10eba35
Review changes
2015-09-03 10:05:36 +02:00
Mathias Buhr
624f76b229
Fixes case where audiofiles used wrong peakfiles
2015-09-03 09:54:23 +02:00
Mathias Buhr
95b144ee58
Use const reference and renames variable
2015-09-03 09:54:23 +02:00
30af404def
another -Wabsolute-value fix
2015-09-02 22:57:16 +02:00
c7b64803d9
rework AudioUnit variable input port count.
2015-09-02 21:05:09 +02:00
2f69ee8ec8
a couple of debug output statements to help diagnose a crash, part 2
2015-09-02 12:58:07 -04:00
e91a0f7e11
a couple of debug output statements to help diagnose a crash
2015-09-02 12:24:37 -04:00
93aa8d3734
waveform, mutex for _current_image
...
may be used in render-thread while invalidate_image_cache() is called.
possible fix for #6478
2015-09-02 14:28:26 +02:00
fa32fa1abe
replace "None" with DeviceNone in ALSA/Coreaudio
...
TODO: separate MidiSystemNone
2015-09-02 13:33:40 +02:00
7521028831
Add debug output for errors when setting MMCSS thread characteristics
2015-09-02 12:07:59 +10:00
3618689103
Use MMCSS utility functions in PortaudioBackend
2015-09-02 12:07:59 +10:00
b288a40220
Add utility functions in PortaudioBackend for re/setting MMCSS thread characteristics
2015-09-02 12:07:59 +10:00
77ce989dfa
Pass input and output audio buffers into PortaudioBackend blocking process function
...
This makes it possible to reuse the method for callback based processing
2015-09-02 12:07:59 +10:00
a6fb71022f
Add audio_utils.h header in PortaudioBackend for de/interleaving audio data
2015-09-02 12:07:59 +10:00
23a490c906
Add two utility methods to abstract PortAudioBackend state
...
These may change as support for callback API is added
2015-09-02 12:07:58 +10:00
f143d76523
Extract MIDI input/output processing in PortAudioBackend into new methods
2015-09-02 12:07:58 +10:00
a65b1ddedc
Add a DSPLoadCalculator class to the PortAudioBackend for DSP load calculation
...
The class uses the same algorithm as in the coreaudio and alsa backends and
should probably go into libardour at some point
2015-09-02 12:07:58 +10:00
cb7bac5599
Fix include style of system header
2015-09-02 12:07:58 +10:00
5448c229d9
Extract main processing section of PortAudioBackend into new method
2015-09-02 12:07:58 +10:00
f27d8e1e23
Extract freewheel processing in PortAudioBackend into new method
2015-09-02 12:07:58 +10:00
cf81caa798
Don't update unused dsp timer variable in freewheel process in PortaudioBackend
2015-09-02 12:07:58 +10:00
7b23f80b03
Refactor port change handling part of PA Backend process function into new method
2015-09-02 12:07:58 +10:00
684701427e
Rename variables in PortaudioBackend in preparation for using PA callback API
2015-09-02 12:07:58 +10:00
56b5e04c3b
Fix copy and paste error in debug output message in WINMME Midi Output
2015-09-02 12:07:58 +10:00
ac5eac471d
Signal WinMME Midi output thread so the thread wakes up and terminates properly
2015-09-02 12:07:15 +10:00
d520b9c878
Stop WINMME midi driver/devices when PortAudio backend is stopped
2015-09-02 12:07:15 +10:00
2dbdaaa8f5
Refactor part of PortAudioBackend::_start/stop into new methods
2015-09-02 12:07:15 +10:00
f58282844d
Don't add "None" devices for ASIO driver in PortaudioBackend
2015-09-02 12:07:15 +10:00
0396df963f
Implement new AudioBackend API for force updating devices in PortaudioBackend
2015-09-02 12:07:15 +10:00
16f8c3ce85
Add API to AudioBackend to request update to devices
2015-09-02 12:07:15 +10:00
585930f058
Update devices in PortaudioBackend when setting the driver
...
Reinitialize portaudio to pick up changes in devices and ASIO buffer settings
2015-09-02 12:07:15 +10:00
8c2b9dac59
Rename several methods in PortAudioIO class
...
return ErrorCode's and handle them where necessary
2015-09-02 12:07:15 +10:00
82f84d6203
Refactor part of PortAudioIO::pcm_setup into new method
2015-09-02 12:07:15 +10:00
1cb36108bb
Change the functions related to initializing the Portaudio library
2015-09-02 12:07:15 +10:00
3b71674eee
Remove unused and cryptic _state member from PortAudioIO
2015-09-02 12:07:15 +10:00
fd0b54f459
Use PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setup
2015-09-02 12:07:15 +10:00
4e75220661
Define some error codes in PortAudioIO class
2015-09-02 12:07:15 +10:00
e42f9d649b
Refactor parts of PortAudioIO class into new method
2015-09-02 12:07:15 +10:00
c857008b93
Refactor part of PortAudioIO::pcm_setup into 2 new methods
2015-09-02 12:07:14 +10:00
41211c984c
Make two private methods in PortAudioIO const
2015-09-02 12:07:14 +10:00
8e0e3fcdee
Refactor part of PortAudioIO::pcm_setup into new method
2015-09-02 12:07:14 +10:00
58cfd00e5a
Add utility method to PortAudioIO class to remove goto from pcm_setup
2015-09-02 12:07:14 +10:00
d6f7066e80
Remove apple specific fixes from PortaudioBackend now that it is windows only
2015-09-02 12:07:14 +10:00
dd93aec029
Don't query supported sample rates for ASIO devices in PortaudioBackend
...
There has been reports this can take several minutes on some devices so just
return the default rates(and fail to open the device when a SR is specified
that isn't supported)
2015-09-02 12:07:14 +10:00
519f97b91d
Use two private utility functions in PortaudioIO class for default SR's and buffer sizes
2015-09-02 12:07:14 +10:00
cc7e97f296
Reindent and reformat switch statements in PortaudioBackend
...
This is more readable and consistent with the rest of the source files
2015-09-02 12:07:14 +10:00