Paul Licameli
37d730edfe
Break dependency cycle of Effect and EffectManager
2020-03-08 16:21:28 -04:00
Paul Licameli
1c84932dfa
EffectUIClientInterface::PopulateUI takes ShuttleGui &
2020-01-23 19:06:23 -05:00
Paul Licameli
eff5b2ef92
Make Effect::PopulateUI final (no special case for Equalization)
2020-01-23 19:06:23 -05:00
Paul Licameli
46e99bb038
Move EffectPresetsDialog out of Effect.cpp
2020-01-23 15:23:46 -05:00
Paul Licameli
808d4accfd
Remove some friends from Effect
2020-01-23 15:23:46 -05:00
Paul Licameli
e5625bfb89
Move EffectDialog out of Effect.cpp
2020-01-23 15:23:43 -05:00
Paul Licameli
66fd95f3d6
Rewrite the path through NyquistEffect, in the case that...
...
... you use the prompt, and you enter a complete script with control comments
that are reinterpreted to put up a second dialog.
This simplifies Effect::Delegate() and avoids mutual recursion of ShowInterface
with DoEffect.
2020-01-08 16:48:37 -05:00
Paul Licameli
e8c8db8b33
Parent and dialog factory arguments of Effect::DoEffect are optional
2020-01-08 16:47:21 -05:00
Paul Licameli
6a0aed3884
Eliminate uses of GetActiveProject in src/effects
2020-01-06 14:14:21 -05:00
Paul Licameli
bb26b2f2c4
Require a ProjectWindow as ancestor of effect dialog...
...
... by passing parent as reference, not pointer, and testing in the dialog
factory function.
This is important so that we know the lifetime of an effect dialog, even when
it is non-modal, is bounded by the lifetime of the associated project.
2020-01-06 11:30:47 -05:00
Paul Licameli
91515520bc
Remove the nullary override of Effect::Preview
2020-01-05 19:59:30 -05:00
Paul Licameli
23a0206d2a
Remove CreateUI; pass dialog factory to effect client instead
2020-01-05 16:11:55 -05:00
Paul Licameli
738c5c5e90
Remove Effect::PromptUser...
...
... it was only a thin wrapper of ShowInterface when not overridden, not
clearly serving a distinct purpose.
2020-01-05 16:11:55 -05:00
Paul Licameli
fb678c0eb8
Remove EffectHostInterface::Apply so Effect doesn't use EffectManager
2020-01-05 16:11:54 -05:00
Paul Licameli
8c4d8db133
Move classes EffectUIHost and EffectPanel to EffectUI.cpp
2020-01-05 16:11:54 -05:00
Paul Licameli
0704f6919a
EffectPresetsDialog::SetPrefix takes TranslatableString
2019-12-29 00:01:57 -05:00
Paul Licameli
d8c2610d88
TranslatableString in AudacityCommand::MessageBox, Effect::MessageBox
2019-12-20 21:32:47 -05:00
Paul Licameli
618fee21ec
TranslatableString for ComponentInterface::GetDescription()
2019-12-16 14:21:57 -05:00
Paul Licameli
53ee9c9800
TranslatableString for titles, names, labels of wxDialogWrappers...
...
... Found one missed translation in CommandTargets.cpp
2019-12-16 10:58:05 -05:00
Paul Licameli
9a609fe1fe
TranslatableString in ProgressDialog
2019-12-14 01:48:15 -05:00
Paul Licameli
33f3d4b82d
Heavyweight version of SelectedRegion stored in ViewInfo emits events
2019-07-17 12:43:39 -04:00
Paul Licameli
cd9e4e3987
RealtimeEffectState into RealtimeEffectManager...
...
... which doesn't need Effect.h then.
Freeing Effect and RealtimeEffectManager from cycles, leaving 25 in the big
s.c.c.
2019-06-24 01:04:03 -04:00
Paul Licameli
5caeaf520b
RealtimeEffectState needs only EffectClientInterface, not Effect
2019-06-24 00:49:14 -04:00
Paul Licameli
867e6a8d9e
Move fields out of Effect, into new class RealtimeEffectState...
...
... and simplify, using a std::atomic instead of a critical section.
(But did this before, and does this now, correctly synchronize across threads?
I defer that question.)
2019-06-24 00:49:14 -04:00
Paul Licameli
0f62046313
Define EffectClientInterface::GetBlockSize()
2019-06-24 00:49:14 -04:00
Paul Licameli
dee27e052f
Free Nyquist.cpp from cycles...
...
... Very easily, just by demoting two macros from Nyquist.h to Effect.h.
The graph improvement is worth this bit of preprocessor namespace pollution.
2019-06-23 23:20:03 -04:00
Paul Licameli
87a9f34c22
ScreenshotCommand uses hooks in AudacityCommand and Effect dialogs...
...
... so that they don't have a static linkage dependency on it, and that frees
it from dependency cycles, to a high level
2019-05-18 20:31:17 -04:00
Paul Licameli
548192fcf3
Remove redundant #include-s from .h files...
...
Redundant, because transitively implied. But don't do this for inclusions of
Audacity.h or Experimental.h.
2019-05-16 14:58:34 -04:00
Paul Licameli
56f51d8176
Revert "Remove redundant #include-s from .h files..."
...
This reverts commit b7fe62d170
.
2019-05-16 14:33:55 -04:00
Paul Licameli
b7fe62d170
Remove redundant #include-s from .h files...
...
Redundant, because transitively implied. But don't do this for inclusions of
Audacity.h or Experimental.h.
2019-05-16 14:15:05 -04:00
Paul Licameli
fe1be2b6a8
Revert "2096: Windows & Mac high quality Change Pitch/Tempo preview"
...
This reverts commit fe22b2ae22
.
2019-04-20 12:37:22 -04:00
David Bailes
fe22b2ae22
2096: Windows & Mac high quality Change Pitch/Tempo preview
...
Problem:
Preview plays the original, and removes the selection.
This appears to have been caused by the commit: 0aad028
Fix: revert that commit. Note that in the #ifdef EXPERIMENTAL_SPECTRAL_EDITING code has not been reinstated.
I have not looked at why the commit caused the problem, just reverted it.
2019-04-17 10:48:56 +01:00
Paul Licameli
0b733eed3f
Remove (or comment) ProgressDialog.h in headers...
...
... For ImportPlugin, use unique_ptr not Maybe to hold it, and take constructors
out-of-line.
2019-04-04 09:47:57 -04:00
Paul Licameli
c982cf6a41
Remove wx/intl.h, wx/brush.h, wx/bitmap.h from headers
2019-03-30 11:45:20 -04:00
Paul Licameli
4e9c3cfb5f
Remove wx/{dc,tokenzr,tglbtn,statusbr,simplebook}.h from *.h
2019-03-29 06:29:35 -04:00
Paul Licameli
70e88782fe
Remove wx/{grid,font,ffile,colour,button,bmpbuttn}.h from headers
2019-03-28 12:27:10 -04:00
Paul Licameli
c3aad2e026
Remove wx/event.h from headers
2019-03-27 04:36:51 -04:00
Paul Licameli
40b4361732
Remove wx/arrstr.h from headers
2019-03-26 12:41:44 -04:00
Paul Licameli
1d0247607a
Remove wx/string.h from headers
2019-03-26 11:33:55 -04:00
Paul Licameli
906e55f047
Experimental.h in all .h or .cpp files that directly use EXPERIMENTALs...
...
... except Audacity.h; and in no others.
Do so even if Experimental.h gets multiply included, as in both the .h and
.cpp files.
This makes it easier to do a text scan to be sure there are no unintended quiet
changes of meaning because of omission of Experimental.h when the flag is
an enabled one.
Also move inclusions of Experimental.h earlier.
Also don't require Experimental.h to be preceded by Audacity.h to define
EXPERIMENTAL_MIDI_OUT correctly.
2019-03-17 22:54:00 -04:00
Paul Licameli
173a300427
Include nothing before Audacity.h, as comments say we should...
...
... and remove some duplicated inclusions
2019-03-17 21:41:39 -04:00
Paul Licameli
3ff61f3e10
Remove Shuttle.h from other headers
2019-03-17 15:03:05 -04:00
Paul Licameli
a0aa69a248
All tracks allocated with make_shared, no more make_unique...
...
... so that we can use Track::SharedPointer without undefined behavior even on
tracks that don't yet belong to any TrackList.
Also fix the return type of function template TrackList::Add and remove some
casts.
2019-03-16 13:11:33 -04:00
Paul Licameli
df6a2cf479
Use type aliases RegistryPath, RegistryPaths...
...
... for wxString and vector thereof, holding strings that key into wxConfigBase;
to be replaced later with different types
2019-03-15 15:18:11 -04:00
Paul Licameli
dcd211affa
Use type aliases PluginPath, PluginPaths...
...
... for wxString and vector thereof, when holding plugin paths (which may or
may not be interpreted as file paths, depending on the module); to be replaced
later with different types
2019-03-15 15:18:11 -04:00
Paul Licameli
135c2a71ce
Replace "" and wxEmptyString with {} in default argument values
2019-03-15 15:18:11 -04:00
Paul Licameli
dfeb7e18aa
Type aliases for some uses of ComponentInterfaceSymbol...
...
... to be replaced later with distinct types
Also changing FamilyId => Family in function names
Also NumericFormatId => NumericFormatSymbol
2019-03-14 17:26:20 -04:00
James Crook
466e9c179e
Create ComponentInterface
...
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
2018-11-02 17:04:43 +00:00
Paul Licameli
bb3aa00f50
Effect::CopyInputTracks was only called with two values...
...
So now it simply takes a bool.
2018-10-01 11:06:31 -04:00
Paul Licameli
2e11844f6a
Effect::inputTracks() now gives only const access
2018-10-01 10:59:48 -04:00