... Specifically there are "overlays" for play indicator, cursor, scrubbing
speed text, and quick play indicator, which now use a common abstract class
interface.
Also moved details of handling timer events elsewhere.
Made a class Scrubber with most of the details. Still there are several places
where TrackPanel must check for scrubbing and call to Scrubber. Too many
places.
Discussion on -quality pointed out that (1) in alphas the '!' is emphasising the year, 2016, rather than the 'Welcome', that (2) in release the '!' can easily be misread as a 1 and so part of the version number (3) the topic is "How to Get Help", rather than the welcome (4) too many !!!!'s are OMG!!! culture (5) we already have an "!" in the title.
Access BlockFile::mFileName without copying, with proper multithreading cautions
Redefine ODLocker as movable, and it may try-lock only.
Avoid some wxString copies
fix bugs in previous
... This includes failure paths in the initialization if import. Those
resources would have been reclaimed before program exit, but not as soon as
they should have been.
... This also includes certain leaks that would happen every time a file is
successfully imported or exported. We never used avformat_free_context or
av_dict_free as we should have!
... There were also AVPacket objects repeatedly reinitialized without proper
cleanups in between. That might have leaked memory too.
... and certain other changes too. It is involved in code that makes sure
the save of a file with incomplete on-demand loads properly waits for them
to finish. It should not really affect production.
The experimentals are EXPERIMENTAL_OD_FLAC and EXPERIMENTAL_OD_FFMPEG.
In std::unique_ptr<wxSizer> CreateStdButtonSizer(wxWindow *parent, long buttons, wxWindow *extra)
changed access key of preview button from v to P, so that it's consistent Preview buttons created elsewhere.