Paul Licameli
2257fa642a
Remove TrackPanel::EnsureVisible; TrackList sends an event instead
2019-06-25 10:54:55 -04:00
Paul Licameli
d236507682
Free CommonCommandFlags from cycles again, big s.c.c. is 25
2019-06-25 09:41:11 -04:00
Paul Licameli
baf4648621
Eliminate dependencies on the src/menus files...
...
... The declarations in namespaces in Menus.h are gone, the function
definitions moved elsewhere.
So there had been hidden dependencies on the src/menus files, that
scripts/graph.pl did not detect. Now the lack of dependencies on those
files, according to the graph, is almost the reality.
EXCEPT that src/Menus.cpp still has extern declarations of functions defined
in src/menus/* that populate the menus, so things really are still tied up
in cycles.
Breaking that link dependency is one purpose of the future project of defining
a menu item registration system.
The graph as reported by scripts/graph.pl has only some minor changes. The
big s.c.c. grows again to 26, two new files in it, one file
(CommonCommandFlags) trapped in it again.
2019-06-25 00:20:17 -04:00
Paul Licameli
7fc3c5e7a7
Move namespace TransportMenus into ProjectAudioManager.cpp ...
...
... not the best thing for the long term, but hidden dependencies on
TransportMenus.cpp are eliminated
Tying CommonCommandFlags again into the big component, which is now 26
2019-06-25 00:14:53 -04:00
Paul Licameli
c6478f43af
Lower ViewActions as member functions of ProjectWindow
2019-06-25 00:14:53 -04:00
Paul Licameli
b6077fd3cd
Lower DoReloadPreferences into PrefsDialog.cpp
2019-06-25 00:14:53 -04:00
Paul Licameli
8db51416bc
Lower DoEditMetadata into Exporter
2019-06-25 00:14:53 -04:00
Paul Licameli
684a948fd2
Don't reuse EditActions::DoUndo...
...
... instead, when timer recording is cancelled, don't push state and pop it
at once, but just roll it back.
2019-06-25 00:14:52 -04:00
Paul Licameli
f8c40dc8e7
Move DoHelpWelcome out of HelpMenus
2019-06-25 00:14:52 -04:00
Paul Licameli
2d11e6bda9
Move DoImportMidi out of FileMenus
2019-06-25 00:14:52 -04:00
Paul Licameli
8eca219d57
Separate versions of DoImportMIDI that do and don't assume a project
2019-06-25 00:14:52 -04:00
Paul Licameli
ff2cf496cd
Move DoEffect out of PluginMenus
2019-06-25 00:14:52 -04:00
Paul Licameli
691eee681c
Move DoAudacityCommand out of PluginMenus
2019-06-25 00:14:52 -04:00
Paul Licameli
1c588fa014
Move enum into EffectManager...
...
... tying Effect into a cycle of 3 with EffectManager and EffectRack, which is
only revealing the true dependencies
2019-06-25 00:12:45 -04:00
Paul Licameli
d2f386a329
Move functions into new file TrackUtilities.cpp ...
...
... so that other files do not have link dependency on TrackMenus.cpp
The new project enlargest the big s.c.c. by 1, to 25
2019-06-24 23:13:22 -04:00
Paul Licameli
02e620d35f
Move functions into new file SelectUtilities.cpp ...
...
... so that other files do not have link dependency on SelectMenus.cpp
The new file enlarges the big s.c.c. to 24
2019-06-24 23:06:44 -04:00
Paul Licameli
fab648e475
New files SelectUtilities, TrackUtilities
2019-06-24 22:50:35 -04:00
Paul Licameli
f1dcc156a0
Remove unnecessary inclusions of Menus.h
2019-06-24 22:45:33 -04:00
Henric Jungheim
1b9a5b4c15
Add "src" to MSVC include paths.
2019-06-24 13:44:31 -07:00
Steve Daulton
7787ea1fa9
Fix bug 2138
...
Control envelope should be at sound sample rate, even for fade-out.
2019-06-24 21:06:08 +01:00
Steve Daulton
7485d88bcd
Fix bug 2136 updated
...
As described by David Bailes, it should be std::locale nolocale("C");
2019-06-24 20:34:54 +01:00
Paul Licameli
3d5eec7929
CommonCommandFlags is free of cycles, 23 left in the big s.c.c. ...
...
... That was easy. An #include in a new file just wasn't needed.
2019-06-24 14:48:08 -04:00
Paul Licameli
84e8d4b629
Rewrite AttachedVirtualFunction so MS compiler accepts it
2019-06-24 14:12:50 -04:00
Paul Licameli
e08a942ab8
Fix other cause of intermittent timing-dependent crash at shutdown...
...
... AudioIO holds a weak pointer to its listener so there is no dangling
pointer
2019-06-24 13:32:08 -04:00
Paul Licameli
b8838b38ed
Free AudioIO from cycles, 24 files left in the big component
2019-06-24 13:09:47 -04:00
Paul Licameli
5627620b78
Remove dependency of AudioIO on Scrubbing.cpp ...
...
... though the demotion of the constant into AudioIO.h isn't wholly satisfactory
and there is still the scrubbing queue in AudioIO
2019-06-24 12:52:54 -04:00
Paul Licameli
d9b780b067
AudioIO does not depend directly on ControlToolBar ...
...
... use one more callback in the listener to change the ControlToolBar pause
state.
2019-06-24 12:43:08 -04:00
Paul Licameli
bcc90ee91a
AudioIO does not need ProjectWindow
2019-06-24 12:43:08 -04:00
Paul Licameli
ed5c92450d
CommitRecording out of ControlToolBar
2019-06-24 12:43:08 -04:00
Paul Licameli
1d6ff11fec
Fix #include paths
2019-06-24 12:41:25 -04:00
Paul Licameli
433e2cf660
Fix an intermittent crash on exit cased by timer events
2019-06-24 11:19:24 -04:00
Paul Licameli
ba4fe34947
Free four effect-releated files from the big s.c.c. ...
...
... They are:
Effect
EffectManager, EffectRack (in a cycle of 2)
Nyquist
There is also one new file, RealtimeEffectManager. Making AudioIO use that,
instead of the whole of EffectManager, was essential to this improvement of
the graph.
2019-06-24 01:04:08 -04:00
Paul Licameli
cd9e4e3987
RealtimeEffectState into RealtimeEffectManager...
...
... which doesn't need Effect.h then.
Freeing Effect and RealtimeEffectManager from cycles, leaving 25 in the big
s.c.c.
2019-06-24 01:04:03 -04:00
Paul Licameli
5caeaf520b
RealtimeEffectState needs only EffectClientInterface, not Effect
2019-06-24 00:49:14 -04:00
Paul Licameli
867e6a8d9e
Move fields out of Effect, into new class RealtimeEffectState...
...
... and simplify, using a std::atomic instead of a critical section.
(But did this before, and does this now, correctly synchronize across threads?
I defer that question.)
2019-06-24 00:49:14 -04:00
Paul Licameli
0f62046313
Define EffectClientInterface::GetBlockSize()
2019-06-24 00:49:14 -04:00
Paul Licameli
ab5a98003a
Free EffectManager and EffectRack from the big s.c.c. ...
...
... though in a small cycle with each other, by moving RealtimeEffectManager to
new files, which remain in the big component.
Net loss of 1, the big component now has 27 files
2019-06-24 00:49:12 -04:00
Paul Licameli
04a3ed9d04
Separate class RealtimeEffectManager
2019-06-24 00:37:02 -04:00
Paul Licameli
9935b035c5
Remove Effect.h from EffectManager.h and EffectRack.h
2019-06-24 00:36:59 -04:00
Paul Licameli
dee27e052f
Free Nyquist.cpp from cycles...
...
... Very easily, just by demoting two macros from Nyquist.h to Effect.h.
The graph improvement is worth this bit of preprocessor namespace pollution.
2019-06-23 23:20:03 -04:00
Paul Licameli
a3a9a7d8b3
Smash 2nd biggest scc. of 21 files into 15 pieces, each 3 or fewer...
...
... the new little strongly connected components are:
AutoRecovery
Clipboard
NoteTrack
ODComputeSummaryTask
ODDecodeBlockFile, ODDecodeTask
ODManager, ODTask, ODWaveTrackTaskQueue
ODPCMAliasBlockFile
ProjectFileIO
ProjectHistory
Track
TrackControls
TrackPanelResizeHandle, TrackPanelResizerCell, TrackView
TracksPrefs
UndoManager
WaveClip, WaveTrack
2019-06-22 21:57:21 -04:00
Paul Licameli
86320838de
WaveTrack.cpp does not depend on ODManager.cpp ...
...
... Breaking up an s.c.c. of 6 into 3 components:
ODManager, ODTask, ODWaveTrackTaskQueue
UndoManager
WaveClip, WaveTrack
Rewrite the OD tasks and queues to hold weak pointers to tracks, so the
track destructor need not notify them.
2019-06-22 21:46:35 -04:00
Paul Licameli
71250b1dc3
WaveTrack.cpp does not depend on ODDecodeBlockFile.cpp...
...
... cutting off ODDecodeBlockFile and ODDecodeTask into a small cycle of 2
2019-06-22 21:46:34 -04:00
Paul Licameli
f1b04c79d8
WaveClip does not depend on ondemand files besides ODTaskThread...
...
... Lifting the specification of factory function arguments for Sequence even
higher
This frees ODPCMAliasBlockFile from cycles
2019-06-22 21:46:34 -04:00
Paul Licameli
91a2ff2560
Track does not depend on TrackView, freeing 11 files...
...
... from the second-largest s.c.c. which shrinks to 9
The 11 are:
AutoRecovery
Clipboard
NoteTrack
ODComputeSummaryTask
ProjectFileIO
ProjectHistory
Track
TrackControls
TrackPanelResizeHandle, TrackPanelResizerCell, TrackView in a small cycle
2019-06-22 21:46:34 -04:00
Paul Licameli
9e731390f6
Don't define any Track members outside of Track.cpp
2019-06-22 21:46:33 -04:00
Paul Licameli
dc9e436dde
Change the track view copy function...
...
... It is const, renamed CopyTo, and invokes the create-on-demand factory in
the destination track; this means Track.cpp doesn't need to do that, and so
does not need TrackView.h
2019-06-22 21:46:33 -04:00
Paul Licameli
8793d6b475
Demote Copy to CommonTrackCell; Track points only to that base class
2019-06-22 21:46:33 -04:00
Paul Licameli
3f1fd8ced0
TrackView handles its own special XML attributes via virtual functions
2019-06-22 21:46:33 -04:00
Paul Licameli
278509a505
TrackView, not TrackList, updates Y coordinates of views, using events
2019-06-22 21:46:33 -04:00