Commit Graph

13145 Commits

Author SHA1 Message Date
Paul Licameli
8154dbed2e
Merge pull request #905 from Paul-Licameli/yet-more-module-preliminaries
Yet more module preliminaries
2021-05-19 06:30:52 -04:00
Paul Licameli
906bd94826 Linux build doesn't need environment variable to find the modules 2021-05-18 20:51:55 -04:00
Paul Licameli
5a362c308c Correct the placement of extension modules in the Windows build tree 2021-05-18 20:51:55 -04:00
Paul Licameli
7fd53e8778 Auto-enable list of regularly shipped modules (except script-pipe) 2021-05-18 20:51:55 -04:00
Paul Licameli
592518c157 modules/CMakeLists.txt iterates topologically sorted list of modules 2021-05-18 20:51:55 -04:00
Grzegorz Pruchniakowski
97c4a3835d Update pl.po from Transifex
Update pl.po from Transifex
2 fixes.

Greetings,
Gootector
2021-05-18 22:45:42 +01:00
Paul Licameli
bacf06944a Bug2792: Audacity fails to launch...
... bug was introduced at f1de843
2021-05-18 17:11:46 -04:00
Paul Licameli
b1f05e5747
Merge pull request #903 from Paul-Licameli/more-module-preliminaries
More module preliminaries
2021-05-18 09:24:05 -04:00
Paul Licameli
42bddca151 Fix transitive dependencies via interface libaries 2021-05-18 00:21:48 -04:00
Paul Licameli
7cf78c15dc non-Win, non-Debug builds: strip module file symbols to save space...
... This only strips the symbols that do not have external linkage
2021-05-18 00:16:44 -04:00
Paul Licameli
dfbf3d25c1 Support for our own libraries, distinct from modules 2021-05-18 00:12:44 -04:00
James Crook
ea04eef7e4 Fix Windows button style on Mac toolbar.
Removing audacity.h also removed #define USE_AQUA_THEME
2021-05-17 18:56:03 +01:00
Paul Licameli
77f8e63a5b
Merge pull request #895 from Paul-Licameli/settings-objects-and-example-uses
Settings objects and example uses
2021-05-17 08:46:54 -04:00
Paul Licameli
f1de843246 Use Settings for default sample rate and format...
... The first is an example of a Setting with a computed default value.

Also making a new file to hold them, separate from the GUI that changes them
in QualityPrefs; fewer things depend on QualityPrefs
2021-05-17 08:46:08 -04:00
Paul Licameli
8c04ed3990 Settings objects used in AudioIOBase...
... Giving many examples of use of Settings objects.  Many other rewrites like
this should be made to eliminate as many direct uses of gPrefs as we can.

Don't rely on long distance coincidences of literals for paths or defaults.

For each of several paths like /AudioIO/Host, all uses of that path are replaced
with use of a global Settings object defined in one place, in AudioIOBase.  The
object also gives the benefit of caching the last-read or written value.

Other users of those preferences must then include "AudioIOBase.h" to make the
dependency explicit at compile time.

It should be checked that no other mentions of those paths remain in the source,
and that there was no unintended change in default values.

This also inverts dependency of AudioIOBase on RecordingPrefs, which is GUI for
changing some of these settings.
2021-05-17 08:46:08 -04:00
Paul Licameli
5fef82dccf Define Setting classes, bundling config path with settings value...
... the intention being, that no string literal for a path, or its default
value, shall ever occur twice in the code, relying on long-distance coincidence
of literal values.  Instead, a named Setting object is constructed once, then
read and written.

For now, the Tie... functions in ShuttleGuiBase will take references to
implicitly constructed temporary Setting objects.  But all should later be
made static objects, and the constructors made explicit.
2021-05-17 08:46:08 -04:00
Paul Licameli
b6c7b744f8 Translate "No" into Russian 2021-05-17 12:52:07 +03:00
Thomas De Rocker
dad9823ed2 Update label-sounds.ny 2021-05-16 16:03:17 +01:00
Thomas De Rocker
29c7133dd9 Update nyquist-plug-in-installer.ny
Fix newlines from \n to ~%
2021-05-16 16:03:17 +01:00
Paul Licameli
ff07130ac4 Bug2763: Certain Scriptable commands should push Undo stack...
... Exhaustive examination convinces me that Set Labels and Set Envelope are
the only two needing this.  (The special problems of Open Project merited a
different bug number 2764.)
2021-05-16 07:08:44 -04:00
Paul Licameli
b5958ff453
Merge pull request #890 from Paul-Licameli/module-manager-changes
Module manager changes
2021-05-16 07:06:51 -04:00
Paul Licameli
dcdddcb7f2 ModuleManager::mLibs never becomes non-empty. Remove it. 2021-05-16 07:03:12 -04:00
Paul Licameli
bd6fb75886 moduleMain functions were never called but with nullptr; so simplify 2021-05-16 07:03:12 -04:00
Paul Licameli
6242be0a8e ModuleInterface.h needn't distinguish built-in from external usage...
... All is set up so that plug-in providers can be modules that register
their instance-creating function pointers directly with RegisterProvider; no
special symbol name needs to be exported.

That is, they now just need to export ModuleDispatch and GetVersionString, just
like other modules for other purposes.

Duplication of logic from ModuleManager::InitializeBuiltins() is removed.

No examples yet in the previous commits, but it does work in my misc-modules
branch.
2021-05-16 07:03:12 -04:00
Paul Licameli
a4c3840861 Initialize ModuleManager before PluginManager...
... So that the plugin providers might themselves become modules, and so that
putting built-in commands and effects into modules will work
2021-05-16 07:03:12 -04:00
Paul Licameli
861470dd77 Complementary un-registration of providers; change function name 2021-05-16 07:03:12 -04:00
Paul Licameli
64bbc31c54 Remove macro making extern declaration of RegisterBuiltinModule...
... Forcing other places that use RegisterBuiltinModule to be more explicit
about their link dependencies on ModuleManager, with a new #include directive.

Does this make scripts/graph.pl show a new dependency cycle?  Happily no.  But
now we know.
2021-05-16 07:03:12 -04:00
Paul Licameli
b92f2579b7 ModuleManager does not depend on ModulePrefs, which contains GUI code 2021-05-16 07:03:12 -04:00
Paul Licameli
f5be1de058 Copy ModulePrefs.* into new files ModuleSettings.* which aren't built 2021-05-16 07:03:12 -04:00
Paul Licameli
e85ddf4a6d Remove track panel hijack hooks from ModuleManager...
... It ended up not used, and long ago superseded by other TrackPanel
reorganization.

Such things as that (and many more) will be implemented with different
idioms (registries in various higher level code) without requiring changes in
this low level protocol for loading modules.
2021-05-16 07:03:12 -04:00
Paul Licameli
bbda68c079 ModuleManager doesn't specially start up mod-script-pipe...
... The standard module dispatch can do that.
2021-05-16 07:03:12 -04:00
Paul Licameli
c7834257d8 Crude way to let modules depend on others: multiple load passes...
... Repeatedly pass through the list of modules that need to be opened, so
long as the list is not empty and at least one module loaded in the last pass.

This discovers dependencies of modules on other modules, avoiding the need to
describe the dependencies and make one pass in some topologically sorted order.

Which would be smarter, but would require much other work.
2021-05-16 07:03:12 -04:00
Paul Licameli
059f96173b Some factoring of ModuleManager::Initialize 2021-05-16 07:03:12 -04:00
Paul Licameli
332ed4ab61 Separate detection of module load failure from error messaging 2021-05-16 07:03:12 -04:00
Paul Licameli
e7f8f36700 A macro for boilerplate to generate required module entry points 2021-05-16 07:03:12 -04:00
Paul Licameli
fd94b66483 Don't duplicate defs of DLL_IMPORT, DLL_API, ModuleDispatchTypes 2021-05-16 07:03:11 -04:00
Paul Licameli
dcd8bca896 Nonlazy resolution of symbols at load time for modules...
... Forcing appropriate failure to load modules with unsatisfied symbols on all
platforms.
2021-05-16 07:03:11 -04:00
Paul Licameli
e52115630a Remove argument of ModuleManager::Initialize() unused since a6d0b3f 2021-05-16 07:03:11 -04:00
Leland Lucius
e1391b9884 Allow modules to be loaded when testing Linux artifacts
This also cleans up previous "libs" location
2021-05-15 18:45:27 -05:00
James Crook
d0ff48f3bd Bug 2754 - Change Tempo & Pitch and Sliding Stretch with selected audio in negative time crash Audacity on windows (error on Mac) 2021-05-15 11:36:53 +01:00
Paul Licameli
cf666c9bfc
Merge pull request #812 from Paul-Licameli/separate-PlaybackSchedule
Separate playback schedule
2021-05-14 19:10:29 -04:00
Paul Licameli
7302fc584f Move RecordingSchedule, PlaybackSchedule to new files 2021-05-14 16:26:29 -04:00
Paul Licameli
a12ec0d11b Duplicate AudioIOBase into PlaybackSchedule...
... please verify empty file diffs; this simplifies review of the next commit
2021-05-14 16:25:53 -04:00
Paul Licameli
9a66255013 Move AudioIOBase::mPlaybackSchedule up into AudioIoCallback 2021-05-14 16:25:41 -04:00
Paul Licameli
d92a68f076 ViewInfo does not depend on AudioIOBase...
... 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.
2021-05-14 16:25:14 -04:00
Paul Licameli
aa8e4eef06 Windows builds need a complete type for wxWeakRef parameter...
... Guarantee that in header files that declare such wxWeakRefs
2021-05-14 16:24:59 -04:00
Paul Licameli
7771760b5e Add #include needed to build on Fedora 34, recommended by Be-ing 2021-05-14 16:22:57 -04:00
Paul Licameli
a32b243480
Merge pull request #894 from Paul-Licameli/Bug2778
Bug 2778 - In German in the Erzeugen menu (Generator menu) "Silence..." is untranslated
2021-05-14 16:14:17 -04:00
Paul Licameli
d7f643768c Bugs 2778, 2339, Issue 887: Translation of some effect names...
... 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.
2021-05-14 14:27:23 -04:00
Paul Licameli
cf948ece52 Eliminate duplications of string literal "Nyquist Prompt" 2021-05-14 13:08:02 -04:00