1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 09:01:12 +01:00
Commit Graph

1711 Commits

Author SHA1 Message Date
SteveDaulton
3e94dfdca0 bug 2300: Limit number of clips in *track* clips property
Nyquist has a limit (less than 2000) for the number of arguments
which may be exceeded when creating the *track* clips property.
In the event that there are more than 1000 clips in a track,
Audacity will now only add the first 1000 clips to the *track* property
and add NIL as the 1001th.
2020-02-02 21:24:44 +00:00
Paul Licameli
4d43967add Restore commit c1d129ec98 2020-01-31 23:51:12 -05:00
Paul Licameli
2c25a37994 Revert to a465ce0046 2020-01-31 22:34:25 -05:00
Paul Licameli
d9d3f95570 Several nonmodal top level window tools register their menu items...
... removing link dependencies on them from src/menus, so they are now suitable
for moving out into modules.

They are:
Mixer Board
Karaoke (also called Lyrics)
History
Contrast
Plot Spectrum

Their header files are now no longer included anywhere but in their own
implementation files!
2020-01-31 21:12:36 -05:00
Leland Lucius
6da68f2035 Remove obsolete config*.h files
These are ancient and "configunix.h" was being pulled in
via Types.h.  Nothing major, but they were generated for
a 32-bit system and "may" cause problems when used on
64-bit systems.

(That's unlikely though since they haven't all this time.)
2020-01-31 09:29:15 -06:00
Paul Licameli
9093364b8c Fix other problems since commit f6e5696...
... Problem with static initialization order of ReservedCommandFlags, caused
wrong enablement of menu items (at least on Mac), such as Plot Spectrum or
Contrast enabled when there was no selection
2020-01-28 17:49:07 -05:00
Leland Lucius
d28009c93e Remove unneeded include 2020-01-24 22:25:52 -06:00
Max Maisel
17ef5b1c75 Fix two bugs in loudness effect (#410)
* Calculate loudness for short or silent selections as well.

In case of selections shorter than 400ms (one momentary loudness block),
take what we have got and divide only be the actual length.

Abort loudness normalization silently if the selected audio is all
silent.

* Fix loudness effect bug when selection includes a gap.

If the selected audio in a track contained a gap between two clips,
an incorrect amount of samples was processed.
2020-01-24 18:04:19 +00:00
Paul Licameli
921d7f28ef Correct a naked new 2020-01-24 10:25:51 -05:00
Paul Licameli
b5b9ab6ecd EffectUIHost::BuildButtonBar uses ShuttleGui 2020-01-23 19:06:23 -05:00
Paul Licameli
c28c170cc0 EffectUIHost::Initialize uses ShuttleGui 2020-01-23 19:06:23 -05:00
Paul Licameli
eb3e5d8f6f Factor EffectUIHost::Initialize 2020-01-23 19:06:23 -05: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
SteveDaulton
9a0ee24c5c bug 2290: Add error message
See https://bugzilla.audacityteam.org/show_bug.cgi?id=2290#c9
2020-01-23 12:59:53 +00:00
SteveDaulton
32a60103b4 bug 2290: Bail if no DTMF sequence 2020-01-20 21:29:50 +00:00
Paul Licameli
bbdc27b462 LoadEffects.cpp doesn't depend on individual effect classes... 2020-01-19 19:16:51 -05:00
Paul Licameli
69dab8b552 Each built-in effect class registers itself with BuiltinEffectsModule 2020-01-19 19:16:51 -05:00
Paul Licameli
4579835911 Eliminate one of the ## macro hacks in LoadEffects 2020-01-19 19:16:51 -05:00
Paul Licameli
83be5b3045 All loaded built-in effects have nullary constructors 2020-01-19 19:16:50 -05:00
Paul Licameli
f2ed21f9e5 Fix some comments 2020-01-19 13:23:30 -05:00
Paul Licameli
2570b56176 Rename Maybe and its members more like std::optional of C++17 2020-01-19 11:38:12 -05:00
Paul Licameli
d2ccde77e7 Remove another exhaustive switch on view sub-types, in Nyquist.cpp 2020-01-18 20:28:53 -05:00
Paul Licameli
7cff170cf7 Sub-view objects report their complete type, not just an enum value 2020-01-18 20:28:53 -05:00
Paul Licameli
d9ddb41410 Un-fix smart single quotes in Nyquist prompt too; see commit 45a0ce1 2020-01-18 19:34:40 -05:00
Paul Licameli
73fd60543d Amending commit 1176b61 to avoid compatiblity break in macros using EQ 2020-01-18 11:14:41 -05:00
Paul Licameli
705d4a26a5 Don't supply "Waveform (dB)" to the 'VIEW property in Nyquist...
... consistently with the drop-down menu, and now the Tracks Preferences too.

Only distinguish Waveform and Spectrogram and nil.

See also commit e3d9fd9.
2020-01-17 22:48:23 -05:00
James Crook
1176b61953 Wording changes, per wiki:
https://wiki.audacityteam.org/wiki/Wording
2020-01-10 17:02:31 +00: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
4385326e9d Fewer calls to Effect::FindProject when only rate is needed 2020-01-07 18:38:56 -05:00
SteveDaulton
8b1ecf03a4 Fix bug 2280 2020-01-07 16:47:50 +00:00
Paul Licameli
6a0aed3884 Eliminate uses of GetActiveProject in src/effects 2020-01-06 14:14:21 -05:00
Paul Licameli
a93c4472f5 TrackList has back-pointer to project...
... and Track::GetOwner() is publicized, so that now you can find the
the AudacityProject, if any, that owns a given Track; this will help eliminate
some uses of GetActiveProject
2020-01-06 14:14:21 -05:00
Paul Licameli
c7984a2c83 Fix mistaken usage of ProjectSettings 2020-01-06 13:48:51 -05:00
Paul Licameli
ed9871d6b5 Eliminate GetActiveProject in EffectUI.cpp...
... This changes visible behavior.

If a realtime effect was open (say, AUGraphicEQ on Mac), and there were multiple
projects, then the window was associated with one of the projects.

But the "Apply" button could apply the effect to the active project, even if
that was not the associated one.  But the associated project was queried for
the existence of a selection.

Now, EffectUIHost::OnApply consistently examines and changes only the associated
project, even if it is not active.

You have to close the window and reopen it with the other project if you really
want to change the other.

You can't have two realtime effects open at once, even if for different
projects.  To overcome that limitation, we would have to make
RealtimeEffectsManager store state per-project, not globally.
2020-01-06 11:30:48 -05:00
Paul Licameli
723c5256c0 Don't call GetActiveProject when constructing EffectUIHost...
... relying on guarantees in the previous commit
2020-01-06 11:30:47 -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
Leland Lucius
2803bc30a6 Fix Windows build
2>c:\users\yam\documents\aud\audacity\src\effects\effectui.h(215): warning C4099: 'CommandContext': type name first seen using 'class' now seen using 'struct'

...

2>BatchCommands.obj : error LNK2019: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z) referenced in function "public: bool __thiscall MacroCommands::ApplyEffectCommand(class wxString const &,class TranslatableString const &,class TaggedIdentifier<struct CommandIdTag,0> const &,class wxString const &,class CommandContext const &)" (?ApplyEffectCommand@MacroCommands@@QAE_NABVwxString@@ABVTranslatableString@@ABV?$TaggedIdentifier@UCommandIdTag@@$0A@@@0ABVCommandContext@@@Z)

2>PluginMenus.obj : error LNK2001: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z)

2>TrackMenus.obj : error LNK2001: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z)
2>C:\Users\Yam\Documents\aud\audacity\win\Debug\Audacity.exe : fatal error LNK1120: 1 unresolved externals
2020-01-06 00:00:14 -06:00
Paul Licameli
91515520bc Remove the nullary override of Effect::Preview 2020-01-05 19:59:30 -05:00
Paul Licameli
8bbc22e47a Cut and paste; EffectManager doesn't need EffectUI; cycle of 3 broken! 2020-01-05 16:11:55 -05:00
Paul Licameli
91c45dd32a Move static EffectManager::DoEffect into new namespace 2020-01-05 16:11:55 -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
91536d734f Rename EffectRack.* as EffectUI 2020-01-05 16:11:54 -05:00