Robin Gareus
555ef50521
no c99
2015-09-19 01:22:14 +02:00
Robin Gareus
7648824773
speed-up smf_track_delete() from O(N^2) to O(n)
2015-09-19 00:38:32 +02:00
Robin Gareus
a5141fdaf3
NOOP - SMF debugging.
2015-09-18 17:37:36 +02:00
Robin Gareus
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
Robin Gareus
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
John Emmas
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
John Emmas
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
John Emmas
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
Paul Davis
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
Ben Loftis
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
Tim Mayberry
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
Robin Gareus
95b55c7346
fix g_lstat()
2015-09-17 15:01:26 +02:00
Robin Gareus
7ac691ec82
use pbd's gstdio compatibility wrapper
2015-09-17 14:37:57 +02:00
Robin Gareus
c90bab4d4e
add glib/stdio compat wrapper for mingw64-w32
2015-09-17 14:36:47 +02:00
Paul Davis
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
Tim Mayberry
74db5abc7e
Add ardour/types.h to ardour/parameter_descriptor.h for AutomationType
2015-09-16 16:55:17 -04:00
Robin Gareus
1691e965a5
update reported DSP load for ALSA & Dummy
2015-09-16 18:24:57 +02:00
Robin Gareus
1c43383e92
CoreAudio: use libardour provided DSP load calc.
2015-09-16 18:24:57 +02:00
Robin Gareus
e125c78070
fix DSP load bounds 0..1 and add unbound API
2015-09-16 18:24:57 +02:00
Tim Mayberry
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
Tim Mayberry
9bd893a6a2
Make sure the QPC frequency is cached so the timer can be used
2015-09-16 22:50:37 +10:00
Tim Mayberry
faa38a0d29
Use ARDOUR::DSPLoadCalculator in DummyBackend
2015-09-16 11:22:17 +10:00
Tim Mayberry
305f1d73bb
Use PBD::get_microseconds() from pbd/windows_timer_utils.h in DummyBackend
2015-09-16 11:22:17 +10:00
Tim Mayberry
782dbf0e3f
Set max time of DSPLoadCalculator in every cycle in ALSA backend
2015-09-16 11:22:17 +10:00
Tim Mayberry
ccfe3e1015
Use ARDOUR::DSPLoadCalculator in ALSA Backend
2015-09-16 11:22:17 +10:00
Tim Mayberry
449b57d583
Add test for DSPLoadCalculator to libardour tests
2015-09-16 11:22:17 +10:00
Tim Mayberry
158c12eb92
Add DSPLoadCalculator::set_max_time() to set max time based on samplerate and period size
2015-09-16 11:22:17 +10:00
Tim Mayberry
35a1c3b6a5
Put functions inside anonymous namespace and use static for internal linkage
2015-09-16 11:22:17 +10:00
Tim Mayberry
5d9144173b
Mark strings intended for developers/debugging as not for translation
2015-09-16 11:22:17 +10:00
Tim Mayberry
d007fc05b1
De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend
2015-09-16 11:22:16 +10:00
Tim Mayberry
091c4ed3a7
Move Windows MMCSS related utility functions into libpbd
2015-09-16 11:22:16 +10:00
Tim Mayberry
76a0c823ca
Add PBD::DebugBit for debugging thread related debugging output
2015-09-16 11:22:16 +10:00
Tim Mayberry
d76fe212b7
Move MMCSS related utility functions into PBD namespace
...
In preparation for moving to libpbd
2015-09-16 11:22:16 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
cd05d46c00
Add windows specific test for pbd/windows_timer_utils.h API
2015-09-16 11:22:16 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
3f5c01e4eb
Move Windows timer utility functions from PA backend into libpbd
2015-09-16 11:22:16 +10:00
Tim Mayberry
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
Tim Mayberry
4330db1aa7
Update timestamp types in CycleTimer class to be signed
2015-09-16 11:22:16 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
b2a7393553
Change types in DSPLoadCalculator to signed integer after change in utils::get_microsecond
2015-09-16 11:22:16 +10:00
Tim Mayberry
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
Paul Davis
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
4b20e719a8
prepare displaying peakfile queue-len
2015-09-15 17:50:27 +02:00