Paul Licameli
629678525c
Bug2082: collapse, append-record, expand should restore track height
2019-03-25 19:18:11 -04:00
Paul Licameli
adcb93512c
Include Audacity.h in all files that test config USE_ macros...
...
... except Experimental.h, but see preceding commit.
This is especially important in the header files.
Be sure there are no quiet changes of meaning when a header file is included
in a different context, not having seen Audacity.h. Rather include Audacity.h
even if redundantly.
Also, in some header files, move more inside the include-guard #ifdef-#endif
pair.
2019-03-22 12:36:54 -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
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
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
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
52642e49a5
Define and use utilities transform_range, transform_container
2019-03-10 14:43:47 -04:00
Paul Licameli
3be57fce49
Bug2015: crash repeatedly append-recording with sync-lock on
2018-10-29 20:35:45 -04:00
Paul Licameli
2741d58880
TrackList emits more events for certain changes of state of tracks...
...
... Also rewrote some of the existing event handling so all events from
TrackList are of the same, custom event class, and distinguishing addition
from resizing events, though this distinction is not yet used
2018-10-27 11:31:42 -04:00
Paul Licameli
e6e4f44c81
Bug1997: Split Stereo Track and Split Stereo to Mono were doing nothing
2018-10-05 22:09:10 -04:00
Paul Licameli
92cceaf599
Fix usage of InconsistencyException
2018-10-04 11:44:46 -04:00
Paul Licameli
526179b63e
Remove a use of c_str
2018-10-01 19:48:10 -04:00
Paul Licameli
7e6a543473
Define TrackList::GroupChannels()
2018-10-01 13:42:35 -04:00
Paul Licameli
2ee87082cb
Track::GetLink and GetLinked are private, but SetLinked isn't yet
2018-10-01 13:42:34 -04:00
Paul Licameli
b5f52e7c1c
Remove old style track iterator classes
2018-10-01 13:42:34 -04:00
Paul Licameli
b94e8fec96
Remove VisibleTrackIterator
2018-10-01 11:20:52 -04:00
Paul Licameli
1a59ba6331
Simplify some internals of TrackList, don't assume at most 2 channels
2018-10-01 10:54:14 -04:00
Paul Licameli
7ec734b087
Rewrite TrackList::SwapNodes without GetLink(ed)
2018-10-01 10:54:04 -04:00
Paul Licameli
05ddfaf82b
Remove TrackList::Select
2018-10-01 10:47:51 -04:00
Paul Licameli
a0e15cfbbd
Remove TrackListIterator::RemoveCurrent
2018-10-01 10:42:02 -04:00
Paul Licameli
89748cbe3c
Remove "skiplinked" argument of old track iterators
2018-10-01 10:35:46 -04:00
Paul Licameli
a3cdb08ee0
Classes and functions for type-safe iteration over tracks
2018-09-29 22:17:55 -04:00
Paul Licameli
6930b63192
Redo track kind as an enum class defined at global scope
2018-09-29 21:41:47 -04:00
Paul Licameli
34cc1ff577
Rename, rewrite, and simplify use of FindPendingChangedTrack
2018-09-13 13:56:47 -04:00
Paul Licameli
4b950927b5
TrackList::GetGroupHeight is const
2018-09-13 09:53:48 -04:00
James Crook
0ce83abbfb
Bug 1940 - Clicky play when adjusting Pan or Volume TCP controls
2018-08-24 22:30:20 +01:00
Paul Licameli
800ddf32e1
Bug1884: fix crash when record to new track and fail to open device
2018-06-10 17:30:22 -04:00
Paul Licameli
35a97e09e7
Group arguments to StartStream, and a bit less of #ifdef for MIDI play...
...
... And pull choice of tracks and options out of DoRecord
2018-05-29 00:22:12 -04:00
James Crook
35127c44b7
Bug 1548 - Newly recorded tracks do not acquire focus
2018-03-24 16:05:10 +00:00
Paul Licameli
29c98f27f6
Another fix for list iterators
2018-03-10 11:46:22 -05:00
Paul Licameli
bab8ea8393
Thanks for nothing, MSVC std::list<T>::iterator implementation...
...
... I worked around the unhelpful helps that made gratuitous runtime errors,
in debug builds but not in release.
2018-02-23 14:58:12 -05:00
Paul Licameli
2fbe04eda0
Replace more Connect with Bind; needed redeclaration of custom events
2018-02-21 19:30:40 -05:00
Paul Licameli
bf5228267a
Calls to Disconnect or Unbind in destructors are not needed, if...
...
... it's either the source of the connection that is being destroyed, or other
object (such as an ancestor window) transitively owning it and so causing it to
be destroyed too;
or, the sink is being destroyed, and that sink is a wxEvtHandler (which is
always so for Disconnect, though not for Unbind in case Bind was passed a
member function of a non-wxEvtHandler).
wxWidgets takes care of erasing the connection in such cases.
This removes most calls to Disconnect and Unbind. Many destructors shrank to
nothing.
Notably, in case of popup menu handling, the call to Disconnect is not removable
because the object being destroyed is neither the source nor the sink.
2018-02-21 19:28:06 -05:00
Paul Licameli
e0d826a542
Prohibit copy of TrackList, no longer needed; allow swap and move
2018-02-21 19:21:01 -05:00
Paul Licameli
539e870302
Add machinery to TrackList for pending changes to tracks
2018-02-21 19:20:56 -05:00
Paul Licameli
33cfd92c0a
Define TrackId to identify tracks across undo states
2018-02-21 19:20:56 -05:00
Paul Licameli
3f05063681
Split "Do" functions out of the "Set" functions for some Track settings
2018-02-21 19:20:55 -05:00
Paul Licameli
242e9a5668
Some reimplementation of track iterators and GetLink() ...
...
... avoiding direct usage of the inherited end() and of the increment and
decrement of the std::list iterators
2018-02-21 19:20:55 -05:00
Paul Licameli
4ef8da8f16
Revert "Preliminaries to support better interaction of undo and recording"
...
This reverts commit 6e75ae58ac , reversing
changes made to 714d53e00f .
2018-01-14 21:36:33 -05:00
Paul Licameli
950898dcb9
Revert "Bug 1823: Better interaction of undo and record..."
...
This reverts commit 1e8aba968d , reversing
changes made to 6e75ae58ac .
2018-01-14 21:27:41 -05:00
Paul Licameli
2409d46d4c
Prohibit copy of TrackList, no longer needed; allow swap and move
2018-01-14 19:33:39 -05:00
Paul Licameli
ce5a67a9e9
Iterate over the pending tracks for drawing
2018-01-14 19:04:03 -05:00
Paul Licameli
a0c3a4b43c
Add machinery to TrackList for pending changes to tracks
2018-01-14 19:03:57 -05:00
Paul Licameli
bd2c7e6abc
Define TrackId to identify tracks across undo states
2018-01-14 19:03:54 -05:00
Paul Licameli
8b60e7f02d
Split "Do" functions out of the "Set" functions for some Track settings
2018-01-14 19:03:52 -05:00
Paul Licameli
92ba1f10e1
Some reimplementation of track iterators and GetLink() ...
...
... avoiding direct usage of the inherited end() and of the increment and
decrement of the std::list iterators
2018-01-14 19:03:50 -05:00