When adding ffmpeg 5.0 compatibility, the dialog was
dramatically simplified. This re-introduces some options
for audio-quality and also saves/restores settings.
This is in preparation for a pure-virtual base class for
PluginInsert to expose `DropReferences` in the virtual base.
```
class PlugInsertBase : virtual public PBD::Destructible
class PluginInsert : public Processor, public PlugInsertBase
class Processor : public SessionObject
class SessionObject : public PBD::StatefulDestructible
```
This fixes a crash on windows, close(-1) or closing an
already closed FD will abort the application
(Save-As can trigger the issue in done_with_peakfile_writes).
Note that g_open() returns -1 if an error occurred. However
other negative number may still be a valid FD.
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
Previously, when running timefx on multiple regions on
the same track, undo commands accumulated for each region
in the playlist. Resulting in duplicate actions on undo/redo.
```
<UndoTransaction tv-sec="1649607270" tv-usec="646684" name="pitch shift">
<StatefulDiffCommand obj-id="1690" type-name="ARDOUR::AudioPlaylist">
<Changes>
<Regions>
<Add id="4046"/>
<Remove id="2284"/>
</Regions>
</Changes>
</StatefulDiffCommand>
<StatefulDiffCommand obj-id="1690" type-name="ARDOUR::AudioPlaylist">
<Changes>
<Regions>
<Add id="4046"/>
<Add id="4057"/>
<Remove id="2284"/>
<Remove id="2388"/>
</Regions>
</Changes>
</StatefulDiffCommand>
...
```
Fix compilation error seen with gcc 12.0.1 on Fedora 36:
In file included from ../libs/ardour/ardour/variant.h:30,
from ../libs/ardour/ardour/parameter_descriptor.h:25,
from ../libs/ardour/ardour/automation_control.h:39,
from ../libs/ardour/ardour/amp.h:30,
from ../libs/ardour/session.cc:61:
../libs/pbd/pbd/compose.h: In instantiation of ‘StringPrivate::Composition& StringPrivate::Composition::arg(const T&) [with T = ARDOUR::PresentationInfo]’:
../libs/pbd/pbd/compose.h:277:31: required from ‘std::string string_compose(const std::string&, const T1&, const T2&, const T3&, const T4&) [with T1 = std::__cxx11::basic_string<char>; T2 = unsigned int; T3 = std::__cxx11::basic_string<char>; T4 = ARDOUR::PresentationInfo; std::string = std::__cxx11::basic_string<char>]’
../libs/ardour/session.cc:3268:4: required from here
../libs/pbd/pbd/compose.h:122:20: error: no match for ‘operator<<’ (operand types are ‘std::ostringstream’ {aka ‘std::__cxx11::basic_ostringstream<char>’} and ‘const ARDOUR::PresentationInfo’)
122 | os << obj;
| ~~~^~~~~~
This might also fix a similar problem with clang, and
https://github.com/Ardour/ardour/commit/5bbfac23808 can be backed out.
gtk2_ardour/wscript:15:1 redefinition of unused 'TaskGen' from line 3
wscript:102:9 dictionary key 'sse' repeated with different values
wscript:104:9 dictionary key 'sse' repeated with different values
Most wscripts use
#!/usr/bin/env python
Use that consistently.
The wscripts are not executed directly and do not need the shebang path,
but it might guide editors and other tools to recognize the files as
being Python-ish.
The code was calling the Gtk::Widget::can_focus() getter as on odd
statement without side effects.
It seems like it meant to call set_can_focus, and thus prepare for
actually grabbing the focus in the next line.