Unfortunately it seems that in zita-alsa-pcmi doesn't set state() correctly in
some cases. Setting an invalid SR doesn't display the correct error message,
first guess would be that set_hwpar is failing and state() is not
representative of the actual error.
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.
This will allow backends to return a more meaningful error message. Eventually
an error code could be returned by AudioEngine::start and the GUI can then use
AudioBackend::get_error_string to convert the error into a translated error
message directly, or it may be desirable to define its own error messages.
The reasons for not doing that right now is that this is a workable solution
with the least change required.
We can't check for Session::actively_recording() because punch out may have disabled that. Rather
than add logic to check if a flush is needed (which is not much different than the code that runs
as part of the flush to disk), just do a flush anyway.
This results in identical XML if the session did not change, allowing
to keep track of state-changes easily (e.g. session file in git).
Thanks to deva (again).
Remove the directory recursively including itself. The function
is used in two places only:
* LV2Plugin::add_state() -- no change, remove tmp. state
* Session::save_as() -- on error, remove target
In both cases removing the folder itself is correct.
This is part of a larger fix for #6450. Previously new route groups were
created with different default properties depending on which code created
the new group. The group tab method had all properties set and that is now
going to be the default.
It looks as if the default timer resolution for applications running under wine
is different than Windows so just test that the minimum timer resolution is
below a certain amount rather than checking before and after calling
timeBeginPeriod