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
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
Paul Licameli
4339c0df68
Move height calculation utilities to class TrackView
2019-06-22 21:46:32 -04:00
Paul Licameli
a6e2ca0aa8
Move some enums into new files WaveTrackViewConstants.* ...
...
... freeing TracksPrefs from the second largest s.c.c. which is now only 20
2019-06-22 21:46:32 -04:00
Paul Licameli
aa1ce03100
WaveTrack does not depend directly on ProjectHistory...
...
... because we undo the move,
"Demote vertical zooming code into WaveTrack.cpp ..." done at 1f4bf26
That was done so that WaveTrack would not depend on WaveTrackVZoomHandle, but
made it instead depend on ProjectHistory, which is undesirable.
But since then, commit 3797a52 moved the special minimizing code for WaveTrack
into WaveTrackView.
2019-06-22 21:46:32 -04:00
Paul Licameli
499e3c01ce
Keep EXPERIMENTAL_OD_FFMPEG and EXPERIMENTAL_OD_FLAC compilable
2019-06-22 21:45:56 -04:00
Paul Licameli
0ce6b2b05e
Avoid naked delete
2019-06-21 14:17:15 -04:00
Paul Licameli
a8e2b22ea2
Remove unnecessary #include directives in TrackInfo.cpp
2019-06-21 12:33:36 -04:00
Paul Licameli
3e0d48cc14
Redefine the factories for track views and controls...
...
... non-intrusively in the Track suclasses, registering functions instead.
For each abstract factory function (of two), build a table of concrete factory
functions, paralleling the hierarchy of Track subclesses. Dispatch using
runt time type information in the Track objects.
2019-06-21 09:16:49 -04:00
Paul Licameli
77eeba5463
Define utility AttachedVirtualFunction
2019-06-21 09:16:48 -04:00
David Bailes
660b8c07ad
Fix Windows build - fix include paths
2019-06-21 09:29:32 +01:00
Paul Licameli
f75bf45478
Fix #include directives
2019-06-21 00:23:40 -04:00
Steve Daulton
13ca42638d
Fix for bug 2136
...
Don't translate doubles in Scripting messages. For valid JSON we need to
retain the dot as decimal separator.
2019-06-20 23:19:23 +01:00
Paul Licameli
df14253a50
Remove unnecessary #include-s in TimeTrack
2019-06-20 16:44:47 -04:00
Paul Licameli
5240c42cb6
No more LabelTrack::HasSelection...
...
... eliminating the last dependency of LabelTrack.cpp on LabelTrackView.h
2019-06-20 11:47:55 -04:00
Paul Licameli
f2869597b6
Move code from LabelTrack into LabelTrackView...
...
... and remove many #include directives from LabelTrack
2019-06-20 11:47:55 -04:00
Paul Licameli
6622f494fe
Move code from LabelTrack into LabelTextHandle
2019-06-20 11:47:47 -04:00
Paul Licameli
e0c4a94cfd
Move code from LabelTrack into LabelGlyphHandle
2019-06-20 10:47:26 -04:00
Paul Licameli
822183febc
Remove friend LabelDefaultClickHandle
2019-06-20 10:47:26 -04:00
Paul Licameli
c9fa8424ce
Move declarations again, to LabelTextHandle; remove a friend
2019-06-20 10:47:26 -04:00
Paul Licameli
bbc465920b
Public functions get, set highlight boundaries, hit-test on text
2019-06-20 10:47:26 -04:00
Paul Licameli
6af9187003
Move declarations again, to LabelGlyphHandle; remove a friend
2019-06-20 10:47:25 -04:00
Paul Licameli
5eb5e24ab0
Make some hit testing utilities of LabelTrackView static and public
2019-06-20 10:47:25 -04:00
Paul Licameli
e3efd52026
Move many declarations into LabelTrackView & define its Copy()
2019-06-20 10:47:25 -04:00
Paul Licameli
604fbd0a2c
Addition, deletion, sort of Labels communicated by events...
...
... and LabelTrack listens to its own events, to update certain state.
This is roundabout for now, but that state is view-related and will move into
another class.
2019-06-20 10:47:25 -04:00
Paul Licameli
aa5f9550bd
LabelTrackView, not LabelTrack, handles focus changes when adding
2019-06-20 10:47:25 -04:00
Paul Licameli
8ff5a4b345
Do without some friend declarations in LabelTrack...
...
... and leave "updated" alone, it's only for use in interactive dragging
2019-06-20 10:47:25 -04:00
Paul Licameli
0750f62e88
Track::SetSelected is not virtual...
...
... which will simplify later rewrites that associate selection state with
the track group, not the track.
Since LabelTrack isn't notified immediately of selection changes, instead it
always tests whether it is selected, before using the stored selected label
index.
2019-06-20 10:47:25 -04:00
Paul Licameli
0cecc6e48d
Remove unnecessary assertion, that failed...
...
... Because, as the function now says, the selecting of the track is
purposely done later
2019-06-20 10:47:25 -04:00
Paul Licameli
87ef97abe2
Move code to PlayableTrackControls...
...
... eliminating some duplication in tables for Wave and Note track controls,
and freeing PlayableTrackButtonHandles from the big s.c.c, though in a cycle
yet with PlayableTrackControls
2019-06-19 19:02:56 -04:00
Paul Licameli
674b66128d
New files for PlayableTrackControls
2019-06-19 18:34:48 -04:00
Paul Licameli
6a03e7c84a
Global slider instances for control panels out of TrackPanel.cpp...
...
... and updating of them is accomplished privately in implementation files,
reducing intrusions into TrackPanel and ProjectWindow
This removes #include-s from TrackInfo.cpp, leaving dependency cycles better
than previously
2019-06-19 18:34:47 -04:00
Paul Licameli
627213cb74
Move drawing code specific to Wave or to Note track controls...
...
... making cycles of some TrackControls subclasses with their handles, which
perhaps means those files should be fused, but that's for later
2019-06-19 18:34:47 -04:00
Paul Licameli
52844d9200
Virtual in CommonTrackControls determines what to draw in the TCP...
...
... This adds #include-s to TrackInfo.cpp that temporarily worsen the
dependency cycles
2019-06-19 18:34:45 -04:00
Paul Licameli
63bf49adad
CalcItemY and DefaultTrackHeight into the TrackInfo namespace
2019-06-19 13:59:50 -04:00
Paul Licameli
eccc62f99f
Embed enum in struct definition in namespace in header
2019-06-19 12:59:08 -04:00
Paul Licameli
23b584b529
Move code to TrackInfo.cpp
2019-06-19 12:59:08 -04:00
Paul Licameli
015e3abfe5
New files for TrackInfo
2019-06-19 12:59:02 -04:00
Paul Licameli
f534d7b8d7
ReCreateSliders doesn't need a parent window
2019-06-19 12:58:29 -04:00
Paul Licameli
7466556e21
Move drawing code for TimeTrack...
...
... Freeing 3 files from cycles:
EnvelopeHandle
Mix
TimeTrack
2019-06-19 11:35:48 -04:00
Paul Licameli
63350d8573
TimeTrack drawing not dependent on EnvelopeEditor...
...
... after a static function is moved from EnvelopeEditor to Envelope
2019-06-19 11:35:47 -04:00