ardour.git
8 years agoanother hint for clang static analysis.
Robin Gareus [Sun, 6 Sep 2015 08:42:58 +0000 (10:42 +0200)]
another hint for clang static analysis.

8 years agofix dummy-backend driver state
Robin Gareus [Sun, 6 Sep 2015 08:42:29 +0000 (10:42 +0200)]
fix dummy-backend driver state

When loading previous state, set_driver() is called before
enumerate_drivers().
The available driver list must be available early on.

8 years agomode dummy speeds
Robin Gareus [Sat, 5 Sep 2015 22:46:05 +0000 (00:46 +0200)]
mode dummy speeds

8 years agoadd dummy-backend speed-selection
Robin Gareus [Sat, 5 Sep 2015 22:33:24 +0000 (00:33 +0200)]
add dummy-backend speed-selection

8 years agocreate peak files in background when loading session
Robin Gareus [Sat, 5 Sep 2015 21:28:34 +0000 (23:28 +0200)]
create peak files in background when loading session

8 years agoinitialize private variable (unit-test)
Robin Gareus [Sat, 5 Sep 2015 17:14:16 +0000 (19:14 +0200)]
initialize private variable (unit-test)

8 years agoleave a hint for clang scan-build
Robin Gareus [Sat, 5 Sep 2015 16:11:15 +0000 (18:11 +0200)]
leave a hint for clang scan-build

8 years agoAdd a newly introduced source to our MSVC project (libardour)
John Emmas [Sat, 5 Sep 2015 17:05:10 +0000 (18:05 +0100)]
Add a newly introduced source to our MSVC project (libardour)

8 years agoAdd some newly introduced sources to our MSVC project (portaudio_backend)
John Emmas [Sat, 5 Sep 2015 17:04:29 +0000 (18:04 +0100)]
Add some newly introduced sources to our MSVC project (portaudio_backend)

8 years agoAs an experiment, use PBD::ScopedFileDescriptor in preference to 'ofstream' which...
John Emmas [Sat, 5 Sep 2015 17:02:32 +0000 (18:02 +0100)]
As an experiment, use PBD::ScopedFileDescriptor in preference to 'ofstream' which doesn't support UTF8 (on Windows at least)

This change should ensure that our "been_here_before" file ('.a3' or whatever) will get created successfully - even for user paths with non-English characters in them.

If this experiment works on all platforms, there are several other areas where we'll probably need something similar.

8 years agofix log-scale for automation lanes.
Robin Gareus [Sat, 5 Sep 2015 15:25:59 +0000 (17:25 +0200)]
fix log-scale for automation lanes.

8 years agodon't use gain-mapping (verbose-cursor) for plugin params.
Robin Gareus [Sat, 5 Sep 2015 15:13:04 +0000 (17:13 +0200)]
don't use gain-mapping (verbose-cursor) for plugin params.

8 years agoremove a float loop counter
Robin Gareus [Sat, 5 Sep 2015 13:47:00 +0000 (15:47 +0200)]
remove a float loop counter

8 years agodisplay session create/open failure errors.
Robin Gareus [Sat, 5 Sep 2015 13:45:59 +0000 (15:45 +0200)]
display session create/open failure errors.

8 years agoprovide details about session-creation failure.
Robin Gareus [Sat, 5 Sep 2015 11:16:26 +0000 (13:16 +0200)]
provide details about session-creation failure.

8 years agoadd missing include
Robin Gareus [Sat, 5 Sep 2015 09:36:16 +0000 (11:36 +0200)]
add missing include

8 years agounit-test: set instance name to pre-configure dummy engine
Robin Gareus [Fri, 4 Sep 2015 23:16:10 +0000 (01:16 +0200)]
unit-test: set instance name to pre-configure dummy engine

8 years agoDummy-Backend: special case unit-test
Robin Gareus [Fri, 4 Sep 2015 23:15:28 +0000 (01:15 +0200)]
Dummy-Backend: special case unit-test

8 years agofix bitwise enum parsing
Robin Gareus [Fri, 4 Sep 2015 22:00:16 +0000 (00:00 +0200)]
fix bitwise enum parsing

8 years agoprint insanity-check message only in debug builds
Robin Gareus [Fri, 4 Sep 2015 20:36:14 +0000 (22:36 +0200)]
print insanity-check message only in debug builds

8 years agoFix invalid error message when selecting directories/folders in Import dialog
Tim Mayberry [Fri, 4 Sep 2015 01:24:56 +0000 (11:24 +1000)]
Fix invalid error message when selecting directories/folders in Import dialog

On linux SndFileSource::get_soundfile_info was being called with an empty path
value when clicking on a folder in the left side part of the file browser which
resulted in an unnecessary error message.

On Windows every time a directory was selected in the Import dialog,
SndFileSource::get_soundfile_info would fail to open the directory in read only
mode and produce an error, but as we don't want to query/open soundfile info
for directories anyway just test and return if the path is a directory.

8 years agoRemove Apply button in Import dialog/Window and change OK to "Import"
Tim Mayberry [Thu, 3 Sep 2015 13:10:42 +0000 (23:10 +1000)]
Remove Apply button in Import dialog/Window and change OK to "Import"

Don't close the window when clicking on Import. Changing "OK" to "Import" makes
it clear what action is being taken by the button. I quite frequently imported
several files from different directories using "Apply" and then would click on
OK to finish using the dialog only to have the last import occur again
unintentionally.

Another option would of been to change "Apply" to "Import" and "OK" to "Import
and Close" and not have a Close button.

8 years agoChange Cancel button in Import Dialog to Close button
Tim Mayberry [Thu, 3 Sep 2015 12:32:53 +0000 (22:32 +1000)]
Change Cancel button in Import Dialog to Close button

This button closes the window, it doesn't actually cancel any importing that
has taken place and cancelling the import in progress is done by the Cancel
button in popup progress dialog

8 years agoIndentation and whitespace fixes in sfdb_ui.h
Tim Mayberry [Thu, 3 Sep 2015 12:13:43 +0000 (22:13 +1000)]
Indentation and whitespace fixes in sfdb_ui.h

8 years agoReview changes
Mathias Buhr [Thu, 3 Sep 2015 08:05:36 +0000 (10:05 +0200)]
Review changes

8 years agoFixes case where audiofiles used wrong peakfiles
Mathias Buhr [Sat, 29 Aug 2015 11:48:05 +0000 (13:48 +0200)]
Fixes case where audiofiles used wrong peakfiles

8 years agoUse const reference and renames variable
Mathias Buhr [Sat, 29 Aug 2015 11:45:43 +0000 (13:45 +0200)]
Use const reference and renames variable

8 years agoanother -Wabsolute-value fix
Robin Gareus [Wed, 2 Sep 2015 20:57:16 +0000 (22:57 +0200)]
another -Wabsolute-value fix

8 years agorework AudioUnit variable input port count.
Robin Gareus [Wed, 2 Sep 2015 19:05:09 +0000 (21:05 +0200)]
rework AudioUnit variable input port count.

8 years agoa couple of debug output statements to help diagnose a crash, part 2
Paul Davis [Wed, 2 Sep 2015 16:58:07 +0000 (12:58 -0400)]
a couple of debug output statements to help diagnose a crash, part 2

8 years agoa couple of debug output statements to help diagnose a crash
Paul Davis [Wed, 2 Sep 2015 16:24:37 +0000 (12:24 -0400)]
a couple of debug output statements to help diagnose a crash

8 years agofix typo in 434416c
Robin Gareus [Wed, 2 Sep 2015 14:03:44 +0000 (16:03 +0200)]
fix typo in 434416c

8 years agoshow compile-time cpu-arch in about - closes #6548
Robin Gareus [Wed, 2 Sep 2015 13:08:20 +0000 (15:08 +0200)]
show compile-time cpu-arch in about - closes #6548

8 years agowaveform, mutex for _current_image
Robin Gareus [Wed, 2 Sep 2015 12:28:26 +0000 (14:28 +0200)]
waveform, mutex for _current_image

may be used in render-thread while invalidate_image_cache() is called.
possible fix for #6478

8 years agoreplace "None" with DeviceNone in ALSA/Coreaudio
Robin Gareus [Wed, 2 Sep 2015 11:33:40 +0000 (13:33 +0200)]
replace "None" with DeviceNone in ALSA/Coreaudio

TODO: separate MidiSystemNone

8 years agoAdd debug output for errors when setting MMCSS thread characteristics
Tim Mayberry [Tue, 1 Sep 2015 02:37:24 +0000 (12:37 +1000)]
Add debug output for errors when setting MMCSS thread characteristics

8 years agoUse MMCSS utility functions in PortaudioBackend
Tim Mayberry [Tue, 1 Sep 2015 00:00:33 +0000 (10:00 +1000)]
Use MMCSS utility functions in PortaudioBackend

8 years agoAdd utility functions in PortaudioBackend for re/setting MMCSS thread characteristics
Tim Mayberry [Mon, 31 Aug 2015 23:57:17 +0000 (09:57 +1000)]
Add utility functions in PortaudioBackend for re/setting MMCSS thread characteristics

8 years agoPass input and output audio buffers into PortaudioBackend blocking process function
Tim Mayberry [Mon, 31 Aug 2015 11:56:04 +0000 (21:56 +1000)]
Pass input and output audio buffers into PortaudioBackend blocking process function

This makes it possible to reuse the method for callback based processing

8 years agoAdd audio_utils.h header in PortaudioBackend for de/interleaving audio data
Tim Mayberry [Mon, 31 Aug 2015 10:28:07 +0000 (20:28 +1000)]
Add audio_utils.h header in PortaudioBackend for de/interleaving audio data

8 years agoAdd two utility methods to abstract PortAudioBackend state
Tim Mayberry [Thu, 27 Aug 2015 08:52:08 +0000 (18:52 +1000)]
Add two utility methods to abstract PortAudioBackend state

These may change as support for callback API is added

8 years agoExtract MIDI input/output processing in PortAudioBackend into new methods
Tim Mayberry [Thu, 27 Aug 2015 08:07:25 +0000 (18:07 +1000)]
Extract MIDI input/output processing in PortAudioBackend into new methods

8 years agoAdd a DSPLoadCalculator class to the PortAudioBackend for DSP load calculation
Tim Mayberry [Thu, 27 Aug 2015 07:09:04 +0000 (17:09 +1000)]
Add a DSPLoadCalculator class to the PortAudioBackend for DSP load calculation

The class uses the same algorithm as in the coreaudio and alsa backends and
should probably go into libardour at some point

8 years agoFix include style of system header
Tim Mayberry [Thu, 27 Aug 2015 05:23:10 +0000 (15:23 +1000)]
Fix include style of system header

8 years agoExtract main processing section of PortAudioBackend into new method
Tim Mayberry [Thu, 27 Aug 2015 07:40:36 +0000 (17:40 +1000)]
Extract main processing section of PortAudioBackend into new method

8 years agoExtract freewheel processing in PortAudioBackend into new method
Tim Mayberry [Thu, 27 Aug 2015 01:41:00 +0000 (11:41 +1000)]
Extract freewheel processing in PortAudioBackend into new method

8 years agoDon't update unused dsp timer variable in freewheel process in PortaudioBackend
Tim Mayberry [Thu, 27 Aug 2015 01:24:17 +0000 (11:24 +1000)]
Don't update unused dsp timer variable in freewheel process in PortaudioBackend

8 years agoRefactor port change handling part of PA Backend process function into new method
Tim Mayberry [Wed, 26 Aug 2015 12:17:37 +0000 (22:17 +1000)]
Refactor port change handling part of PA Backend process function into new method

8 years agoRename variables in PortaudioBackend in preparation for using PA callback API
Tim Mayberry [Wed, 26 Aug 2015 11:42:05 +0000 (21:42 +1000)]
Rename variables in PortaudioBackend in preparation for using PA callback API

8 years agoFix copy and paste error in debug output message in WINMME Midi Output
Tim Mayberry [Fri, 28 Aug 2015 12:32:29 +0000 (22:32 +1000)]
Fix copy and paste error in debug output message in WINMME Midi Output

8 years agoSignal WinMME Midi output thread so the thread wakes up and terminates properly
Tim Mayberry [Fri, 28 Aug 2015 12:33:21 +0000 (22:33 +1000)]
Signal WinMME Midi output thread so the thread wakes up and terminates properly

8 years agoStop WINMME midi driver/devices when PortAudio backend is stopped
Tim Mayberry [Wed, 26 Aug 2015 11:39:21 +0000 (21:39 +1000)]
Stop WINMME midi driver/devices when PortAudio backend is stopped

8 years agoRefactor part of PortAudioBackend::_start/stop into new methods
Tim Mayberry [Wed, 26 Aug 2015 11:18:44 +0000 (21:18 +1000)]
Refactor part of PortAudioBackend::_start/stop into new methods

8 years agoDon't add "None" devices for ASIO driver in PortaudioBackend
Tim Mayberry [Wed, 26 Aug 2015 02:36:31 +0000 (12:36 +1000)]
Don't add "None" devices for ASIO driver in PortaudioBackend

8 years agoAdd utility method for choosing which device/s to display in Audio Setup dialog
Tim Mayberry [Tue, 25 Aug 2015 14:16:36 +0000 (00:16 +1000)]
Add utility method for choosing which device/s to display in Audio Setup dialog

8 years agoUse previously set buffer size in EngineDialog if possible
Tim Mayberry [Mon, 24 Aug 2015 23:47:50 +0000 (09:47 +1000)]
Use previously set buffer size in EngineDialog if possible

This is also to support refreshing of devices so that the buffer size isn't
reset.

8 years agoAdd "Refresh Devices" button in Audio Setup dialog for backends that support it
Tim Mayberry [Tue, 25 Aug 2015 12:57:44 +0000 (22:57 +1000)]
Add "Refresh Devices" button in Audio Setup dialog for backends that support it

This allows the portaudio library to be reinitialized to pick up new devices
and changes to ASIO buffer changes made externally.

8 years agoAdd some debugging output for state restoration in Audio Setup dialog
Tim Mayberry [Tue, 25 Aug 2015 12:56:27 +0000 (22:56 +1000)]
Add some debugging output for state restoration in Audio Setup dialog

8 years agoRemove Apply button from Audio Setup dialog now that there is a start/stop button
Tim Mayberry [Tue, 25 Aug 2015 11:55:08 +0000 (21:55 +1000)]
Remove Apply button from Audio Setup dialog now that there is a start/stop button

8 years agoChange "Stop" button into a Start/Stop button in Audio Setup dialog
Tim Mayberry [Tue, 25 Aug 2015 11:42:11 +0000 (21:42 +1000)]
Change "Stop" button into a Start/Stop button in Audio Setup dialog

8 years agoImplement new AudioBackend API for force updating devices in PortaudioBackend
Tim Mayberry [Tue, 25 Aug 2015 07:23:07 +0000 (17:23 +1000)]
Implement new AudioBackend API for force updating devices in PortaudioBackend

8 years agoAdd API to AudioBackend to request update to devices
Tim Mayberry [Tue, 25 Aug 2015 07:21:31 +0000 (17:21 +1000)]
Add API to AudioBackend to request update to devices

8 years agoUpdate devices in PortaudioBackend when setting the driver
Tim Mayberry [Mon, 24 Aug 2015 23:10:02 +0000 (09:10 +1000)]
Update devices in PortaudioBackend when setting the driver

Reinitialize portaudio to pick up changes in devices and ASIO buffer settings

8 years agoRename several methods in PortAudioIO class
Tim Mayberry [Mon, 24 Aug 2015 10:31:47 +0000 (20:31 +1000)]
Rename several methods in PortAudioIO class

return ErrorCode's and handle them where necessary

8 years agoRefactor part of PortAudioIO::pcm_setup into new method
Tim Mayberry [Mon, 24 Aug 2015 08:35:43 +0000 (18:35 +1000)]
Refactor part of PortAudioIO::pcm_setup into new method

8 years agoChange the functions related to initializing the Portaudio library
Tim Mayberry [Mon, 24 Aug 2015 02:57:34 +0000 (12:57 +1000)]
Change the functions related to initializing the Portaudio library

8 years agoRemove unused and cryptic _state member from PortAudioIO
Tim Mayberry [Mon, 24 Aug 2015 02:15:06 +0000 (12:15 +1000)]
Remove unused and cryptic _state member from PortAudioIO

8 years agoUse PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setup
Tim Mayberry [Mon, 24 Aug 2015 00:50:00 +0000 (10:50 +1000)]
Use PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setup

8 years agoDefine some error codes in PortAudioIO class
Tim Mayberry [Sun, 23 Aug 2015 23:06:26 +0000 (09:06 +1000)]
Define some error codes in PortAudioIO class

8 years agoRefactor parts of PortAudioIO class into new method
Tim Mayberry [Sun, 23 Aug 2015 10:36:23 +0000 (20:36 +1000)]
Refactor parts of PortAudioIO class into new method

8 years agoRefactor part of PortAudioIO::pcm_setup into 2 new methods
Tim Mayberry [Sun, 23 Aug 2015 08:38:01 +0000 (18:38 +1000)]
Refactor part of PortAudioIO::pcm_setup into 2 new methods

8 years agoMake two private methods in PortAudioIO const
Tim Mayberry [Sun, 23 Aug 2015 22:59:58 +0000 (08:59 +1000)]
Make two private methods in PortAudioIO const

8 years agoRefactor part of PortAudioIO::pcm_setup into new method
Tim Mayberry [Sun, 23 Aug 2015 07:37:14 +0000 (17:37 +1000)]
Refactor part of PortAudioIO::pcm_setup into new method

8 years agoAdd utility method to PortAudioIO class to remove goto from pcm_setup
Tim Mayberry [Sun, 23 Aug 2015 07:08:50 +0000 (17:08 +1000)]
Add utility method to PortAudioIO class to remove goto from pcm_setup

8 years agoRemove apple specific fixes from PortaudioBackend now that it is windows only
Tim Mayberry [Sun, 23 Aug 2015 04:40:35 +0000 (14:40 +1000)]
Remove apple specific fixes from PortaudioBackend now that it is windows only

8 years agoDon't query supported sample rates for ASIO devices in PortaudioBackend
Tim Mayberry [Sun, 23 Aug 2015 03:53:07 +0000 (13:53 +1000)]
Don't query supported sample rates for ASIO devices in PortaudioBackend

There has been reports this can take several minutes on some devices so just
return the default rates(and fail to open the device when a SR is specified
that isn't supported)

8 years agoUse two private utility functions in PortaudioIO class for default SR's and buffer...
Tim Mayberry [Sun, 23 Aug 2015 03:12:26 +0000 (13:12 +1000)]
Use two private utility functions in PortaudioIO class for default SR's and buffer sizes

8 years agoReindent and reformat switch statements in PortaudioBackend
Tim Mayberry [Sun, 23 Aug 2015 02:46:16 +0000 (12:46 +1000)]
Reindent and reformat switch statements in PortaudioBackend

This is more readable and consistent with the rest of the source files

8 years agoUse translated error messages in PortaudioBackend when SR or i/o channel counts don...
Tim Mayberry [Sun, 23 Aug 2015 02:36:34 +0000 (12:36 +1000)]
Use translated error messages in PortaudioBackend when SR or i/o channel 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)

8 years agoUse a translated error message in PortaudioBackend when unable to open audio device
Tim Mayberry [Sun, 23 Aug 2015 02:35:11 +0000 (12:35 +1000)]
Use a translated error message in PortaudioBackend when unable to open audio device

8 years agoConvert some error output to debug output in PortaudioBackend
Tim Mayberry [Sun, 23 Aug 2015 01:29:00 +0000 (11:29 +1000)]
Convert some error output to debug output in PortaudioBackend

8 years agoUse translated error message in PortaudioBackend with failing to aquire RT perms
Tim Mayberry [Sun, 23 Aug 2015 00:49:19 +0000 (10:49 +1000)]
Use translated error message in PortaudioBackend with failing to aquire RT perms

8 years agoUse debug output rather than sending errors for developer relevant port errors
Tim Mayberry [Sat, 22 Aug 2015 22:16:05 +0000 (08:16 +1000)]
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

8 years agoAdd debug bit for AudioBackends for port related debug output
Tim Mayberry [Sat, 22 Aug 2015 11:56:37 +0000 (21:56 +1000)]
Add debug bit for AudioBackends for port related debug output

8 years agoMove AudioBackend related debug bits into libardour
Tim Mayberry [Sat, 22 Aug 2015 11:43:12 +0000 (21:43 +1000)]
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.

8 years agoUse PortaudioIO::get_current_host_api_type utility function in PortaudioIO class
Tim Mayberry [Sat, 22 Aug 2015 11:21:41 +0000 (21:21 +1000)]
Use PortaudioIO::get_current_host_api_type utility function in PortaudioIO class

8 years agoAdd Utility function to get host API type in PortaudioIO class
Tim Mayberry [Sat, 22 Aug 2015 11:16:17 +0000 (21:16 +1000)]
Add Utility function to get host API type in PortaudioIO class

8 years agoAdd "None" devices to PortaudioBackend
Tim Mayberry [Sat, 22 Aug 2015 11:04:53 +0000 (21:04 +1000)]
Add "None" devices to PortaudioBackend

This allows for disabling either input or output, but not both

8 years agoUse AudioBackend standard device names for "Default" in PortaudioBackend
Tim Mayberry [Sat, 22 Aug 2015 10:22:01 +0000 (20:22 +1000)]
Use AudioBackend standard device names for "Default" in PortaudioBackend

8 years agoUse StandardDevices enum in PortaudioIO for default devices
Tim Mayberry [Fri, 21 Aug 2015 12:12:07 +0000 (22:12 +1000)]
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.

8 years agoAdd StandardDevice enum to portaudio_io.h header
Tim Mayberry [Thu, 20 Aug 2015 12:31:06 +0000 (22:31 +1000)]
Add StandardDevice enum to portaudio_io.h header

8 years agoUse translated error message in PortaudioBackend for audio device I/O error
Tim Mayberry [Sat, 22 Aug 2015 10:13:35 +0000 (20:13 +1000)]
Use translated error message in PortaudioBackend for audio device I/O error

8 years agoUse translated error message for failing to set thread priorities in PortaudioBackend
Tim Mayberry [Sat, 22 Aug 2015 10:11:55 +0000 (20:11 +1000)]
Use translated error message for failing to set thread priorities in PortaudioBackend

8 years agoUse AudioBackend::get_standard_device_name for "None" midi device in PortaudioBackend
Tim Mayberry [Sat, 22 Aug 2015 10:04:29 +0000 (20:04 +1000)]
Use AudioBackend::get_standard_device_name for "None" midi device in PortaudioBackend

8 years agoAdd enums to AudioBackend class for getting standard error and device name strings
Tim Mayberry [Thu, 20 Aug 2015 12:37:50 +0000 (22:37 +1000)]
Add enums to AudioBackend class for getting standard error and device name strings

These could also be used for return values but are initially intended for
shared translations of error messages between backends. Ideally IMO translation
should occur in the GUI(as there may be more than one) in response to these(or
similar) error codes but that would take agreement and a fair bit of
refactoring. As it is there are errors that occur in the backends that users
will want to know about this at least allows consistent translations to be
shared between backends.

8 years agoUse pretty name infrastructure to display MIDI device name
Tim Mayberry [Fri, 21 Aug 2015 12:03:43 +0000 (22:03 +1000)]
Use pretty name infrastructure to display MIDI device name

8 years agohandle waveform drawing thread shutdown
Robin Gareus [Tue, 1 Sep 2015 23:46:31 +0000 (01:46 +0200)]
handle waveform drawing thread shutdown

8 years agorefine "recent" column headers
Robin Gareus [Tue, 1 Sep 2015 21:17:38 +0000 (23:17 +0200)]
refine "recent" column headers

8 years agoDisplay column headers for "recent session"
Robin Gareus [Tue, 1 Sep 2015 19:05:00 +0000 (21:05 +0200)]
Display column headers for "recent session"

Avoid confusion regarding "32bit"

8 years agohandle GUIs of missing or disabled plugins
Robin Gareus [Tue, 1 Sep 2015 11:28:33 +0000 (13:28 +0200)]
handle GUIs of missing or disabled plugins