13
0
Commit Graph

41 Commits

Author SHA1 Message Date
c6c0654b5a Add Utility function to get host API type in PortaudioIO class 2015-09-02 12:07:14 +10:00
08d6dd153e Add "None" devices to PortaudioBackend
This allows for disabling either input or output, but not both
2015-09-02 12:07:14 +10:00
440e6cd591 Use AudioBackend standard device names for "Default" in PortaudioBackend 2015-09-02 12:07:14 +10:00
3a3d811e82 Use StandardDevices enum in PortaudioIO for default devices
This just makes it a bit easier to read through the code rather than using
magic numbers.
2015-09-02 12:07:14 +10:00
5a5226dded Add StandardDevice enum to portaudio_io.h header 2015-09-02 12:07:14 +10:00
7537a992b3 Use translated error message in PortaudioBackend for audio device I/O error 2015-09-02 12:07:14 +10:00
07f3dae936 Use translated error message for failing to set thread priorities in PortaudioBackend 2015-09-02 12:07:14 +10:00
ee77a7a883 Use AudioBackend::get_standard_device_name for "None" midi device in PortaudioBackend 2015-09-02 12:07:14 +10:00
451e35002c Use pretty name infrastructure to display MIDI device name 2015-09-02 12:07:14 +10:00
71e7b2fbd6 Set the default host api in PortaudioBackend when initializing portaudio
Not setting a default driver causes issues with the EngineControl dialog
2015-08-07 01:25:14 +10:00
529a625c39 Remove "Default" devices from the PortaudioBackend
These are not really necessary now that input and output devices can be
selected separately.
2015-08-05 23:37:50 +10:00
66cafd10d5 Use ASIO specific device channel names for port properties/pretty names 2015-08-05 13:21:30 +10:00
61e851da08 Add code to use ASIO supplied min/max buffer sizes but don't use it
RME HDSP: min == max == preferred size with granularity == 0
Focusrite scarlett 2i2: min = current ASIO setting and max = max buffersize the
device supports with a granularity of 1 which means hundreds of entries in the
dropdown menu.
2015-08-05 13:21:30 +10:00
7295bb6454 Refactor methods in PortaudioBackend to get ASIO buffer sizes 2015-08-05 13:21:26 +10:00
6ca1c8164f Add ASIO specific code to query preferred buffer size for device 2015-08-05 10:52:03 +10:00
c8b207d911 Proper solution to replace 9cabc1b hack.
Initialize uninitialized variable (m_started), remove cruft.
2015-08-04 01:03:57 +02:00
55cd20d862 don’t set paClipOff, have portaudio clip to -1,+1
Fixes issues with some integer drivers where overflow wraps
(values > 1.0 end up at -1, producing a hard click)
2015-08-03 22:57:10 +02:00
c6a02503b4 Windows XP compat 2015-08-03 22:53:53 +02:00
9cabc1bb9a Fix MIDI input on Portaudio Backend with 32bit Windows release/optimized builds
MIDI input doesn't work with -O3 or -O2 optimization levels, no real idea why
at this point. So just append -O0 to CXXFLAGS to override previous optimization
flags for compiling the PortaudioBackend files
2015-08-04 00:15:59 +10:00
5122b7f8e1 Specifically #include <mmsystem.h> to get us TIMECAPS
(not sure why windows.h isn't already #including this for us - but it doesn't seem to be)
2015-07-31 13:48:25 +01:00
f3d3082872 Use llabs (rather than std::abs) for compatibility with MSVC
MSVC doesn't offer an override which accepts int64_t (at least, the 32-bit compiler doesn't)
2015-07-31 13:43:22 +01:00
0428f2e4c9 Use BOOL (rather than WINBOOL) for compatibility with MSVC
(WINBOOL is MinGW specific)
2015-07-31 13:41:16 +01:00
f9f01104c6 add missing pthread.h includes 2015-07-31 02:28:12 +02:00
cfbd9dd6d4 Add functionality to show ASIO control panel 2015-07-31 09:59:54 +10:00
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
40c603c7e9 UTF8 encode windows device names - potential fix for #6418 2015-07-08 11:34:57 +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
9391da0c24 portaudio backend: allow Pa_GetDeviceInfo to fail. 2015-04-15 03:05:09 +02:00
a563007fcc add missing return value 2015-03-20 16:17:07 +01:00
26ce7b5f1b add a non-interleaved mode to the Portaudio backend 2015-03-20 11:45:56 +01:00
1cca79258a call me Mr. Backend
simple blocking (no callback) PortAudio Backend
2015-03-13 13:32:14 +01:00