Commit graph

17247 commits

Author SHA1 Message Date
Robin Gareus
f9f01104c6 add missing pthread.h includes 2015-07-31 02:28:12 +02:00
Tim Mayberry
cfbd9dd6d4 Add functionality to show ASIO control panel 2015-07-31 09:59:54 +10:00
Tim Mayberry
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
Tim Mayberry
e9d00f5cfb Add MMCSS related code for raising thread priority on Windows 2015-07-31 09:59:54 +10:00
Tim Mayberry
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
Tim Mayberry
6a0e46352c Add extra DEBUG_TRACE output to PortaudioBackend 2015-07-31 09:59:54 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
6b7875de1e Support selecting separate input and output devices in portaudio backend 2015-07-31 09:59:54 +10:00
Tim Mayberry
ff1d4d5c67 Refactor PortAudioIO::discover into three private methods 2015-07-31 09:59:54 +10:00
Tim Mayberry
4e370feeb1 Set default input/output device based on selected host api rather than global default 2015-07-31 09:59:54 +10:00
Tim Mayberry
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
Tim Mayberry
b6db19a5c6 Add host api/driver selection to PortaudioBackend 2015-07-31 09:59:54 +10:00
Tim Mayberry
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
Robin Gareus
b2817bfac5 make it easier to get errors out of GTK + Glib 2015-07-30 19:05:12 +02:00
Robin Gareus
ca0c9b3636 Replace "%z" modifier with glib macro for portability. 2015-07-30 17:00:03 +02:00
Robin Gareus
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
Robin Gareus
0bfdc82034 use “CPU family” to match ppc, ppc7400, etc. 2015-07-30 03:17:33 +02:00
Robin Gareus
b715ef7e93 prepare for MB/PPC 2015-07-30 00:00:19 +02:00
Robin Gareus
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
Robin Gareus
a021da9a9d oops. 2015-07-29 03:34:27 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
2a0365cbef don't crash if taglib cannot open file 2015-07-28 00:45:09 +02:00
Paul Davis
ab4263bff9 Merge branch 'ovenwerks-master' 2015-07-27 16:17:51 -04:00
Len Ovens
1a51f19493 Clean up extra white space added by editor. 2015-07-27 16:17:38 -04:00
Len Ovens
8b4a237ee3 Handle the 4 common encoder types. 2015-07-27 16:17:38 -04:00
Len Ovens
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
Len Ovens
d3b4ef4eed Add enc to midi map for mcp style encoders. 2015-07-27 16:17:38 -04:00
Len Ovens
ae3d4efce0 Make program change toggle or 1 only. 2015-07-27 16:17:38 -04:00
Len Ovens
6ab04a27c3 Allow any one midi event to control only one thing. 2015-07-27 16:17:38 -04:00
Robin Gareus
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
Robin Gareus
22bc62ed43 debug/fix LV2 state loading on OSX 10.5/PPC 2015-07-27 17:11:52 +02:00
Paul Davis
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
Robin Gareus
949a45b748 fixes/updates for move to ::open() 2015-07-27 00:41:28 +02:00
Tim Mayberry
009a06a773 Move ARDOUR::touch_file to pbd/file_utils.h 2015-07-26 12:15:19 +10:00
Tim Mayberry
1a520b376f Use g_open instead of ::open in ARDOUR::touch_file for portability 2015-07-26 11:18:20 +10:00
Tim Mayberry
d91efa7f54 Use g_open and sf_open_fd in SndFileSource for portability 2015-07-25 23:14:52 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
b2ff1e1734 Add unit test to check that libxml2 expects utf-8 encoded file paths on Windows 2015-07-25 23:14:50 +10:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
545fd78a14 Remove sse optimization sources from test applications
These are already built and included in libardour
2015-07-25 17:19:17 +10:00
Robin Gareus
dcf7a407c1 tweak OSX packaging 2015-07-24 19:03:08 +02:00