... ViewInfo should only be concerned with screen geometry.
(And so it won't depend on AudioIO (even higher level) after stream time moves
there.)
PlaybackScroller receives the timer event directly (not from ViewInfo) and
caches playback position instead. Then, as before, it propagates the event
to PlayIndicatorOverlay.
... Those for which the internal name and the user-visible English names differ,
or that needed disambiguating context for i18n, were always shown as English
in the menus.
Silence and Filter Curve were the only two examples. There are others.
... What they had in common was the use of the XC macro to specify a
disambiguating context string. Example: "Interface" page of preferences.
TranslatableString had not implemented this
correctly except in the less usual case of plurals.
... in many places where the function call will later need to be between
modules (or libraries, or the executable) and the annotation will be a necessity
to keep the linkage working on Windows.
That's all that this sweeping commit does.
... Which will be needed for various reasons for Windows builds of certain
modularizations, which will otherwise complain that they can no longer
generate them as inlines.
In one case, deleted copies require explicitly defaulted moves, but they will
work as generated inline.
... not assuming that it is invoked from cmake-proxies/CMakeLists.txt
This will allow modules to use lib-src libraries, and even for a module to be
the sole user of one of them.
So addlib lines may be moved out of cmake-proxies/CMakeLists.txt, when no
longer needed to build the reduced executable without the modules.
... So mod-foo defines FOO_API properly on the command line, for use in its
public header files; on Windows, appropriately expanding one way when compiling
the library, another way when compiling other code that uses it, so that all
will link correctly.
... Because it depends on having visited various lib-src directories, which I
want to delay until visiting various of the modules, and I also want to visit
src before the modules, because that's bottom-up dependency ordering.
So the step should not be done in src.
This update contains to important features:
1. Improved performance of WAL mode locking primitives in cases where there are hundreds of connections all accessing the same database file at once
2. In WAL mode, if a writer crashes and leaves the shm file in an inconsistent state, subsequent transactions are now able to recover the shm file even if there are active read transactions. Before this enhancement, shm file recovery that scenario would result in an SQLITE_PROTOCOL error.