13
0
Commit Graph

17245 Commits

Author SHA1 Message Date
acd17a9b53 Use MMCSS to elevate the thread priorities for audio and MIDI threads
use AVRT_PRIORITY_NORMAL for audio threads and AVRT_PRIORITY_HIGH for MIDI
threads
2015-07-31 09:59:54 +10:00
e9d00f5cfb Add MMCSS related code for raising thread priority on Windows 2015-07-31 09:59:54 +10:00
fe50d06876 Implement AudioBackend::driver_name() in PortaudioBackend
This was missing and is necessary for EngineControl dialog to work properly
2015-07-31 09:59:54 +10:00
6a0e46352c Add extra DEBUG_TRACE output to PortaudioBackend 2015-07-31 09:59:54 +10:00
e258c827e2 WinMME based midi input/output for portaudio backend
TODO:

Use MMCSS to elevate thread priorities
Enable/test and fix SYSEX related code
2015-07-31 09:59:54 +10:00
b12f865a4a Fix for PortAudioBackend::available_sample_rates
Was being called without initializing PA. PA should probably be initialized in
ctor but PA backend also needs to support hot-plugging devices at some point so
this will do for now
2015-07-31 09:59:54 +10:00
6b7875de1e Support selecting separate input and output devices in portaudio backend 2015-07-31 09:59:54 +10:00
ff1d4d5c67 Refactor PortAudioIO::discover into three private methods 2015-07-31 09:59:54 +10:00
4e370feeb1 Set default input/output device based on selected host api rather than global default 2015-07-31 09:59:54 +10:00
e2001ac4f3 Fix crash when unable to open portaudio stream
Calling Pa_Terminate after failing to open stream causes an assertion
2015-07-31 09:59:54 +10:00
b6db19a5c6 Add host api/driver selection to PortaudioBackend 2015-07-31 09:59:54 +10:00
2437bbbe23 Fix state restoration in Engine dialog for Backends with driver selection
Connect to the backend_combo changed signal after setting state as calling
backend_combo.set_active_text() in set_state was triggering backend_changed(),
which would then see the driver_combo had not been set and set it to the
incorrect value.

The value/name of the backend needs to be restored first then we can populate
the driver combo and set the correct active entry from the saved state. After
which backend_changed() will populate the device combo's etc so they can then
be set to the correct active values from the saved state.
2015-07-31 09:59:53 +10:00
b2817bfac5 make it easier to get errors out of GTK + Glib 2015-07-30 19:05:12 +02:00
ca0c9b3636 Replace "%z" modifier with glib macro for portability. 2015-07-30 17:00:03 +02:00
67c75c5a33 fix file metadata tagging on windows.
This allows TagLib to open the file and create a Tag object (see 2a0365c)
Tagging still fails later (taglib seek/SetFilePointer fails when writing)
2015-07-30 05:28:43 +02:00
0bfdc82034 use “CPU family” to match ppc, ppc7400, etc. 2015-07-30 03:17:33 +02:00
b715ef7e93 prepare for MB/PPC 2015-07-30 00:00:19 +02:00
0113de9b92 Don’t create MTC debug string if it’s not needed.
Removes periodic call to operator<< (and eventually loadlocale) 
in RT-thread in the debug version.
2015-07-29 17:54:56 +02:00
a021da9a9d oops. 2015-07-29 03:34:27 +02:00
36f6aa9356 work-around OSX loadlocale thread safety.
This is not a real fix; just a stop-gap for the worst offender.

iostream on OSX is not thread safe.
Sadly no crash report so far managed to catch the 2nd thread in action.
looks like the GUI thread is preempted, 2nd thread succeeds, and the 
crash occurs later).

see also https://discussions.apple.com/thread/3479591

crash in
   s << c->internal_to_user (c->get_value ());

ardour-4.1.335(5000,0x7fff777f5300) malloc: *** error for object 0x7fe2f3e06170: pointer being freed was not allocated
1   libsystem_c.dylib       abort + 129
2   libsystem_malloc.dylib  free + 428
3   libsystem_c.dylib       __numeric_load_locale + 544
4   libsystem_c.dylib       loadlocale + 216
5   libstdc++.6.dylib       std::__convert_from_v(int* const&, char*, int, char const*, ...) + 193
6   libstdc++.6.dylib       std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const + 193
7   libstdc++.6.dylib       std::ostream& std::ostream::_M_insert<double>(double) + 221
8   ardour-4.1.335          ProcessorEntry::Control::set_tooltip() + 854 (processor_box.cc:578)
9   ardour-4.1.335          ProcessorEntry::Control::control_changed() + 446 (processor_box.cc:637)
10  ibpbd.dylib             PBD::StandardTimer::on_elapsed()
2015-07-28 20:54:43 +02:00
64af6c880c Revert "debug/fix LV2 state loading on OSX 10.5/PPC"
This reverts commit 22bc62ed43.
forwarded upstream: http://dev.drobilla.net/ticket/1073
2015-07-28 18:58:17 +02:00
2a0365cbef don't crash if taglib cannot open file 2015-07-28 00:45:09 +02:00
ab4263bff9 Merge branch 'ovenwerks-master' 2015-07-27 16:17:51 -04:00
1a51f19493 Clean up extra white space added by editor. 2015-07-27 16:17:38 -04:00
8b4a237ee3 Handle the 4 common encoder types. 2015-07-27 16:17:38 -04:00
938f365cc1 Added MasterPosition value=0 to all mcp device files as this is saved and will not default 2015-07-27 16:17:38 -04:00
d3b4ef4eed Add enc to midi map for mcp style encoders. 2015-07-27 16:17:38 -04:00
ae3d4efce0 Make program change toggle or 1 only. 2015-07-27 16:17:38 -04:00
6ab04a27c3 Allow any one midi event to control only one thing. 2015-07-27 16:17:38 -04:00
fee54fb155 fix LV2 freewheeling port, explicit cast bool to float.
http://lv2plug.in/ns/lv2core/#freeWheeling mentions "true"
and http://lv2plug.in/ns/lv2core/#toggled defines true as > 0.
false as <= 0.
2015-07-27 19:08:29 +02:00
22bc62ed43 debug/fix LV2 state loading on OSX 10.5/PPC 2015-07-27 17:11:52 +02:00
c55b659f39 add Session::routes_solo_changed(), a plural method which makes changing many route solo states much faster.
Code originally by Grygorii Zharun in Tracks
2015-07-27 09:41:57 -04:00
949a45b748 fixes/updates for move to ::open() 2015-07-27 00:41:28 +02:00
009a06a773 Move ARDOUR::touch_file to pbd/file_utils.h 2015-07-26 12:15:19 +10:00
1a520b376f Use g_open instead of ::open in ARDOUR::touch_file for portability 2015-07-26 11:18:20 +10:00
d91efa7f54 Use g_open and sf_open_fd in SndFileSource for portability 2015-07-25 23:14:52 +10:00
ba14063463 Use g_open and sf_open_fd in SndFileImportable instead of sf_open and Glib::locale_from_utf8 2015-07-25 23:14:51 +10:00
ecb4a76095 Use g_open instead of ::open in translation related utility functions
This is for portability on Windows
2015-07-25 23:14:51 +10:00
544be3ebe8 Use g_open instead of ::open in AudioSource for portability
This is only really for Windows as g_open and ::open are the same thing on
other platforms
2015-07-25 23:14:51 +10:00
e88f74cbb0 Use GStatBuf in AudioSource::initialize_peakfile for portability
This was initially part of f89a976f that got reverted
2015-07-25 23:14:51 +10:00
0d356174ae Revert "When peakfiles get opened using a non-glib function (in a non-English locale) make sure that we pass locale-specific paths"
This reverts commit f89a976f1a.
2015-07-25 23:14:51 +10:00
44cba53219 Revert "When saving a session (in a non-English locale) make sure that we use a locale-specific path"
This reverts commit cf5a8651d8.
2015-07-25 23:14:50 +10:00
e3c303d72f Revert "A few more instances of non-glib 'open()' getting used without locale-specific input paths"
This reverts commit 52ef02b387.
2015-07-25 23:14:50 +10:00
b2ff1e1734 Add unit test to check that libxml2 expects utf-8 encoded file paths on Windows 2015-07-25 23:14:50 +10:00
226087d06a Only create one test output directory in file copy test
Rather than one directory for each file
2015-07-25 23:14:50 +10:00
dfe2ac1d38 Add unit test to assert that using locale_from_utf8/::open will fail for some file paths on Windows 2015-07-25 23:14:45 +10:00
545fd78a14 Remove sse optimization sources from test applications
These are already built and included in libardour
2015-07-25 17:19:17 +10:00
dcf7a407c1 tweak OSX packaging 2015-07-24 19:03:08 +02:00
6c87a43f0e VST info: use g_fopen() for Windows compat. 2015-07-24 18:05:08 +02:00
64baed2b97 coreaudio aggregate device fix for 10.5 2015-07-24 01:34:57 +02:00