Commit Graph

227 Commits

Author SHA1 Message Date
James Crook 569028268d Bug 2207 - Filter Curve and Graphic EQ have no factory presets (available in 2.3.2 and earlier) 2019-08-24 13:55:54 +01:00
James Crook 83ddabc895 Bug 1750 - Equalization: EQ control points can disappear if the points are at the same frequency 2019-08-23 19:28:35 +01:00
James Crook a1f0a70ddd EQ Tweaks for Independence
Added:
- Independent Help pages
- Independent Curves

Also tweaked for the new namings
2019-08-23 18:41:26 +01:00
James Crook 8031bf7c14 Bug 2206 - Filter Curve (and Graphic EQ) corrupt saved curves (on the right)
Frequency range was set too narrow.
2019-08-23 16:39:05 +01:00
James Crook bbc202807f EQ: Don't Load XML data any more
Also abolished use of nPoints, making parameters easier to set up.
This also fixes an issue where more points than are there could be read, if cfg file bad.
2019-08-23 12:12:07 +01:00
David Bailes 889bf7c191 Graphic equalization: fix accessibility name
Overlooked this change which should have been done when we moved to wxWidgets 3.1.1
2019-08-23 11:10:15 +01:00
James Crook 3e98a109c9 Make Graphic EQ vertically stretchable
Drag to enlarge the window, and the length of the graphic sliders.
This was part of splitting EQ.  The split effect would look strange if we did not do this.

Graphic EQ sliders are now in a sizer, and so we no longer lay them out 'by hand' in the way we previously did.
2019-08-22 20:08:52 +01:00
James Crook c9fbd283b7 Fix release build EQ functions.
Uninitialized variable was 0 in debug builds, but could be very high value in release.
2019-08-21 23:46:31 +01:00
James Crook c1c7d5f0a0 Graphic EQ / Filter Curve mods
This is part of the work of fixing Equalization by splitting it into two effects.

The Graphic EQ effect now does not show the curve or 'grid on/off' checkbox.
Screenshot Commands now include Graphic EQ and Filter Curve in the captures (and not EQ anymore).
Menu items now have a space in them.
2019-08-21 22:22:13 +01:00
James Crook 23063511d9 Bug 2031 - Equalization: presets under the Manage button do not save custom EQ curves
Further work needed, and a tidy up to bring arrays into ShuttleGui would be nice, but this gets us most of the way.
2019-08-21 17:56:31 +01:00
Paul Licameli 5797637528 Bug2112: Crash opening Equalization settings for Macro...
... It was introduced at 2e11844f6a, so since
2.3.1

A null check on inputTracks() was needed.

This appears to be the only effect where inputTracks() was called while
populating its dialog, so there should not be any similar crashes with other
effects.
2019-07-14 11:24:30 -04:00
Paul Licameli 7e1c469d7f Remove some unnecessary #include directives 2019-07-09 12:45:50 -04:00
Paul Licameli 7ed99c6e8f Split EnvelopeEditor.cpp from Envelope.cpp...
... Envelope drops down out of the big strongly connected component, the new
piece stays behind
2019-06-10 20:48:38 -04:00
Paul Licameli 05efeeb5bd New files for ProjectSettings 2019-06-03 01:13:13 -04:00
Paul Licameli dd10e00a2d New attached structure ProjectSettings stores rate, snap-to, et al. 2019-06-02 14:42:00 -04:00
Paul Licameli 116ff70756 static TrackFactory::Get()...
... not member functions of AudacityProject
2019-05-23 13:55:14 -04:00
Paul Licameli b5a57682b6 static ViewInfo::Get() and ZoomInfo::Get()...
... not member functions of AudacityProject
2019-05-23 12:58:47 -04:00
Paul Licameli 14ab93a01f static TrackList::Get()...
... not member function of AudacityProject
2019-05-23 12:58:47 -04:00
Paul Licameli 6c57948d8f Remove unnecessary #include-s from .cpp files...
... Unnecessary because transitively included.

But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
2019-05-16 17:21:00 -04:00
Paul Licameli c8d95e1117 Bug2105: Enable TAB to sliders on Mac...
... I think this is a defect in wxWidgets, but one we can work around with a
simple wrapper class around wxSlider overriding one method.

To make the fix complete, change all occurrences of "safenew wxSlider"
but the one in ShuttleGui.cpp covers most cases
2019-04-30 21:50:22 +01:00
James Crook d1ce307974 Remove extra controls from Graph EQ and Filter Curves effects 2019-04-01 19:19:30 +01:00
Paul Licameli 5d7584e91a cut WindowAccessible, PopupMenuTable, LinkingHtmlWindow from .h files 2019-03-31 15:14:34 -04:00
Paul Licameli 10568f8a46 Move class SliderAx into WindowAccessible.* ...
... so ScienFilter.cpp doesn't depend on Equalization.h
2019-03-31 13:27:18 -04:00
Paul Licameli 34f318cd41 Remove wx/{imaglist,generic/dragimgg,gauge,dynarray}.h from *.h 2019-03-30 12:51:12 -04:00
Paul Licameli 08c16b6eb7 Remove wx/{html/htmlwin,fileconf,dragimag,debug,dcclient}.h from *.h 2019-03-30 10:53:22 -04:00
Paul Licameli bcc2e0d13b Remove wx/frame.h, wx/sizer.h, wx/access.h from headers 2019-03-28 11:21:15 -04:00
Paul Licameli 7766d9a192 AddCheckBox takes a bool for initial state, not string 2019-03-27 12:58:40 -04:00
Paul Licameli b18f825ee8 Remove wx/slider.h from headers 2019-03-27 10:35:59 -04:00
Paul Licameli a915a510bd include <wx/setup.h> in all files where wxUSE* macros are used...
... even if it's redundant; improving on what was done at b47e2f9
2019-03-23 14:56:02 -04:00
James Crook de427da4c8 Split Equalization into GraphicEq and FilterCurve effects.
First step in https://wiki.audacityteam.org/wiki/Proposal_Equalization
We still have Equalization as an effect, but if the split works well, will remove it for 2.3.2
2019-03-22 11:11:56 +00:00
Paul Licameli b4ce681867 WaveTrack.h does not include WaveClip.h 2019-03-18 01:44:42 -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 3ff61f3e10 Remove Shuttle.h from other headers 2019-03-17 15:03:05 -04:00
Paul Licameli dd86346156 ShuttlegGUI: const wxArrayStringEx & arguments, not wxArrayString *...
... for choice, combo, and listbox; reference allows passing temporaries,
eliminating need for some variables to hold the string arrays.
2019-03-16 07:17:21 -04:00
Paul Licameli dcd82b8ef5 ShuttleGui::AddChoice takes int to specify selection, with a default...
... This makes things brief and where non-default avoids some repetition of
literal strings
2019-03-15 23:35:13 -04:00
Paul Licameli 06b3b42794 Remove unnecessary initializers for empty wxString 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
Paul Licameli 50074f2cfe Replace comparisons against "" with empty() 2019-03-14 13:23:41 -04:00
Steve Daulton 2673e28f4a Correct "Hanning window" to "Hann window"
Updated in user facing text and comments. Variable names left as is.
2019-03-14 10:11:16 +00:00
Paul Licameli 6d5bc21d50 Define and use wxArrayStringEx...
reducing verbosity where there were repeated calls of Add(), and defining
move construction and assignment for efficient returns from functions
2019-03-10 16:23:44 -04:00
Paul Licameli 795b6a2e42 More std:: style for wxString and wxArrayString...
... Replacing:

Insert => insert
RemoveAt => erase
Remove => erase
IsSameAs => operator == or operator !=
   (but only when second argument was true or default)
2019-03-10 14:45:12 -04:00
Paul Licameli 2db49dc1f0 Use standard library style members of wxArrayString (and wxString) ...
... which will make it easier to change the types of those containers to
std::vectors of other string-like classes

for wxString,

IsEmpty => empty
Clear => clear
Alloc => reserve

for wxArrayString,

Count => size
GetCount => size
IsEmpty => empty
Add => push_back
Clear => clear
Empty => clear
Sort => std::sort (only with default comparator)
SetCount => resize
Last => back
Item => operator []
Alloc => reserve
2019-03-10 14:43:57 -04:00
Steve Daulton cc34abea61
bug 2018 - Equalization does not retain settings
Thanks to David Bailes for the fix.
2018-11-13 15:52:18 +00:00
Paul Licameli 50cf2e9a1f Give TrackArtist a back-pointer to TrackPanel 2018-11-05 10:54:58 -05:00
Paul Licameli 99106e3ed3 Carry more information in TrackPanelDrawingContext; fewer arguments 2018-11-05 09:12:45 -05: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 aee4005044 Rewrite many iterations over tracks and channels in src/effects 2018-10-01 11:24:04 -04:00
Paul Licameli 2e11844f6a Effect::inputTracks() now gives only const access 2018-10-01 10:59:48 -04:00
James Crook 4318cb6780 Bug 1886 - Sluggish behaviour caused by the large time taken to draw the Track Control Panel
All backing bitmaps (not just the one in track panel) now are set to 24 bits.
Big thanks to David Bailes for tracking down the root cause of slow BitBlts, and the comments at https://trac.wxwidgets.org/ticket/14403 which led to the fix.

In testing the bitmaps, I also fixed the sizer errors reported for Export.cpp that wxWidgets now reports as ASSERTS when running in debug builds.
2018-08-03 18:29:49 +01:00
Paul Licameli e432883dec Fix deprecation warnings with wxFont, wxPen, wxBrush ctors...
... Replace some enum constants with the equivalent values from the more
special-purpose enums, as the wx header files recommend, so overloading
selects the ctors with non-int arguments.

In a full rebuild of the debug project on Mac, this reduces the count of
warnings from 264 to 274.
2018-07-23 13:21:15 -04:00