13
0
Commit Graph

267 Commits

Author SHA1 Message Date
1c87f6adec properly setup port system latency for Dummy & ALSA backend 2014-06-06 00:58:11 +02:00
748c137461 pass ardour's pid to the device reservation script.
terminate a-r-d when ardour crashes or exits unexpectedly.
2014-06-05 19:49:23 +02:00
8d6183bff5 ALSA backend: require both in+output. 2014-06-05 03:27:19 +02:00
822c460d15 DBus ALSA device reservation 2014-06-05 02:22:13 +02:00
a907d3455e break out ALSA related functions into libardouralsautil 2014-06-04 19:16:37 +02:00
40cfe86569 ALSA: tentative hack to request audio-device. 2014-06-04 17:17:15 +02:00
6b781f72f2 ALSA backend: engine.halted_callback if the process thread dies 2014-06-04 17:17:15 +02:00
104adebea6 if the user chooses to stop the jack-backend, mark it as stopped. Don't display the "..was shutdown .. was not fast enough.." message. 2014-06-04 17:17:14 +02:00
aec7ea4613 Revert "Revert "ALSA backend: separate flags for is-running and should-be-running""
sorry, c/p error
This reverts commit 9658b77327.
2014-06-04 02:39:39 +02:00
9658b77327 Revert "ALSA backend: separate flags for is-running and should-be-running"
Theoretically one could alter the plugins after a delivery even on a
frozen track. ..or even change settings, the ordering and add/remove
plugins after the frozen part of a track.

We won't go there. Frozen is frozen. this API is not needed after all.

This reverts commit 6d89488d64.
2014-06-04 02:34:58 +02:00
6d89488d64 ALSA backend: separate flags for is-running and should-be-running 2014-06-04 02:23:41 +02:00
03cb44f814 ALSABackend: elaborate on start-up error cases 2014-06-04 02:19:46 +02:00
daaa59b533 Revert "When writing '.jackdrc' make sure we enclose any device names in
quotation marks". This patch is incorrect. The string quoting must be done ONLY
when creating a string to be written to ~/.jackdrc or similar, not when
constructing an argument list.

This reverts commit 5626ea2b1f.
2014-06-03 20:08:26 -04:00
5626ea2b1f When writing '.jackdrc' make sure we enclose any device names in quotation marks
(in Windows, device names almost always contain whitespace)
2014-06-03 14:04:10 +01:00
01cedf0e05 ALSA backend: tweak midi parser (fix start mid sequence) 2014-06-03 01:00:58 +02:00
b050f91323 ALSA backend: device detection 2014-06-03 00:50:26 +02:00
432f54db24 make ALSA backend optional and disable by default 2014-06-02 20:33:12 +02:00
c79a56a08f ALSA backend: add raw midi parser 2014-06-02 19:23:07 +02:00
5cd2010c79 ALSA backend: raw midi prototype 2014-06-02 19:23:07 +02:00
8e9b02cfa2 ALSA backend (based on Dummy backend and zita-alsa-pcmi) 2014-06-02 19:23:07 +02:00
f6d29abfc7 DummyBackend: fix midi event mux+sorting 2014-06-02 12:20:40 +02:00
1c60652bd8 fix --with-dummy config option 2014-06-01 18:18:32 +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
796f4e9711 make building the dummy backend be a configure-time option. defaults to False for the time being 2014-05-28 22:30:06 -04:00
458d4dc6de (Windows) Add support for finding the bundled version of Jack which comes with Mixbus
A few things need to be tested / completed:-
    1) The code is currently guarded by #ifdef COMPILER_MSVC. This is just precautionary. If it builds okay with MinGW ,the guard can be removed.
    2) Windows Playback and Capture devices almost always have different names. This needs to get accommodated in our Backend dialog (as in Mixbus)
    3) Windows Playback and Capture devices will almost always contain spaces. We need to accommodate this when writing to .jackdrc (surround them in quote marks)
2014-05-27 14:48:44 +01:00
5b4cb15dfc Remove an unnecessary #define 2014-05-27 13:24:51 +01:00
e2cecadd01 Use PLATFORM_WINDOWS (in preference to WIN32) for consistency with the other libraries 2014-05-27 09:51:39 +01: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
43b4577212 waves_backend (MSVC project) - Adapt for using Waves's (customized) portaudio_x86 library (Windows) 2014-05-21 12:50:31 +01:00
e36a8df16e jack_backend (MSVC project) - Adapt for using portaudio_x86 library (Windows) 2014-05-21 12:49:24 +01:00
10a52f1d19 enforce style-guide #3, #26 and #27 2014-05-21 02:25:45 +02:00
9d6cfd67c3 CoreMidi is also needed on OSX.6 2014-05-21 02:17:35 +02:00
81d8eaa216 fix type typo 2014-05-21 00:19:15 +02:00
0de7c8920b Merge branch 'mingw-updates' of https://github.com/mojofunk/ardour into cairocanvas 2014-05-19 17:19:43 -04:00
827388ffdd outline portable implementation to replace clock_gettime() 2014-05-16 18:19:41 +02: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
ad40a9008b Add some more missing #includes 2014-05-06 17:00:35 +01:00
18245b06d0 'atomic_ops' to use glib, rather than Waves's inbuilt atomic operations
Note that the following source files can be removed once we know this works on all platforms:-
backends/wavesaudio/wavesapi/akupara/threading/atomic_ops.hpp
backends/wavesaudio/wavesapi/akupara/threading/atomic_ops_gcc_x96.hpp
backends/wavesaudio/wavesapi/akupara/basics.hpp
backends/wavesaudio/wavesapi/akupara/compiletime_functions.hpp
2014-05-06 09:41:40 +01:00
b9fab9ea28 Add a return value to 'WCMRPortAudioDeviceManager::getDeviceAvailableSampleRates()'
(whilst technically, it doesn't report any encountered errors, it should nevertheless be returning some kind of error status)
2014-05-06 09:33:54 +01:00
8d0ec2403f Add a couple of pthread helper macros
(to accommodate the fact that in ptw-win32, 'pthread_t' is subtlely different from its non-Windows counterparts)
2014-05-06 09:31:11 +01:00
1a1a05fa1c Add 'waves_backend.vcproj' 2014-05-06 09:26:59 +01:00
41fe637e80 Add the 'porttime' source file for Windows 2014-05-06 09:25:27 +01:00
051ceffc5d Add some type guards to 'wstdint.h' (in case we previously #included some headers which already define those types) 2014-05-06 09:23:00 +01:00
9cf2cf55f5 Add some casting and namespace specifiers to keep MSVC happy 2014-05-06 09:20:03 +01:00
0277c8c8d1 Add a couple of missing header files (needed for cin /cout etc) 2014-05-06 09:16:59 +01:00
cd00429672 fix install path for ./waf install of waves backend 2014-05-01 10:18:30 -04:00
fa139421b9 second part of windows/osx macro change - forgot *.cpp files 2014-05-01 09:39:11 -04:00
49423427a6 alter platform-dependent preprocessor macros to use the same names as the rest of the ardour codebase 2014-05-01 09:32:18 -04:00
49ad78659b fix compile for waves backend, after recent API change 2014-05-01 09:22:59 -04: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
ca08e4c7c7 more previously applied changes required to build Waves audio/midi backend 2014-04-30 14:24:32 -04:00
c90fef1b4c second part of (previously applied) change to be able to use -fms-extensions with C compiler 2014-04-30 13:48:25 -04:00
19d21045af 2nd attempt at updated Waves audio backend, with added -fms-extensions as previously applied (but not updated in Waves' repo) to allow anonymous unions, as used by PortMidi 2014-04-30 13:46:41 -04:00
8a6762f189 Revert "update wavesaudio backend, now supports Windows (ASIO) as well as OS X (CoreAudio)"
This reverts commit f374ce69a6.

The code does not compile on OS X, and includes changes to ARDOUR::AudioEngine
that have not landed in git.
2014-04-29 16:30:56 -04:00
f374ce69a6 update wavesaudio backend, now supports Windows (ASIO) as well as OS X (CoreAudio) 2014-04-29 16:06:39 -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
058986f77b finish unfinished work at basing all install paths on the program name 2014-04-28 21:11:08 -04: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
077a194430 Add the main VC project files for building Ardour3 with Microsoft Visual Studio
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
e6b56f3447 fix undefined value, support netjack2 2014-03-23 02:26:37 +01:00
1c402f943f remove unnecessary files from native audio backend 2014-02-24 21:19:17 -05:00
a17f797c52 add waves audio backend when building on apple 2014-02-24 15:17:18 -05:00
6666599e7b add -fms-extensions to allow earlier apple gcc to support anonymous union, as used by PortMidi 2014-02-24 15:16:46 -05:00
dd55b7894e remove SampleFormat code from waves audio backend 2014-02-24 14:49:14 -05:00
1de00ab6bb new audio engine backend for native CoreAudio audio I/O, and PortMIDI for MIDI.
Code builds, runs and functions. Full code review still pending, and some possibly changes to organization of code within the backend is possible
2014-02-24 14:49:13 -05:00
57ffd6c404 changes to wscript to build new audio engine backend 2014-02-24 14:49:13 -05:00
9dbdac2a19 remove unused and unimplementable audio engine sample format code 2014-02-24 14:46:19 -05:00
658bb3ccd4 finished merge of cairocanvas with windows and windows+cc branches 2014-01-10 17:11:10 -05:00
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
36c233fe6c Merge branch 'master' into cairocanvas 2014-01-07 21:37:48 -05:00
2163467d31 add M-Audio 2496 as a recognized card for the mudita24 control panel/app.
(Yes, this hard coding thing is awful)
2014-01-06 11:35:57 -05:00
1676789907 fix merge conflicts from master 2013-12-12 10:06:59 -05:00
Nils Philippsen
a86b66181a ignore "unofficial" states in jack_sync_callback() 2013-12-09 17:56:06 +01:00
59da788793 Merge branch 'master' into cairocanvas 2013-12-05 17:50:28 -05:00
2ba2a50dec Merge branch 'master' into windows 2013-12-04 11:50:36 -05:00
ce7bfb489c change "cpu" in cpu load backend functions 2013-12-04 11:48:31 -05:00
0258f2958b switch from using Sleep/usleep to Glib::usleep() 2013-12-03 10:24:05 -05:00
a420328354 Reinstate call to package config for JACK backend
Not sure how this got lost, merge perhaps.
2013-12-03 20:28:17 +10:00
0f6a65e405 Use Sleep instead of usleep on windows in JACK backend 2013-12-03 20:28:10 +10:00
f74521b0cd Remove command line string quoting when forming jack command line on windows
This used to be necessary when we started the JACK server but now that we
write a .jackdrc it only causes problems.

I have fixed this before in some branch, must have been lost in a merge.
2013-12-02 21:28:19 +10:00
a9fc076d2e Waf options are not valid during build stage so use environment variable 2013-12-02 21:26:28 +10:00
18a59dd7fa Include pbd/localtime_r.h in session_jack.cc for MinGW 2013-12-02 21:22:14 +10:00
3c98de9ce4 fix merge with master 2013-11-29 22:31:29 -05:00
15cee60021 merge and resolve conflict with master 2013-11-29 22:29:25 -05:00
1190f1d0e0 make JACK backend return the right set of values when asked for buffer sizes or sample rate of a device other than the one in use 2013-11-27 17:41:54 -05:00
680c64246e Merge branch 'master' into cairocanvas 2013-11-27 16:19:01 -05:00
d63e8ba0e8 Merge branch 'master' into windows 2013-11-27 16:18:22 -05:00
611d93830a add 0.5 second sleep after closing JACK connection so that next startup/connect is likely to work (allowing JACK time to shutdown). Ugh 2013-11-27 15:25:10 -05:00
56716a1f28 add error check to call to PortManager::reestablish_ports 2013-11-27 15:24:24 -05:00
dc4a984cd6 move AudioBackend::_start() into protected, and expand a bit on documenting ::start() vs ::_start() 2013-11-27 14:27:27 -05:00
08371ae2cf resolve merge with master (?) 2013-11-26 10:24:51 -05:00
0cca272431 try to fix various warnings from gcc when optimization flags are enabled 2013-11-04 21:32:41 -05:00
ea1ccb869a fix merge with master 2013-10-31 13:16:51 -04:00
7fec991077 fix thinko in declaration of ARDOUR::PortEngine::get_port_by_name() 2013-10-28 09:46:59 -04:00
a18db90264 Report an error to stderr if creation of jack command line fails.
Output a simple message to stderr if get_jack_command_line_string() still
fails for any reason.
2013-10-23 19:32:54 +01:00
70f0cfdb3b Don't ever pass -d for device name to dummy jackd driver 2013-10-23 19:32:54 +01:00
903d728b9c Fix setting playback & capture channel counts for jackd dummy backend.
Unlike all the other jack backends which allow setting the number of inputs and
outputs with -i & -o, the dummy backend uses -P & -C for this. Make the jackd
command line use these options when the dummy backend is requested with a
specified input or output channel count.
2013-10-23 19:29:57 +01:00
ac81ea642e Don't fail jackd command line creation for jack dummy backend.
The dummy jackd backend doesn't require a device to be specified, so much
of the error checking in get_jack_command_line_string() is irrelevant, if
not actively wrong, when the dummy backend is specified.

Only perform the checks if the chosen jack backend is not the dummy.
2013-10-23 19:27:09 +01:00
d135c4dc3a fix merge conflicts with master 2013-10-23 08:47:57 -04:00
664e715a00 merge from master 2013-10-22 15:29:44 -04:00
cfe42bc4ea fix issues with recording while synced to JACK (non-pure-virtual method added to AudioBackend) and remove pause() from AudioEngine/AudioBackend APIs 2013-10-21 16:24:24 -04:00
b855e5f322 Merge remote-tracking branch 'remotes/origin/exportvis' into windows+cc
Conflicts (hopefully resolved):
	gtk2_ardour/wscript
	libs/ardour/ardour/audioregion.h
	libs/ardour/ardour/debug.h
	libs/ardour/ardour/directory_names.h
	libs/ardour/ardour/filesystem_paths.h
	libs/ardour/ardour/session_event.h
	libs/gtkmm2ext/gtkmm2ext/utils.h
	libs/panners/1in2out/wscript
	libs/panners/2in2out/wscript
	libs/panners/vbap/wscript
	libs/pbd/pbd/debug.h
	libs/pbd/pbd/file_utils.h
	libs/pbd/pbd/pathexpand.h
	libs/pbd/pbd/ringbuffer.h
	libs/pbd/pbd/ringbufferNPT.h
	libs/pbd/pbd/search_path.h
	libs/pbd/pbd/stacktrace.h
	libs/pbd/pbd/uuid.h
	libs/pbd/pbd/uuid_boost.h
	libs/surfaces/control_protocol/control_protocol/basic_ui.h
	libs/surfaces/control_protocol/control_protocol/control_protocol.h
2013-10-18 10:03:22 +01:00
61c1956ef9 add -fvisibility=hidden to evoral, and make things work 2013-10-17 15:02:20 -04:00
e5888d3983 merge with master and fix 2 conflicts 2013-10-16 22:06:56 -04:00
fb313fb174 Merge branch 'master' into windows 2013-10-16 21:57:17 -04:00
75b933eadb Merge remote-tracking branch 'remotes/origin/master' into windows+cc 2013-10-16 15:55:59 +01:00
9a630003ff fix up issues with MIDI I/O option when using jack1 or jack2's most recent options for this 2013-10-15 15:22:25 -04:00
69a8fc43e2 Merge branch 'master' into windows 2013-10-15 11:17:12 -04:00
e466ce40ad Merge branch 'master' into windows+cc
Conflicts (hopefully resolved):
	gtk2_ardour/ardour_ui.cc
2013-10-14 19:31:22 +01:00
7444ac128e fix inability to export twice 2013-10-12 11:07:57 -04:00
589ef168c1 adapt JACK audiobackend to pay attention to new _start() API related to latency measurement 2013-10-12 10:03:15 -04:00
fa71d82dda Merge branch 'windows' into windows+cc 2013-10-11 18:23:53 +01:00
cf3d8d15f0 some slightly hackish changes to make it possible to use the new internal ALSA midi client (soon to become a driver, however) 2013-10-10 16:54:46 -04:00
c96108c2e1 add API to get current MIDI option from an audio/MIDI backend 2013-10-10 16:18:00 -04:00
1bd04f8bf3 add JACK backend support for MIDI option discovery 2013-10-10 12:59:11 -04:00
2a6a16f980 merge with master, fixing conflicts in 3 wscript files 2013-10-09 14:00:42 -04:00
927ebe3b5f reduce version requirement for JACK 2013-10-08 17:12:20 -04:00
af8a1c146d move JACK configuration test(s) down to where they belong (in libs/backend/jack) 2013-10-08 16:13:39 -04:00
c98abed37f restore jack timebase master and jack session callback functionality (moved into the JACK backend) 2013-10-08 14:02:03 -04:00
7e077bdeba -arestore jack timebase master and jack session callback functionality (moved into the JACK backend) 2013-10-08 14:01:43 -04:00
300b484cf6 Merge branch 'master' into windows+cc
Conflicts (hopefully resolved):
	gtk2_ardour/ardour_ui.cc
	gtk2_ardour/ardour_ui.h
	gtk2_ardour/ardour_ui_options.cc
2013-10-06 11:56:03 +01:00
f3a22fb880 Implement JACKAudioBackend::in_process_thread 2013-10-04 18:54:54 +10:00
53ad2d187f Move processing thread list from ARDOUR::Graph into AudioBackend implementation 2013-10-04 18:53:37 +10:00
df363a4fb3 Add AudioBackendThread class to support different thread type on windows 2013-10-04 18:51:47 +10:00
c736d88a5f don't ping JACK server 4 times to see if it is already up when ardour starts 2013-09-25 22:56:28 -04:00
19bb2b33a8 Merge remote-tracking branch 'remotes/origin/cairocanvas' into windows
Conflicts (hopefully resolved):
	gtk2_ardour/marker.cc
	gtk2_ardour/midi_region_view.h
	gtk2_ardour/region_gain_line.h
	gtk2_ardour/utils.cc
	gtk2_ardour/video_image_frame.cc
	gtk2_ardour/wscript
	libs/backends/jack/wscript
2013-09-21 09:17:25 +01:00
7b96fab60e move configure-time dependency on PortAudio out of libs/ardour and into libs/backends/jack
PortAudio is currently used to get a list of device names for use with JACK on Windows.
We should find a better way to do this that avoids this kind of dependency.
2013-09-19 16:24:51 -04:00
57d24608e7 show a different audio/MIDI option screen if JACK is already running. try to fix problem with using AudioBackend::<property-value>() functions before anything has been set. 2013-09-19 15:03:20 -04:00
fd23ebd088 Merge branch 'master' into cairocanvas 2013-09-17 21:23:30 -04:00
302b08c059 Merge branch 'master' into windows 2013-09-17 21:22:56 -04:00
f51537b71d substantive changes to allow the audio/MIDI setup dialog to change settings as intended
So far only tested with JACK backend, but expected to be more correct for other backends too
2013-09-17 21:09:13 -04:00
fb45fdc052 fix conflicts and merge with master 2013-09-16 22:11:06 -04:00
045ef69ac3 Merge branch 'master' into cairocanvas 2013-09-14 16:43:02 -04:00
a1a5c779c6 fix change in waf uselib name for libardour vs. master 2013-09-14 16:42:42 -04:00
bde50d5396 really fix build issues after removal of "using" directives 2013-09-14 16:34:08 -04:00
0da34e65e3 Merge branch 'master' into windows 2013-09-14 16:24:46 -04:00
25b9e266eb fix build issues after removal of "using" directives 2013-09-14 16:24:21 -04:00
60da662aff Merge branch 'master' into windows 2013-09-14 16:21:32 -04:00
f5191e6257 cerr output when JACK halt callback is executed 2013-09-14 16:18:17 -04:00
76a08ad9e9 fix return value from thread creation function when not connected to JACK 2013-09-14 16:17:49 -04:00