1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-24 16:20:05 +02:00

53 Commits

Author SHA1 Message Date
Paul Licameli
b200819f75 Use IdentInterfaceSymbol to identify commands and effects 2018-04-11 11:51:10 -04:00
David Bailes
f027708fe1 Fix an issue caused by the accessibility changes in wxWidgets 3.1.1
The main change in wx accessibility is this:
7dab555f71 (diff-04f5191d86f95b1c4d5d9c979da65878)

However wxWindowAccessible has not been updated to take into account of that change. In particular wxWindowAccessible::GetParent() was always wrong, but it was consistent with the rest of the framework. Now it's wrong and inconsistent. This function should return an object with role window, and which has the same name.

The fix is to introduce class WindowAccessible, which is effectively our own version of wxWindowAccessible. This class does not override GetParent(), and so just relies on a standard accessible object to to the right thing in wxIAccessible::get_accParent() (which is does). This class also allows us to have our own version of GetName(), which allows us to set the accessibility names of buttons.

These changes will break the accessibility of Audacity if it is built with wxWidgets 3.0.X. If this is a problem, then there could be some #if stuff in WindowAccessible.h to turn the WindowAccessible class into one which simply inherits from wxWindowAccessible, and doesn't override anything.
2018-04-03 14:57:59 +01:00
Paul Licameli
595cf05d42 More uses if LocalizedStrings 2018-03-27 07:51:44 -04:00
James Crook
0ad533a740 Automation -> Scripting. 2018-02-24 14:20:30 -05:00
James Crook
1c988b4e3a Automation: AudacityCommand
This is a squash of 50 commits.

This merges the capabilities of BatchCommands and Effects using a new
AudacityCommand class.  AudacityCommand provides one function to specify the
parameters, and then we leverage that one function in automation, whether by chains,
mod-script-pipe or (future) Nyquist.

- Now have AudacityCommand which is using the same mechanism as Effect
- Has configurable parameters
- Has data-entry GUI (built using shuttle GUI)
- Registers with PluginManager.
- Menu commands now provided in chains, and to python batch.
   - Tested with Zoom Toggle.

- ShuttleParams now can set, get, set defaults, validate and specify
the parameters.
- Bugfix: Don't overwrite values with defaults first time out.
- Add DefineParams function for all built-in effects.
- Extend CommandContext to carry output channels for results.

We abuse EffectsManager.  It handles both Effects and
AudacityCommands now.  In time an Effect should become a special case of
AudacityCommand and we'll split and rename the EffectManager class.

- Don't use 'default' as a parameter name.
- Massive renaming for CommandDefinitionInterface
- EffectIdentInterface becomes EffectDefinitionInterface
- EffectAutomationParameters becomes CommandAutomationParameters
- PluginType is now a bit field.

This way we can search for related types at the same time.

- Most old batch commands made into AudacityCommands.
The ones that weren't are for a reason.  They are used by mod-script-pipe
to carry commands and responses across from a non-GUI thread to the GUI
thread.

- Major tidy up of ScreenshotCommand
- Reworking of SelectCommand
- GetPreferenceCommand and SetPreferenceCommand
- GetTrackInfo and SetTrackInfo
- GetInfoCommand
- Help, Open, Save, Import and Export commands.
- Removed obsolete commands ExecMenu, GetProjectInfo and SetProjectInfo
  which are now better handled by other commands.

- JSONify "GetInfo: Commands" output, i.e. commas in the right places.

- General work on better Doxygen.
    - Lyrics -> LyricsPanel
    - Meter -> MeterPanel
- Updated Linux makefile.
- Scripting commands added into Extra menu.
- Distinct names for previously duplicated find-clipping parameters.
- Fixed longstanding error with erroneous status field number which
  previously caused an ASSERT in debug.
- Sensible formatting of numbers in Chains, 0.1 not 0.1000000000137
2018-02-24 14:20:22 -05:00
Paul Licameli
080dd34e61 Get rid of wx object arrays, use std::vector 2018-02-21 19:33:27 -05:00
Paul Licameli
e6e8e3251c Rewrite more Connect() with Bind(), which were type incorrect...
... though harmlessly so.  They called to nonstatic member functions of classes
with improper this pointers; though the functions did not use this.

Bind events to nonmember funtions instead.  Sometimes just to empty lambdas to
consume the event and ignore it, blocking other handlers.
2018-02-21 19:28:12 -05:00
Paul Licameli
151cbb1305 Follow wxWidgets argument conventions for other ctors 2018-02-21 19:21:03 -05:00
Paul Licameli
9f2ff354f6 Bug1754: Telephone and AM Radio curves should not flatten...
... Problem was a wrongly implemented comparator for wxArray Sort().

The array of points was not really sorted, and results differed with repeated
calls to Sort().

Unlike with std::sort, these comparators are supposed to be trichotomous.

Problem dates to commit 7d5e54e364fcccd630274f2658703543d8c596eb

See also commit 4a500c77dda5592468f931db0c791236679157b4
2018-01-18 14:48:48 -05:00
Paul Licameli
cc3c56818a Bug1744: Editing of linear frequency scale EQ curve should work 2017-09-09 22:51:14 -04:00
Steve Daulton
e7a9c37745 Add help buttons for normal built-in effects 2017-05-20 14:49:07 +01:00
Paul Licameli
6ca89c28ff Remove naked new[] in: builtin effects 2017-03-17 17:52:49 -04:00
Paul Licameli
0af9b46eac Move many fields out of Envelope that are needed only during editing 2017-03-17 17:52:31 -04:00
Paul Licameli
81285ee0c1 More const and override 2017-03-17 17:52:20 -04:00
Paul Licameli
5d5edecca5 Remove unnecessary semicolons 2016-09-18 10:36:53 -04:00
Paul Licameli
ed21545c80 pixel column counts and sample window sizes use unsigned types 2016-09-11 20:28:13 -04:00
Paul Licameli
a52f7f8410 new -> NEW in comments, so text search for naked new excludes them 2016-08-08 10:07:37 -04:00
Paul Licameli
6fec00149b Remove some naked new amd delete in: Built-in Effects 2016-08-08 07:51:25 -04:00
Paul Licameli
84c0337aba Fix TAB key navigation on Mac for all dialogs (not only for panels) 2016-07-10 17:12:27 -04:00
Paul Licameli
4739f3e27b Compensate for wxW 3 tab navigation deficiencies on Mac...
... using char hook event handlers.  We don't need to go the extreme length
of patching wxWidgets source.
2016-06-25 19:14:05 -04:00
Paul Licameli
ad711e783b Bug470: Disable some Manage Curves buttons when no curve selected 2016-06-22 19:10:36 -04:00
Paul Licameli
3ced1503ee Make EXPERIMENTAL_EQ_SSE_THREADED compilable, at least on Windows. 2016-04-03 11:37:18 -04:00
Steve Daulton
7d5e54e364 Fix some assert error in EQ curves
Selected EQ curves in Draw mode should now retain their name
when they are selected.
2016-03-08 21:55:07 +00:00
Steve Daulton
36f3f8aab2 Update Eq factory presets on upgrade
Add search paths for EQDefaultCurves.xml
2016-02-27 21:20:53 +00:00
Steve Daulton
b5d2528c03 Enable Eq factory presets to be updated on upgrade 2016-02-27 13:17:27 +00:00
Paul Licameli
990080ae7d Replace virtual with override wherever possible; eliminate needless virtual...
... for functions in final classes.

override is like const -- it's not necessary, but it helps the compiler to
catch mistakes.

There may be some overriding functions not explicitly declared virtual and I did
not identify such cases, in which I might also add override.
2016-02-26 12:35:38 -05:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
2016-02-24 20:58:30 -05:00
Paul Licameli
99f161c36c Sweep unnecessary wxString copies: effects 2016-02-22 22:31:47 -05:00
David Bailes
13f13490e6 Fix for Bug 1267 - Accessibility: some panels used for graphics are included in tab traversal
Bug due to update and wxWidgets bug 1267.
Fix is to add the override of AcceptsFocusFromKeyboard().
2015-11-26 15:21:48 +00:00
Paul Licameli
ca9928d533 Add missing critical inclusions of Experimental.h to other headers 2015-08-31 17:21:50 -04:00
Leland Lucius
7a77109c7b Should fix slider alignment (wx3) issue and fix bugs #1081 and #1088 2015-08-15 12:45:16 -05:00
Paul Licameli
cab89f6fb4 Remove Envelope.h from other headers 2015-07-28 10:02:09 -04:00
Paul Licameli
d39eaa4e65 Remove WaveTrack.h from other headers 2015-07-28 10:02:05 -04:00
Leland Lucius
0ef7ccb1d1 Fix permissions...not sure why this was happening though 2015-05-29 19:49:28 -05:00
Leland Lucius
c816d2562d Fix for bug #985
Was not able to reproduce the assert mentioned in the report though.
2015-05-29 11:32:55 -05:00
Leland Lucius
d0d8f37d85 Correct dialog background color on GTK 2015-05-19 09:51:06 -05:00
Daniel Winzen
038989e41d Fix uninitialized variable in Equalizer effect
Delete mCustomBackup, as it is never used
2015-04-30 11:49:21 +02:00
Leland Lucius
27657ddea7 Restore non-preset values when Factory Preset -> Defaults is selected 2015-04-27 10:52:42 -05:00
Leland Lucius
76864cb2d3 Fix EQ effect based on Peter's feedback 2015-04-22 13:02:55 -05:00
Leland Lucius
7a0aa43a82 Convert all wxTRANSLATE() to XO()
XO() can be used anywhere a string must be extracted for translation
but not automatically translated at runtime.
2015-04-18 23:03:49 -05:00
Leland Lucius
8fbfa460c4 Migrating the remaining effects
This brings the builtin, LV2, and VAMP effects inline with the
Audio Units, LADSPA, and VST effects.  All effects now share
a common UI.

This gives all effects (though not implemented for all):

User and factory preset capability
Preset import/export capability
Shared or private configuration options

Builtin effects can now be migrated to RTP, depending on algorithm.
LV2 effects now support graphical interfaces if the plugin supplies one.
Nyquist prompt enhanced to provide some features of the Nyquist Workbench.

It may not look like it, but this was a LOT of work, so trust me, there
WILL be problems and everything effect related should be suspect.  Keep
a sharp eye (or two) open.
2015-04-16 23:36:28 -05:00
lllucius
16ca4f17eb Re-adding localized menu labels for effects
If you can believe it, this whole big mess is
just to get localized effect labels back into
the menus.

I sure wish I'd had a little bit more time to
finish up all of the effects.  It sure would 
be a lot cleaner (code wise).
2014-12-15 21:54:23 +00:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
james.k.crook@gmail.com
d847ee7162 Andrew Hallendorff's SSE accelerated Equalization. 2014-01-16 17:55:35 +00:00
martynshaw99
4ce2643d5f Remove the
// Indentation settings for Vim and Emacs
etc. lines from all files, as Campbell's patch (except for other changes to Languages.cpp)
2013-09-24 00:14:37 +00:00
martynshaw99
992a1ab277 Hopefully read .xml and .XML files on case-sensitive OSs,
Remove 'delete' key functionality.
2010-06-30 23:58:56 +00:00
martynshaw99
31abee22b5 Add a suffix to duplicate names.
Remove double-click to rename, for keyboard users.
Added 'Names' to controls in the hope that screen readers will be helped.
Resizing works better.
Various tidy-up, inc. adding a few comments!
2010-06-27 22:20:58 +00:00
prlivesey
aadc759fe2 Moved 'class EditCurvesDialog:public wxDialog' outside of the '#if wxUSE_ACCESSIBILITY' conditional to allow compilation when wxUSE_ACCESSIBILITY is undefined. 2010-06-16 11:03:58 +00:00
martynshaw99
da5c299292 New EQCurves management dialog. 2010-06-15 23:49:51 +00:00
martynshaw99
3ee3c168e6 Correcting the layout of EQ freq ruler (borders, off-by-ones).
Avoid an unnecessary alert in Envelope.
2010-03-23 01:27:12 +00:00