13
0
Commit Graph

9290 Commits

Author SHA1 Message Date
96720089cf remove newly unused code 2015-10-06 18:16:12 +02:00
0cfb898802 propagate solo/iso when disconnecting ports. 2015-10-06 18:16:12 +02:00
89156be67a add more debugging to portaudio/MME MIDI backend 2015-10-06 11:01:58 -04:00
b1609b53bd more solo propagation fixes.
handle cases  Track(s) -> Bus1 -> Bus2
2015-10-06 14:14:44 +02:00
139cb23ab9 fix implicit mute display 2015-10-06 12:21:40 +02:00
fb2e8387dd "Solo Lock" only locks explicit solo (not implicit).
fixes issue:

Track -> Bus
1) solo track -> implicit Bus solo 
2) Solo-Lock Bus
3) un-solo track -> Bus is stuck w/implicit solo on
2015-10-06 12:21:40 +02:00
f04b95c42e Solo-Isolate has no effect on solo propagation.
'Isolate' means that when another track is solo'd the isolated
track won't mute.
2015-10-06 12:21:40 +02:00
4ebc6ef0b4 Fix WinMME midi driver shutdown with sysex enabled
midiInReset triggers the sysex callback to tell the application that it has
finished with the buffer. Calling midiInAddBuffer results in an infinite loop
so just return during shutdown.
2015-10-06 13:29:57 +10:00
1c0265e27c Include button number in canvas button press/release debug info 2015-10-06 13:29:57 +10:00
34d9b2148e Remove an unnecessary boolean argument in jack utils
Specify latency in JackCommandLineOptions instead
2015-10-06 13:29:57 +10:00
3eb4b43fa6 Initialize AudioEngine::last_backend_error() to the default error string
Currently the last backend error string is only set when calling
AudioBackend::start. Errors that occur when calling other AudioBackend methods
like AudioBackend::set_buffer_size do not set the last backend error string.
So until all the required AudioBackend methods return an ErrorCode and
last_backend_error() can be removed just set it to a default string.

Until all errors that occur are correctly indicated by returning an error code
there will still be situations where last_backend_error() is not indicative of
the true error. For instance AudioEngine::start is called and it fails but
returns a valid error code so last_backend_error() is set, then some other
engine/backend method is called that fails and as last_backend_error is not
set the GUI will display the incorrect error message.
2015-10-06 13:29:57 +10:00
da46df6225 Show DSP/CPU load of 0.0% when AudioEngine isn't running 2015-10-06 13:29:57 +10:00
b99d833028 fix implicit solo on disconnect - fixes #6308 2015-10-06 02:53:06 +02:00
09bad018f4 forward "disconnect all", partial fix for #6308 2015-10-06 01:28:33 +02:00
53c14f86c9 fix typo in prev. commit 2015-10-05 22:42:01 +02:00
168212b864 fix typo 2015-10-05 22:37:41 +02:00
2397429e99 use quotes for in-tree pbd/glib wrapper include 2015-10-05 22:15:18 +02:00
dc36b063bf remove unused fstream includes 2015-10-05 22:15:18 +02:00
97bd6db2b7 remove i/ofstream from libardour
except: 
 * audio-unit (ifstream is known to work on OSX)
 * evoral curve algorithm debugger
 * cycle-timer debug code
 * export_handler's CDMarker  -> TODO
2015-10-05 22:15:17 +02:00
b9c8814959 replace i/ofstream for plugin statues 2015-10-05 22:15:17 +02:00
c3b2cc46c5 remove unused API (and ifstream) 2015-10-05 22:15:17 +02:00
eb4c9b022a try enabling windows MME MIDI sysex support 2015-10-05 12:24:15 -04:00
33d614359a only use HUI heartbeat with HUI devices 2015-10-05 12:24:15 -04:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
e11ba7b79d SiP and "solo overrides mutes" tweak:
Only Explicit solos should override mutes.
2015-10-05 14:19:32 +02:00
c4a3291b80 allow grouped AFL/PFL with excl. solo 2015-10-05 00:27:48 +02:00
58d59177bb fix various stuck-solo cases:
* solo groups
* cancel-solo
* SIP <> AFL/PFL changes

The optimized plural-form route_solo_changed() relied on the false
premise that solo-groups and port-connections are disjoint sets.

-=-

e.g. "cancel all solo" calls set_solo(get_routes(), false);
Since All routes are affected, the "non_solo_change" set is empty, and
no changes were propagated up/downstream.

Routes that indirectly change state as group-members, wrongly end up in
the "non_solo_change" list instead of the "solo_change" list.

If a route feeds another in the same group, no changes were propagated.
2015-10-05 00:08:55 +02:00
e21e7f7040 fix AFL/PFL/SIP "stuck solo" - fixes #5803
monitor_send are only active when listening (AFL, PFL).
don't activate them when re-configuring processors.
2015-10-04 23:28:08 +02:00
4178db5f63 globally remove all trailing whitespace from .cpp and .hpp files missed by previous commit 2015-10-04 15:11:15 -04:00
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
297e80e020 attempt to stop transport, finish butler work, and close all files as part of Session > Cleanup 2015-10-04 14:18:04 -04:00
e63de172d5 NOOP: delete trailing whitespace 2015-10-04 14:18:04 -04:00
b3ace2e4c8 namespace fix. 2015-10-04 18:43:44 +02:00
2fbed9e41f replace std::ifstream with g_fopen for portability 2015-10-04 18:23:21 +02:00
ac814da4be correct error message 2015-10-04 17:53:02 +02:00
c68736bc02 Change a few instances of 'stat()' to use 'g_stat()' (for UTF8 compatibility on Windows) 2015-10-04 14:18:54 +01:00
cf33204e35 always use session rt-event to un/set solo 2015-10-04 02:04:59 +02:00
a333edcb28 Initialize variable every loop so MCP devices don't accumulate too. 2015-10-03 13:15:18 -07:00
4b69495f82 Initialize variable every loop so MCP profiles don't accumulate. 2015-10-03 13:06:34 -07:00
2dddf6504b NOOP: delete trailing whitespace 2015-10-03 14:03:29 -04:00
1e5672de98 reset IP MIDI port when deleting a mackie surface port 2015-10-03 13:51:17 -04:00
9d7b5f6df9 reset shared_ptr to master surface when clearing surfaces, to ensure Surface destructor is called 2015-10-03 13:50:59 -04:00
7d2dd9db0c Click: Normalized then dropped by 6dB
Applied gain to both emph click and default click using sox.
This results in louder click sound by default and user is
able to boost click to 0dBFS using the fader on the pref pane.

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2015-10-03 13:14:25 -04:00
4403ce4bd4 make a start on providing direct choice of MIDI ports where an MCP device can be reached 2015-10-03 13:13:58 -04:00
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