summaryrefslogtreecommitdiff
path: root/libs/backends/portaudio/portaudio_backend.cc
AgeCommit message (Collapse)Author
2017-08-05Reduce DSP thread priority (main-i/o > midi i/o > computation)Robin Gareus
2017-08-03Some more assert() debuggingRobin Gareus
2017-04-08Retain order of concurrent MIDI eventsRobin Gareus
This fixes an issue with FaderPort8 (and maybe other surfaces or synths).
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-04-18implement metadata-set for remaining backendsRobin Gareus
2016-02-27fix hang at exit (after freewheeling) with PA-nonblocking backendRobin Gareus
2016-02-11Implement new AudioBackend API in PA backend to choose between callback and ↵Tim Mayberry
blocking API
2016-02-11Implement MIDI device enumeration and latency offset/calibration in ↵Tim Mayberry
portaudio backend
2015-12-21ship both blocking and callback PA backends (for debug purposes)Robin Gareus
this just works (no symbol conflicts)
2015-12-08standardize port-namesRobin Gareus
2015-12-08fix previous commit.Robin Gareus
2015-12-08portaudio connect & graph-changed callbacks (untested)Robin Gareus
2015-12-02Fix latency compensation for audio data in portaudio backendTim Mayberry
For drivers that correctly report latency values(ASIO) this should result a much closer alignment of audio in a loopback test. Measurement and adjustment may still be needed, especially for non-ASIO drivers. Testing with the RME HDSP Multiface and Yamaha AG06 using ASIO drivers results in maximum offset of a couple of samples.
2015-12-02Rename member variables in Portaudio Backend for consistencyTim Mayberry
2015-12-02Rename blocking process function in portaudio backendTim Mayberry
2015-12-02Rename blocking thread function in portaudio backendTim Mayberry
2015-11-19Fix windows build when using pthreads-win32 libraryTim Mayberry
2015-11-19Add support for callback API to portaudio backend but keep blocking API as ↵Tim Mayberry
default Don't use the callback API for now until further and wider testing.
2015-10-02use new error-messagesRobin Gareus
2015-10-01Return meaningful error codes when PortaudioBackend fails to startTim Mayberry
So they can be used to give a contextual error message in the GUI
2015-10-01Use portaudio error codes in the PortaudioIO class.Tim Mayberry
Having error codes defined in PortaudioIO means it is not dependent on the ErrorCodes in AudioBackend but it doesn't really make sense to have another set, so just use the PA ones until they become insufficient.
2015-09-16De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA BackendTim Mayberry
2015-09-16Move Windows MMCSS related utility functions into libpbdTim Mayberry
2015-09-16Move MMCSS related utility functions into PBD namespaceTim Mayberry
In preparation for moving to libpbd
2015-09-16Move Windows timer utility functions from PA backend into libpbdTim Mayberry
2015-09-16Put Windows timer functions into PBD namespace in preparation for moving ↵Tim Mayberry
them to libpbd Add functions for get/set the Multimedia timer resolution, although we are really only interested in the minimum, this will facilitate testing Put timer utility functions inside nested namespaces as they are platform specific
2015-09-16Change types in DSPLoadCalculator to signed integer after change in ↵Tim Mayberry
utils::get_microsecond
2015-09-02Use MMCSS utility functions in PortaudioBackendTim Mayberry
2015-09-02Add utility functions in PortaudioBackend for re/setting MMCSS thread ↵Tim Mayberry
characteristics
2015-09-02Pass input and output audio buffers into PortaudioBackend blocking process ↵Tim Mayberry
function This makes it possible to reuse the method for callback based processing
2015-09-02Add two utility methods to abstract PortAudioBackend stateTim Mayberry
These may change as support for callback API is added
2015-09-02Extract MIDI input/output processing in PortAudioBackend into new methodsTim Mayberry
2015-09-02Add a DSPLoadCalculator class to the PortAudioBackend for DSP load calculationTim Mayberry
The class uses the same algorithm as in the coreaudio and alsa backends and should probably go into libardour at some point
2015-09-02Extract main processing section of PortAudioBackend into new methodTim Mayberry
2015-09-02Extract freewheel processing in PortAudioBackend into new methodTim Mayberry
2015-09-02Don't update unused dsp timer variable in freewheel process in PortaudioBackendTim Mayberry
2015-09-02Refactor port change handling part of PA Backend process function into new ↵Tim Mayberry
method
2015-09-02Rename variables in PortaudioBackend in preparation for using PA callback APITim Mayberry
2015-09-02Stop WINMME midi driver/devices when PortAudio backend is stoppedTim Mayberry
2015-09-02Refactor part of PortAudioBackend::_start/stop into new methodsTim Mayberry
2015-09-02Implement new AudioBackend API for force updating devices in PortaudioBackendTim Mayberry
2015-09-02Update devices in PortaudioBackend when setting the driverTim Mayberry
Reinitialize portaudio to pick up changes in devices and ASIO buffer settings
2015-09-02Rename several methods in PortAudioIO classTim Mayberry
return ErrorCode's and handle them where necessary
2015-09-02Use PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setupTim Mayberry
2015-09-02Reindent and reformat switch statements in PortaudioBackendTim Mayberry
This is more readable and consistent with the rest of the source files
2015-09-02Use translated error messages in PortaudioBackend when SR or i/o channel ↵Tim Mayberry
counts don't match requested These errors are probably preventable but currently they do occur so at least tell the user about them(and hope they check the error log window)
2015-09-02Use a translated error message in PortaudioBackend when unable to open audio ↵Tim Mayberry
device
2015-09-02Convert some error output to debug output in PortaudioBackendTim Mayberry
2015-09-02Use translated error message in PortaudioBackend with failing to aquire RT permsTim Mayberry
2015-09-02Use debug output rather than sending errors for developer relevant port errorsTim Mayberry
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