1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-05 14:18:53 +02:00

9716 Commits

Author SHA1 Message Date
Steve Daulton
6f9746b601 Update pipe_test.py for Python 3 2019-03-22 14:21:56 +00: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
Steve Daulton
bedd4f1f3f Fix pipe_test for Python3 on Linux
The script still works with Python 2 on Linux, but it should be tested
(with Python 3) on Windows and Mac.
2019-03-22 10:15:51 +00:00
James Crook
4ff7d7875a Add 'Select Track' Button.
This is a first take at this new feature.  I'm expecting we'll want to refine it.
https://wiki.audacityteam.org/wiki/Proposal_Select_Track_button_in_TCP has the feature proposal.
2019-03-21 19:43:36 +00:00
Steve Daulton
d2fbeaa9f5 Fix translation string in Plug-in Installer
Translation mechanism does not support "\n".
2019-03-21 17:50:37 +00:00
Paul Licameli
8dcf725e4c Fix leaks. wxEvtHandler::SetClientData() doesn't take ownership! 2019-03-21 10:46:48 -04: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
David Bailes
069e34df77 Accessibility: make NumericTextCtrl accessible using Narrator
Problem:
Using the Narrator screen reader on Windows 10, there are a couple of problems:
1. When using the left/right arrow keys, Narrator reads the current field, rather than the digit which is now the focus.
2. Using up/down arrow keys, Narrator is silent.

Fixes:
1. The existing code assumes that NumericTextCtrlAx::GetName() is called only once after left/right arrow is pressed. However, Narrator causes this function to be called more than once. Solution: handle the case where the function is called, and neither the focus or the digits have changed, and use a cached value of the name.

2. If the focus has not changed, then after a focus event, Narrator does not read the name, even if the name has changed. Solution: add a name change event. (The focus event has been retained to keep Window-Eyes happy until we stop supporting it.)

Note:
One of the focus events has been removed from NumericTextCtrl::SetFieldFocus(), as it no longer appears to be necessary.
2019-03-21 13:48:23 +00:00
Paul Licameli
922e971f2f Remove an unused #include 2019-03-20 16:54:14 -04:00
Paul Licameli
eb94489277 Make EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT compilable 2019-03-20 16:54:14 -04:00
Vitaly Kirsanov
2b2c13520d Use native CMakeLists.txt for portaudio
The same story as libexpat's one--native CMakeLists.txt does its job better
than the proxy. Also it seems to be able to otionally build with ASIO support
on Windows. And it successfully builds on linux, freebsd and osx.
2019-03-20 20:22:23 +00:00
Paul Licameli
80ca1dc5fc Remove unused overloads of ShuttleGuiBase::TieNumericTextBox...
... those taking wxString as default value, or reference to wxString as the
target variable.

There remain one that takes reference to int as target, and one taking
reference to double; and one taking a config path and a double default value,
passed by const reference.  Some of the calls to the last pass an int default
value which was, and still is, implicitly converted to double.
2019-03-20 13:50:58 -04:00
Paul Licameli
393719bbdf Remove unused overload of ShuttleGuiBase::TieTextBox...
... No need to tie a double-default-valued checkbox that is NOT numeric.
2019-03-20 11:32:30 -04:00
Paul Licameli
de6e7fc4a3 fix #include path 2019-03-19 18:44:14 -04:00
Paul Licameli
da895783fd A few more uses of type alias EnumValueSymbol where more proper 2019-03-19 15:15:09 -04:00
Paul Licameli
d326220f0c fix typo in comment 2019-03-18 18:33:33 -04:00
Vitaliy Kirsanov
b15a11b830 CMakeLists.txt for FileDialog's been rewritten
It appeared to be usable on Windows but still wasn't flexible. I've
updated it with commands based on the autotools configs and now
filedialog can be built on linux, macos and freebsd using cmake.
2019-03-18 21:39:40 +00:00
Paul Licameli
02db402b54 Bug2064: ESC key should abort drags in time ruler on Linux...
... Reimplement the ESC key handling in TrackPanel and time ruler on all
operating systems so that it does not rely on the focused window, but instead
uses the application-wide event filter.

This includes reversion of 9491605cfc8a7d60117365884fd494996b5ebbaf
2019-03-18 12:43:14 -04:00
Paul Licameli
b47e2f91e2 Make header dependencies for wxUSE_ACCESSIBILITY explicit 2019-03-18 12:14:16 -04:00
Paul Licameli
12952019b2 Bug2078: crash append-recording to minimized track...
... bug was introduced at commit 1a59ba6
2019-03-18 10:33:01 -04:00
Paul Licameli
d261ea2558 Define and use utility template ValueIterator...
... generalizing the fix of commit 7591891 to other cases, making the iterators
safe for adaptation with std::reverse_iterator should the need ever arise
2019-03-18 08:44:40 -04:00
Paul Licameli
b4ce681867 WaveTrack.h does not include WaveClip.h 2019-03-18 01:44:42 -04:00
Paul Licameli
5e7d41ec07 Each .cpp/.mm file includes corresponding header before any other...
... except Audacity.h

This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
2019-03-17 22:54:52 -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
173a300427 Include nothing before Audacity.h, as comments say we should...
... and remove some duplicated inclusions
2019-03-17 21:41:39 -04:00
Henric Jungheim
61291257eb Fix "assocated" -> "associated" typo. 2019-03-17 18:06:15 -07:00
Paul Licameli
e86d508067 Remove one duplicate definition of track panel area subdivision 2019-03-17 16:04:50 -04:00
Paul Licameli
6c931dc885 Reimplement TrackPanel::FindTrackRect...
... addressing unfinished business mentioned in comment of commit b7e1cc0.

This eliminates a duplicate definition of track panel area subdivision, which
might grow inconsistent.

Now that subdivision is defined only by the tree of TrackPanelNodes built by
TrackPanel::Root() -- EXCEPT in the drawing code, which is still quite a lot
of other code needing its own difficult refactoring.
2019-03-17 15:59:41 -04:00
Paul Licameli
5bb4e1446f Another override of CellularPanel::FindRect taking a predicate 2019-03-17 15:57:52 -04:00
Paul Licameli
15777834e0 Remove calls to TrackPanel::FindTrackRect for finding control area 2019-03-17 15:23:51 -04:00
Paul Licameli
6f31a9f7dc Specific types, const versions: getting track & vruler controls...
... See changes to classes CommonTrackPanelCell and Track; the rest follows
2019-03-17 15:20:52 -04:00
Paul Licameli
43899da80d Remove some nested #include from TrackPanelAx.h 2019-03-17 15:05:24 -04:00
Paul Licameli
71036bed01 Remove PluginManager.h from other headers 2019-03-17 15:05:19 -04:00
Paul Licameli
3ff61f3e10 Remove Shuttle.h from other headers 2019-03-17 15:03:05 -04:00
Paul Licameli
166e73fdeb Make inherited TrackList::push_back private 2019-03-16 14:29:34 -04:00
Paul Licameli
eede4dd79b Memory mgmt: Track and TrackList use std::enable_shared_from_this 2019-03-16 13:11:33 -04:00
Paul Licameli
47fa651d79 TrackList inherits std::enable_shared_from_this 2019-03-16 13:11:33 -04:00
Paul Licameli
41175e94cd Simplify by removing many std::move of shared_ptr to tracks...
... Don't need them, as we did with std::unique_ptr
2019-03-16 13:11:33 -04:00
Paul Licameli
a0aa69a248 All tracks allocated with make_shared, no more make_unique...
... so that we can use Track::SharedPointer without undefined behavior even on
tracks that don't yet belong to any TrackList.

Also fix the return type of function template TrackList::Add and remove some
casts.
2019-03-16 13:11:33 -04:00
Paul Licameli
6f89c48873 Reimplement Track::Pointer using std::enable_shared_from_this...
... now the Track need not be owned yet by a TrackList
2019-03-16 13:11:32 -04: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
Paul Licameli
1bcb7c20a5 Remove some nested #include from Project.h 2019-03-16 13:09:54 -04:00
Vitaliy Kirsanov
5ada9ee201 Use native CMakeLists.txt for libexpat
cmake-proxies/expat/CMakeLists.txt seems to make more problems than it
solves. But the native one appears doing its job well on multiple
platforms. Tested on Windows, OSX, Linux and FreeBSD.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Author:    Vitaliy Kirsanov <krokoziabla@yandex-team.ru>
# Date:      Thu Mar 14 19:03:29 2019 +0300
#
# On branch tmp
# Your branch is up to date with 'my/tmp'.
#
# Changes to be committed:
#	modified:   cmake-proxies/CMakeLists.txt
#	deleted:    cmake-proxies/expat/CMakeLists.txt
#	modified:   lib-src/expat/CMakeLists.txt
#
# Changes not staged for commit:
#	modified:   lib-src/expat/CMakeLists.txt
#
2019-03-16 13:10:21 +00:00
Paul Licameli
f7162d3326 OverlayPanel uses weak_ptr to Overlay, which simplifies other dtors 2019-03-16 08:21:03 -04:00
Paul Licameli
ac2fecf151 Don't rely on order of Bind to EVT_TRACK_PANEL_TIMER from project...
... instead, re-process the event, and let each handler bind to the one it
depends on.

This still leaves a critical ordering of construction of playback scroller and
play indicator overlay in AudacityProject::AudacityProject (reverse of the
previous), but that will be removed by other means.
2019-03-16 08:20:44 -04:00
Paul Licameli
a73970d864 Rewrite the quick exit test in OverlayPanel::DrawOverlays 2019-03-16 08:07:09 -04:00
Paul Licameli
4dbe88df26 Remove rectangle calculation that became unused at cb3e5e6 2019-03-16 07:59:40 -04:00
Paul Licameli
e6324e86ac Fix cross-platform one-pixel differences in line drawing...
... Make all line drawing go through our AColor which wraps the wxDC
line-drawing functions.

Despite what wxWidgets documentation says, the functions still don't
consistently include the first point and omit the last point of a line.  I
observed inclusion of both on Mac, while on Windows, omission sometimes of the
first point instead of the last.

Discrepancies could be observed in 2.3.0 between Windows and Mac, using the
Window magnifier or command+alt+ +, zooming in closely on the ends of the
shadow lines below and right of tracks, or at the bottom-right corners of the
bevels drawn around vertical rulers.

So where there is an observable one-pixel difference of drawing between
platforms, there is the question, which was the intent when the drawing code
was written?  Should the coordinates be corrected by one or not?

I reviewed each case and used my judgment.

Most of the calls are in drawing rulers.  Major tick lines were drawn five
pixels long, and minor, three, on Mac.  I keep this behavior, but you might
argue for making them four and two.

On the other hand the drawing of ruler grid lines, which you can see in
the equalization and frequency analysis windows, did need a one-pixel correction
to avoid straying out of bounds.
2019-03-16 07:51:28 -04:00
Paul Licameli
2d144bfbc2 Simplify many calls to ShuttleGui that add choice controls 2019-03-16 07:32:40 -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