Tim Mayberry
432e0073f6
Convert some error output to debug output in PortaudioBackend
2015-09-02 12:07:14 +10:00
Tim Mayberry
9185978d2f
Use translated error message in PortaudioBackend with failing to aquire RT perms
2015-09-02 12:07:14 +10:00
Tim Mayberry
9d67d22e70
Use debug output rather than sending errors for developer relevant port errors
...
Most of these are not errors that are intended for the user, they are only
intended for developers so don't send them to PBD::error. The errors that may
be relevant to users should be handled in libardour or the GUI in response to
return values
2015-09-02 12:07:14 +10:00
Tim Mayberry
a272c50597
Move AudioBackend related debug bits into libardour
...
I put these in libpbd as that is where the debug bits are for the Waves backend
but I think it makes more sense for them to be in libardour as that is where
the AudioBackend class is defined
I left the Waves debug bits in libpbd for now.
2015-09-02 12:07:14 +10:00
Tim Mayberry
201d91aedd
Use PortaudioIO::get_current_host_api_type utility function in PortaudioIO class
2015-09-02 12:07:14 +10:00
Tim Mayberry
c6c0654b5a
Add Utility function to get host API type in PortaudioIO class
2015-09-02 12:07:14 +10:00
Tim Mayberry
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
Tim Mayberry
440e6cd591
Use AudioBackend standard device names for "Default" in PortaudioBackend
2015-09-02 12:07:14 +10:00
Tim Mayberry
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
Tim Mayberry
5a5226dded
Add StandardDevice enum to portaudio_io.h header
2015-09-02 12:07:14 +10:00
Tim Mayberry
7537a992b3
Use translated error message in PortaudioBackend for audio device I/O error
2015-09-02 12:07:14 +10:00
Tim Mayberry
07f3dae936
Use translated error message for failing to set thread priorities in PortaudioBackend
2015-09-02 12:07:14 +10:00
Tim Mayberry
ee77a7a883
Use AudioBackend::get_standard_device_name for "None" midi device in PortaudioBackend
2015-09-02 12:07:14 +10:00
Tim Mayberry
451e35002c
Use pretty name infrastructure to display MIDI device name
2015-09-02 12:07:14 +10:00
Robin Gareus
b6f51b2497
coreaudio: re-classify port-errors as warnings
2015-08-28 15:41:33 +02:00
Robin Gareus
dace872af8
fix Dummy backend API. Already_configured means "externally".
2015-08-14 16:26:44 +02:00
Robin Gareus
548340eb05
remove -Woverload-virtual ambiguity (from 1d3690d)
...
this breaks compilation in engine_dialog.cc
2015-08-11 23:50:56 +02:00
Robin Gareus
679903fd22
fix jack startup on OSX (w/midi)
2015-08-11 19:43:57 +02:00
Robin Gareus
a226c4ce38
ALSA backend: query and cache available device-parameters
2015-08-11 19:01:52 +02:00
Robin Gareus
8f10b38275
coreaudio backend: SR/BS query for separate devices
2015-08-11 15:38:04 +02:00
Robin Gareus
e8b2d7a85b
fix coreaudio half-duplex buffersize query
2015-08-11 04:43:07 +02:00
John Emmas
d72c111ccf
Add a newly introduced #define to our MSVC build project (portaudio backend)
2015-08-09 12:44:31 +01:00
Tim Mayberry
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
Tim Mayberry
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
Tim Mayberry
66cafd10d5
Use ASIO specific device channel names for port properties/pretty names
2015-08-05 13:21:30 +10:00
Tim Mayberry
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
Tim Mayberry
7295bb6454
Refactor methods in PortaudioBackend to get ASIO buffer sizes
2015-08-05 13:21:26 +10:00
Tim Mayberry
6ca1c8164f
Add ASIO specific code to query preferred buffer size for device
2015-08-05 10:52:03 +10:00
Robin Gareus
a9b6277d50
Dummy -> Audio system: "None"
...
check if gettext() static initialization works with all compilers.
2015-08-05 00:45:08 +02:00
Robin Gareus
c8b207d911
Proper solution to replace 9cabc1b hack.
...
Initialize uninitialized variable (m_started), remove cruft.
2015-08-04 01:03:57 +02:00
Robin Gareus
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
Robin Gareus
c6a02503b4
Windows XP compat
2015-08-03 22:53:53 +02:00
Tim Mayberry
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
John Emmas
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
John Emmas
3015be533f
Add some newly introduced sources to our MSVC project (portaudio_backend)
2015-07-31 13:45:18 +01:00
John Emmas
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
John Emmas
0428f2e4c9
Use BOOL (rather than WINBOOL) for compatibility with MSVC
...
(WINBOOL is MinGW specific)
2015-07-31 13:41:16 +01:00
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