1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

233 Commits

Author SHA1 Message Date
Paul Licameli
d979a8959b New files for ProjectAudioManager...
... This eliminates some inclusions of ProjectManager, helping to free it from
cycles into a higher level
2019-06-09 12:10:47 -04:00
Paul Licameli
4f940c855d New files for ProjectWindow 2019-06-03 01:43:26 -04:00
Paul Licameli
3fc961f74a New files for ProjectFileIO 2019-06-03 01:24:01 -04:00
Paul Licameli
fee5582826 New files for ProjectManager 2019-06-03 01:21:12 -04:00
Paul Licameli
e5cf2165d1 New files for ProjectAudioIO 2019-06-03 01:18:08 -04:00
Paul Licameli
05efeeb5bd New files for ProjectSettings 2019-06-03 01:13:13 -04:00
Paul Licameli
af039f19ff Generalize means for decoupled code to add data to core structures...
... Generalizing what was first done at 280e8d9 for certain menu command
handlers.

Allow core data structures to host data attached by other code, on which it
need have no compilation or link dependencies.
2019-05-21 10:08:56 -04:00
Paul Licameli
390af96796 Dispatch read of top-level project XML tags with a table of functions...
... which makes Project.cpp a bit less dependent on some details of other
classes

This puts Tags.cpp back into the big strongly connected component of the
dependency graph.  That will be remedied later when Project.cpp becomes a
low-level file
2019-05-20 21:38:07 -04:00
Paul Licameli
f86403378b Move AudacityMessageBox to its own files...
... breaking cycles among low-level files introduced by 273ba9f
2019-05-20 14:48:36 -04:00
Paul Licameli
db8c4c5e5a Global keyboard capture handling into new files, better comments...
... and break its compile dependency on CommandManager.h by letting it install
callbacks.

This also removes Objective-C mixed code from CommmandManager.

This also eliminates four inclusions of Project.h!

Capture handler state is also global, not per project, though the
CommandManager's callbacks still do depend on the active project.
2019-05-18 15:14:18 -04:00
Paul Licameli
e5c7e5a21f Three new files in the build, still empty 2019-05-18 14:57:24 -04:00
Paul Licameli
b04387a21d Move AudacityApp::GenerateCrashReport to its own files 2019-05-17 16:29:31 -04:00
Paul Licameli
e845bd9544 Move AudacityApp::MacActivateApp out of WindowMenus.cpp 2019-05-17 16:29:04 -04:00
Paul Licameli
a047fa6e7a Missing alias file tracking out of AudacityApp, into new files...
... which reduces the need for including AudacityApp.h
2019-05-17 16:28:50 -04:00
Paul Licameli
338d7cd164 A class encapsulating the global clipboard 2019-05-17 06:47:53 -04:00
Paul Licameli
28e0bb25b2 Corrections in the XCode project 2019-04-22 10:47:41 -04:00
James Crook
ae431bc5bd Build LAME on macOS 2019-04-06 12:05:43 +01:00
Steve Daulton
6e6148604d Nyquist plug-in installer added
Ran "autoreconf --force --no-recursive" for Linux build.

Add nyquist-plug-in-installer.ny to Windows build

Add Nyquist Plug-in Installer to mac build

Fix translation strings in plug-in installer
2019-03-21 14:30:26 +00:00
Paul Licameli
3dba70120c CommandManager, MenuManager don't use Lyrics.h, MixerBoard.h ...
... instead define new base classes in src/commands that those other
windows can inherit.  The classes have nothing but a virtual destructor.  This
lets CommandManager use dynamic_cast to detect the special windows.

See commits cbfde23 and 68e4bf6 which added the #include directives
2019-03-16 13:10:59 -04:00
James Crook
807a763c90 Increase space in OSX bundles for dylib filenames
This is needed to allow path names in the bundle to be rewritten by install_name_tool so that they are relative to the bundle rather than absolute paths.  The problem previously was that the new relative path names could be too long.
2019-02-04 11:43:17 +00:00
Paul Licameli
7c78a91778 Fix one of the two 64 bit link errors 2018-11-18 13:17:11 -05:00
Paul Licameli
897f8bf0ed New configs now really 64 bit; they compile, almost link...
... The null, script-pipe, and Nyquist workbench modules all build fully.

Just two missing symbols building Audacity, I don't yet know why:

ld: warning: directory not found for option '-L/Users/paullicameli/GitHub/audacity/mac/build/Release'
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks//QuickTime.framework/QuickTime, file was built for i386 which is not the architecture being linked (x86_64): /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks//QuickTime.framework/QuickTime
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_ModalDialogDelegate", referenced from:
      objc-class-ref in FileDialogPrivate.o
  "_objc_readClassPair", referenced from:
      __ARCLite__load() in libarclite_macosx.a(arclite.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
2018-11-18 13:17:10 -05:00
Paul Licameli
bd31c0de6b Must change compiler options to build sbsms for 64 bits 2018-11-18 13:17:10 -05:00
Paul Licameli
541f5ea99f Must add command-line compiler option to build libmad for 64 bits 2018-11-18 13:17:10 -05:00
Paul Licameli
a84bcfaf5b New configurations and schemes for XCode...
... complete and buildable, but still 32 bit builds.  To be modified.
2018-11-18 13:10:01 -05:00
Paul Licameli
407b7fab4a build_wxwidgets now loops over two architectures; change install path...
... to include architecture, so the 64 bit build doesn't destroy the 32, thus
the results are found in:

/usr/local/i386/lib
/usr/local/x86_64/lib

whereas before all was in /usr/local/lib.

Change the XCode project too, to look for includes and libraries in the new
places.
2018-11-18 13:09:03 -05:00
Paul Licameli
5578a0490b MacOS build treats warnings as errors 2018-11-15 11:23:20 -05:00
Paul Licameli
d40d56a0f9 MacOS build: don't warn about deprecated functions...
... This quiets warnings from:

lib-src/FileDialog/mac/FileDialogPrivate.mm
lib-src/portaudio-v19/src/hostapi/coreaudio/pa_mac_core.c
lib-src/portaudio-v19/src/hostapi/coreaudio/pa_mac_core_utilities.c
lib-src/portmixer/src/px_mac_coreaudio.c

It's not good to ignore these deprecations forever, but this reduces the noise
from a complete rebuild, making other warnings more conspicious by their
fewness.
2018-11-15 11:23:20 -05:00
Steve Daulton
4ce666e09b Add aud-do-support.lsp to mac build 2018-11-09 20:23:50 +00:00
Paul Licameli
fb15558a07 Update XCode project for renamed header file 2018-11-02 18:44:17 -04:00
Paul Licameli
39fc20c5ee TrackPanelCellIterator is no longer needed 2018-11-01 18:25:02 -04:00
Paul Licameli
303553ae4e Take class AdornedRulerPanel out of src/widgets...
... It's not a utility widget like RulerPanel.  It has a lot of application
specific logic in it.
2018-10-24 15:04:41 -04:00
Paul Licameli
c7521b211d Window Menu for Mac 2018-10-24 12:16:44 -04:00
Paul Licameli
2792faa114 Edit and Label Menus 2018-10-24 12:14:05 -04:00
Paul Licameli
3308054170 14 new, empty .cpp files in src/menus 2018-10-24 11:04:06 -04:00
Steve Daulton
5d34d022a5 Add rms.ny to Audacity bundle
Tidy translation code in init.lsp
Include rms.ny in Makefile.am
Add rms.ny to Linux package
Update Makefiles with: autoreconf --force --no-recursive
Add rms.ny to mac build
Add rms.ny to Windows build
2018-10-08 18:55:46 +01:00
Paul Licameli
e77fc068b3 Add missing header files to XCode project 2018-09-14 14:14:24 -04:00
Paul Licameli
f6609e5ffb Move class CellularPanel into its own files 2018-08-05 14:02:55 -04:00
Paul Licameli
fc473ba500 Mac: script to build wx 3.1.1 & change xcodeproj to use 10.7 minimum 2018-04-14 13:46:56 -04:00
James Crook
c0e1c82be9 Add missing files to Mac build.
Also moved the constructor into the .cpp file, so that wxWindow is a fully defined class.
2018-04-04 14:14:59 +01:00
Steve Daulton
2a8cec8bbb Fix Mac build 2018-03-21 02:03:24 +00:00
James Crook
e3ef968d57 Add DragCommand. Default Y/N on optional fields. Open/Save project items.
- More Y/N in Optional, making it easier to omit parameters.
- AT removed from Envelope, since T already gives it.
2018-02-24 14:20:29 -05:00
James Crook
edf90d6e2c Add envelope commands
- Added SetEnvelope (which can also delete/clear an envelope.)
- Added GetInfo: Type=Envelope
2018-02-24 14:20:27 -05:00
James Crook
1d9477a455 SetClip, SetLabel, SetProject added
- SetTrack also updated with more options.
2018-02-24 14:20:24 -05:00
James Crook
2f6fc0a1e5 Long message target
This allows interactive display of the results of new commands that generate
lots of text.
2018-02-24 14:20:23 -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
c1babb3bb3 Revert "Make FFmpeg header files browseable in Xcode project"
This reverts commit 6f66ee5651f1ef4b78dc424775d9724a4735497a.
2018-01-26 19:18:03 -05:00
Paul Licameli
6f66ee5651 Make FFmpeg header files browseable in Xcode project 2018-01-26 19:08:04 -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