13
0
Commit Graph

135 Commits

Author SHA1 Message Date
2169de3975 keep portmap & portindex in sync when renaming ports
Fixes crash on session re-load (introduced in 800c8182 and fde99e68)
2016-04-26 02:26:20 +02:00
ce052ba20a now with C++98 compat 2016-04-24 18:34:31 +02:00
d1874d4685 optimize port lookup, adding/removing/reconnecting routes
xxxAudioBackend::connected_to() is called O(N^2) when building the graph.
Mitigate this by using an O(log(N)) lookup.

This duplicates the storage (both set and map and both are kept in sync.
Changing this to a boost:bidirectional might be nice, before updating
other backends.
2016-04-24 18:26:39 +02:00
9840a11537 implement metadata-set for remaining backends 2016-04-18 00:35:51 +02:00
10140a8e68 implement pretty-name set-property for ALSA and Dummy 2016-04-17 18:22:21 +02:00
5bdab24746 add some midi-debug printf() to the dummy backend 2015-11-28 22:54:00 +01:00
4b25c80cb9 fix edge-case in Dummy-backend random number generator initialization 2015-11-12 09:49:40 -06:00
87c36aba60 use new error-messages 2015-10-02 17:51:17 +02:00
1691e965a5 update reported DSP load for ALSA & Dummy 2015-09-16 18:24:57 +02: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
d11b15fbca dummy, allow 8k buffer-size. 2015-09-08 15:14:02 +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
d6df63ed91 Dummy-Backend: special case unit-test 2015-09-05 01:15:28 +02:00
dace872af8 fix Dummy backend API. Already_configured means "externally". 2015-08-14 16:26:44 +02:00
a9b6277d50 Dummy -> Audio system: "None"
check if gettext() static initialization works with all compilers.
2015-08-05 00:45:08 +02:00
4f81b17e85 another float/double -Wabsolute-value fix 2015-07-05 16:13:08 +02:00
56cc3e2407 fix portengin get_ports() flags API
require all flags to be present (same as jack)
2015-05-03 22:34:52 +02:00
2f432c3be7 dummy: ignore first cycle timing. 2015-05-01 15:58:17 +02:00
49ffcd0d9d clamp DSP load displsy 100% & relax LPF. 2015-04-30 02:00:50 +02:00
e3cd57ecb6 DSP load calculation: favor peak over average. 2015-04-29 21:27:37 +02:00
bb4576b700 Dummy: fix sine/square frequency sweep 2015-04-17 17:09:52 +02:00
d8d9f9b486 proper port unregistration (just some refactoring, noop) 2015-03-14 22:59:07 +01:00
47b1c2889c Include windows.h in Dummy backend for LARGE_INTEGER
This is necessary for a native build using MSYS2 and mingw-w64
2015-03-12 23:03:45 +10:00
09dd3fc369 some backends can handle incorrectly ordered midi events.
(that can happen if multiple sources send to the same
ouput port, in particular async midi events)
2015-03-09 05:41:36 +01:00
50041cb450 avoid non-integer loop conditions. 2015-03-08 02:01:48 +01:00
f88e566576 fix copy/edit in 659a8a2 2015-03-07 14:50:02 +01:00
659a8a26ae fix latency report, take buffersize changes into account. 2015-03-07 14:35:32 +01:00
e3dd226ffa Change order of midi entries so a new backend will default to a working midi system.
Needs testing on all platforms.
2015-03-03 15:57:08 -06:00
bf1d12708d dummy: add square wave frequency sweep generators 2015-02-21 05:05:48 +01:00
582138f280 change Audio backend sample time methods to use a 64 bit timeline 2015-02-19 17:44:01 -05:00
f2ea059db3 DummyBackend: sync switch to freewheeling 2015-01-24 22:45:42 +01:00
4d370b8942 add a midi->audio dummy backend mode.
this allows to easily debug latency compensation
as well as visualize lost midi events.
2015-01-11 20:51:57 +01:00
f499f4cfd2 don't take temporary copy of MIDI sequence
fixes potential boost shared_ptr double free.
2014-12-31 03:19:00 +01:00
805d4dd731 add a MIDI loopback mode to the Dummy Backend 2014-12-30 22:55:14 +01:00
47d083d02d update numbering of midi-test sequences 2014-12-29 14:36:39 +01:00
6e38d3777e add 'size' field to midi-sequences 2014-12-29 14:09:46 +01:00
c3c6f619c3 make it easier to add new midi sequences 2014-12-29 13:58:15 +01:00
9268d2e699 allow to auto-start dummy backend (needed for tests) 2014-12-03 18:24:56 +01:00
929d3fe6ed fix signed/unsigned compiler warning 2014-11-10 22:21:39 +01:00
a37ffd1f0c improve random seed (for dummy generators) 2014-11-10 22:20:36 +01:00
159cb4d2f9 another hack for windows timers, DSP load calculation 2014-11-07 12:17:15 +01:00
6cda13fad4 possible fix for DSP load calculation on windows 2014-11-06 17:29:35 +01:00
8d4cbc4cc1 fix Dummy DSP load on win32 & low-pass filter load
g_get_monotonic_time() has millisecond granularity,
use performance Counter if available
2014-10-31 22:51:47 +01:00
d991bb10ca add 'available' interface to the AudioBackendInfo
If a backend can be loaded, it does not mean that it can be used;
e.g. weak-linked jack-backend if libjack is not available.
2014-10-23 16:53:14 +02:00
68458cde69 fix all 4 backends' failure to include the main "backend" thread when computing ::in_process_thread() 2014-10-22 17:07:11 -04:00
8525a0b258 add a Dummy Backend Loopback mode: 2014-10-11 14:47:35 +02:00
186493687b DummyBackend: symmetric freq sweep: up/down 2014-09-24 18:46:54 +02:00
6dfb8c5c8a DummyBackend: add sine-sweep generators 2014-09-24 17:24:25 +02:00
86672a5c5c fix some double promotion 2014-09-24 17:18:20 +02:00
3f9e916fe2 DummyBackend: two more audio-signal generators (useful for waveform check) 2014-09-24 01:26:51 +02:00
b355f01aa5 DummyBackend: MIDI Event Generators 2014-09-24 01:26:51 +02:00
076bb0b488 change dummy backend to default to _("Silence"). 2014-09-13 22:51:42 +02:00
b1da9af8de ALSA|Dummy: ignore port unregistration when engine is stopped
When changing Engine parameters, ardour first stops
the engine and only later when re-etablishing ports
unregisters/re-registers them.

ALSA: silently ignore port unregs and silently accept registrations
Dummy: print a PBD::info message,
2014-09-08 01:25:56 +02:00
dc318e6e74 ALSA|Dummy Backend: do as jack does:
when the backend is closed, unregister all ports.
2014-09-07 22:50:57 +02:00
4af088c251 DummyBackend: add Uniform White Noise Generator. 2014-07-11 18:05:59 +02:00
2d63489196 Dummy Backend: optimize random-number implementation 2014-07-08 18:40:51 +02:00
941701574e fix and optimize DummyBackend generators
* use Wavetable for sine
* lock generator (concurrency issue)
* always initialize variables
2014-07-08 18:40:51 +02:00
185f06e7f7 add signal generator modules to Dummy Backend. 2014-07-07 16:31:58 +02:00
07fafac36e don't let enumerated device list strings go out of scope. 2014-06-23 12:16:35 +02:00
fb51bdb892 statically allocate midi-options
fixes possible segfault when the data in the vector
goes out of scope due to RVO.
2014-06-23 11:56:58 +02:00
266953cb96 add latency callback to dummy backend 2014-06-11 22:01:21 +02:00
960a5347f0 ALSA & Dummy: implement port [un]registration_callback 2014-06-07 17:28:46 +02:00
d7fc573cb8 alsa + dummy backend, proper [re]initialization 2014-06-06 03:43:39 +02:00
1c87f6adec properly setup port system latency for Dummy & ALSA backend 2014-06-06 00:58:11 +02:00
f6d29abfc7 DummyBackend: fix midi event mux+sorting 2014-06-02 12:20:40 +02:00
dc1a7a15fa Dummy backend, revise small things 2014-06-01 18:18:08 +02:00
b800a01ea6 dummy-backend, fix physical ports in/out convention. 2014-06-01 18:16:15 +02:00
c022f32bcd allow to switch from/to dummy-backend
partos of this may become unnecessary once
libardour handles backend changes properly^Wdifferently.
2014-05-25 00:23:14 +02:00
2b9fa31241 DummyBackend: implement port connect_callback() 2014-05-25 00:21:44 +02:00
0de7c8920b Merge branch 'mingw-updates' of https://github.com/mojofunk/ardour into cairocanvas 2014-05-19 17:19:43 -04:00
4ece16be8e replace gettimeofday() with g_get_monotonic_time() 2014-05-16 18:13:08 +02:00
51d0792f14 DummyAudioBackend: configurable number of MIDI ports 2014-05-16 00:41:35 +02:00
cf8399c1c1 DummyAudioBackend: prepare configurable number of midi ports 2014-05-15 01:18:16 +02:00
6bf8249b4b Use Glib::usleep in DummyAudioBackend rather than ::usleep 2014-05-14 09:48:43 +10:00
b565357bf4 Remove incorrect code for mingw in DummyAudioBackend::in_process_thread
I'm assuming this section was copied from the JackAudioBackend where the
thread type is not pthread_t for mingw, but in the DummyAudioBackend it
is.
2014-05-14 09:48:33 +10:00
66559cd795 Add AudioBackend::info() method to retrieve AudioBackendInfo object
Goal is to be able to call AudioBackendInfo::already_configured() from the right place.
2014-05-01 09:14:25 -04:00
1f70e9472a DummyAudioBackend: fix freewheelin' typo 2014-04-29 13:32:13 +02:00
eaafc3394a DummyAudioBackend: implement /fake/ system ports 2014-04-29 13:32:13 +02:00
19e0383c3b DummyAudioBackend: NOOP, white-space, clarify variable name & casts 2014-04-29 13:32:13 +02:00
b945cda558 DummyAudioBackend: port-engine, midi-buffers and the rest of it 2014-04-28 23:00:40 +02:00
2fccbe1a6c DummyAudioBackend: basic process threads and support structure 2014-04-28 22:59:19 +02:00
9907d25ea5 skeleton dummy audio-engine 2014-04-28 21:29:35 +02:00