1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-22 00:21:18 +01:00
Commit Graph

7583 Commits

Author SHA1 Message Date
Paul Licameli
cb2ea25afc Define drawing function of CellularPanel, which visits nodes 2019-06-26 23:39:42 -04:00
Paul Licameli
868481b686 GetSceenEndTime out of TrackPanel 2019-06-26 21:25:15 -04:00
Paul Licameli
d29d10d712 GetTracksUsableArea() out of TrackPanel 2019-06-26 21:25:15 -04:00
Paul Licameli
f87dfd43c1 GetVRulerWidth, GetLabelWidth, GetLeftOffset out of TrackPanel.h...
... And some things demoted from ViewInfo to ZoomInfo, related to x coordinates
only
2019-06-26 21:25:15 -04:00
Paul Licameli
baf31dd72e TrackPanel copies its size, stores VRuler width in ViewInfo 2019-06-26 21:25:15 -04:00
Paul Licameli
5cd77187ef Fix TrackPanel rectangle calculations...
... There was an incorrect click-to-resize area active when the last track was
partly scrolled off the bottom

This big predated 2.3.3. development
2019-06-26 21:24:31 -04:00
Paul Licameli
349b882911 Fix failures to repaint track focus border caused by 25f4d6c 2019-06-26 10:03:07 -04:00
Paul Licameli
ef7068f46a Fix some failures to update the vertical scrollbar...
... Problem involves sequence in which event handlers are done, and started at
commit 278509a which updated track Y coordinates in a handler.

Solution is to delay the updating of scrollbars further, using CallAfter.

Also remove one unnecessary call to ProjectWindow::FixScrollbars() because
ProjectWindow::HandleResize follows it and includes scrollbar update already.
2019-06-25 17:41:29 -04:00
Henric Jungheim
01c1b0b0a9 Avoid warning about forward declaration not matching definition. 2019-06-25 11:53:49 -07:00
Henric Jungheim
3b4250c3ae Base classes of AUDACITY_DLL_API classes also need AUDACITY_DLL_API. 2019-06-25 11:53:49 -07:00
Paul Licameli
25f4d6cf8b TrackPanelAx does not depend on TrackPanel...
... TrackPanelAx now sends an event to the project when track focus changes,
and TrackPanel listens for it.

TrackPanel also initializes TrackPanelAx with a callback to do the details of
rectangle calculation.
2019-06-25 11:24:40 -04:00
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
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
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
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
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
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
9e731390f6 Don't define any Track members outside of Track.cpp 2019-06-22 21:46:33 -04:00