1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-13 07:29:00 +02:00

84 Commits

Author SHA1 Message Date
Paul Licameli
f6609e5ffb Move class CellularPanel into its own files 2018-08-05 14:02:55 -04:00
James Crook
12a2fbf489 Build on Linux
Updated project file for mac for both release and debug.
Updated makefile.am and makefile.in
Removed include .cpp hack that avoided need for makefile changes.
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
e37d701bc0 WXINTL_NO_GETTEXT_MACRO defined in compiler options...
... so even if you neglect to include Audacity.h, it applies
2018-01-06 20:56:51 -05:00
James Crook
27d2b7c51b Add AutomationCommands class
- AutomationCommands replaces GetAllMenuCommands, and can provide
information about menus, buttons and toolbars to a script.
- BatchCommands can now return textual results to a script.
- There's a new GUID for mod-script-pipe and it is included in the .sln.
2018-01-06 19:27:45 +00:00
Paul Licameli
3d7471a612 new file 2017-07-09 12:34:26 -04:00
Paul Licameli
c1f667f170 Move some handle and cell classes into their own files 2017-07-09 06:38:54 -04:00
Pokechu22
0c00435f08 Attempt to add the rest of the makefile for portmidi
Also, fix a broken(?) include in px_linux_alsa.c.  I don't know if it was actually broken, but it seems like that was wrong.
2017-07-04 07:50:15 -04:00
Paul Licameli
770b3b52ef TrackPanel no longer implements the selection tool or MIDI stretch...
This one's big!

Also restores the effect of ctrl-click on label track.

Also adds ESC key handling for the Stretch.
2017-06-15 08:54:59 -04:00
Paul Licameli
efdb9889b1 TrackPanel no longer implements label keystrokes, drags, text selection...
... also implemented ESC key for those drags

... temporarily loses the special CTRL click handling
2017-06-15 08:54:58 -04:00
Paul Licameli
bbfa574790 Move track resizing code out of TrackPanel.cpp, though it still...
... cooperates more closely with TrackPanel than the other UIHandle subclasses
do.
2017-06-15 08:54:58 -04:00
Paul Licameli
703abe87bc TrackPanel no longer implements track selection click or rearrange drag...
... also implement ESC key for the drag
2017-06-15 08:54:57 -04:00
Paul Licameli
8ef5f696d8 Define BackgoundCell, move some things into it 2017-06-15 08:21:41 -04:00
Paul Licameli
c3f5fea5fc TrackPanel still draws Miminize and Close, but no longer handles...
clicks on them...

... also implemented ESC key for those drags
2017-06-15 08:21:36 -04:00
Paul Licameli
7cab380192 TrackPanel still draws Velocity, but no longer handles clicks on it...
... also implemented ESC key for that drag
2017-06-15 08:21:35 -04:00
Paul Licameli
a569476e79 TrackPanel still draws Gain and Pan, but no longer handles clicks on them...
... also implemented ESC key for those drags
2017-06-15 08:21:35 -04:00
Paul Licameli
5ee73f944d TrackPanel still draws Mute and Solo, but no longer handles clicks on them...
... also implemented ESC key for those drags
2017-06-15 08:21:34 -04:00
Paul Licameli
c6e7e5d99b Define a base class that will be useful for several track control sliders 2017-06-15 08:21:34 -04:00
Paul Licameli
d28b8f072b Define a base class that will be useful for several track control buttons 2017-06-15 08:21:33 -04:00
Paul Licameli
43968c4ac9 TrackPanel no longer implements clip joining or cutline expansion/deletion...
... also implement ESC key for these and added status bar message for
mouse-over
2017-06-15 08:21:30 -04:00
Paul Licameli
2496b0d7bc TrackPanel no longer implements the envelope tool...
... also implement ESC key for it
2017-06-15 08:21:02 -04:00
Paul Licameli
251976d93d TrackPanel no longer implements the time shift tool...
... also implement ESC key for it
2017-06-15 08:21:01 -04:00
Paul Licameli
f1f254f974 TrackPanel no longer implements the draw tool...
... also implement ESC key for it
2017-06-15 08:21:00 -04:00
Paul Licameli
85c03bb3b3 TrackPanel no longer implements the zoom tool...
... Also changed the behavior of drawing of dashed lines: make them
disappear when they approach close enough that right-up will zoom out,
not in.
2017-06-15 08:20:59 -04:00
Paul Licameli
cba51e1bf8 Define class PopupMenuTable to make it easy to attach and detach handlers...
... to the parent TrackPanel window
2017-06-15 08:20:59 -04:00
Paul Licameli
14d45eda33 Define and use the UIHandle and TrackPanelCell protocols, but...
...no actions reimplemented to them yet.

Later commits will move special cases one at a time from TrackPanel, preserving
all click and drag capabilities at each step.  With a few exceptions, but those
lost abilities are restored in yet later commits.  (Ctrl+Click on the Label
track being one.)
2017-06-15 08:20:56 -04:00
Paul Licameli
a594207265 Define class SelectionState; move some TrackPanel functions into it 2017-06-11 10:22:52 -04:00
Steve Daulton
516570074b Add preference option for Stem Plot
Tracks 'behaviors' preferences split to sub-page to avoid over-long
page for Tracks preferences.
2017-04-27 15:16:05 +01:00
Paul Licameli
9fde75268f Define an AudacityException subclass for unready on-demand data 2017-03-17 17:52:58 -04:00
Paul Licameli
acf3c018bb Define an AudacityException subclass for user cancellation of progress 2017-03-17 17:52:58 -04:00
Paul Licameli
195509a033 Define an AudacityException subclass for file errors 2017-03-17 17:52:58 -04:00
Paul Licameli
f1cce8aa78 Define an AudacityException subclass for assertion violations 2017-03-17 17:52:57 -04:00
Paul Licameli
df077d171a Exception framework: define AudacityException and GuardedCall...
AudacityException is an abstract base class for exceptions generated by
Audacity.

GuardedCall wraps any function (usually a lambda) in an appropriate catch
block.

It can also accept a second function that defines a catch block action, which
can rethrow or return a value for the GuardedCall.

It can also accept a third function, that defines another, delayed action that
executes in the main thread at idle time if the second function intercepts an
AudacityException and completes without rethrow.

Defaults for the second function simply return void or false.  Default for the
third function invokes a virtual method of AudacityException, which for
subclass MessageBoxException, displays a message box.
2017-03-17 17:52:57 -04:00
Paul Licameli
5036583549 Fewer inclusions of AudacityApp.h 2017-03-17 17:52:24 -04:00
Paul Licameli
924df495ff Make headers in import directory self-contained 2016-08-11 11:51:33 -04:00
Steve Daulton
673aecf05d Remove Leveller effect from Linux build 2016-07-01 16:49:49 +01: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
6a4d6ceeda Separate source files for ScrubbingToolBar 2016-06-25 15:05:17 -04:00
Steve Daulton
27e46d5331 Distortion effect added 2016-06-15 10:51:46 +01:00
Paul Licameli
7c2a531486 New base classes of TrackPanel just for the bitmap backing and overlay system...
... to make it reusable by other classes.

Also, don't create a second DC when repainting TrackPanel.
2016-05-09 11:37:32 -04:00
Paul Licameli
367b2c1011 Move command functors to a new header file, and generalize with templates...
... so that member functions of other than AudacityProject may be called.

Will use this new generality soon for scrubbing menu items.
2016-04-23 02:05:36 -04:00
Paul Licameli
1722ee9e32 Define TrackPanelOverlay, use it to reimplement play indicator and cursor...
... but scrub speed display is disabled
2016-04-18 14:31:36 -04:00
Paul Licameli
b6fdffbab2 Don't copy wxFileName often, it's not lightweight! Use wxFileNameWrapper...
... which is a new class that defines moves.
2016-04-16 11:57:39 -04:00
Paul Licameli
0c9deb398c Fix mac build. No standard headers in Audacity.h. 2016-03-01 12:22:37 -05:00
Paul Licameli
575463252e Compile with gcc 4.8 and -std=c++11 2016-02-13 11:02:38 -05:00
Paul Licameli
05de64e251 Remove unused fns; fix missing & misspelled headers in make & project files 2015-08-30 13:19:08 -04:00
Paul Licameli
b9db3bd83d Define and use TranslatableStringArray. This lets you define "listeners"...
... for language changes, without inserting extra code to send the
notifications.
2015-08-17 12:04:21 -04:00
Leland Lucius
e869099643 Add WXDEBUG_LEVEL=0 to non-debug builds 2015-07-29 14:44:51 -05:00
Leland Lucius
37168ebbf6 Merge remote-tracking branch 'upstream/master' into wx3 2015-07-28 15:06:25 -05:00
Paul Licameli
e0621819ed Move ENV_DB_RANGE out of Envelope.h; that file can be included in fewer places. 2015-07-28 11:55:52 -04:00