mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-01 00:19:27 +02:00
New files for ProjectSelectionManager
This commit is contained in:
parent
186f2f6ac7
commit
997bf9781d
@ -174,6 +174,8 @@ src/ProjectHistory.cpp
|
|||||||
src/ProjectHistory.h
|
src/ProjectHistory.h
|
||||||
src/ProjectManager.cpp
|
src/ProjectManager.cpp
|
||||||
src/ProjectManager.h
|
src/ProjectManager.h
|
||||||
|
src/ProjectSelectionManager.cpp
|
||||||
|
src/ProjectSelectionManager.h
|
||||||
src/ProjectSettings.cpp
|
src/ProjectSettings.cpp
|
||||||
src/ProjectSettings.h
|
src/ProjectSettings.h
|
||||||
src/ProjectWindow.cpp
|
src/ProjectWindow.cpp
|
||||||
|
@ -1245,6 +1245,7 @@
|
|||||||
5E36A0B0217FA2430068E082 /* WindowMenus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E36A0A7217FA2430068E082 /* WindowMenus.cpp */; };
|
5E36A0B0217FA2430068E082 /* WindowMenus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E36A0A7217FA2430068E082 /* WindowMenus.cpp */; };
|
||||||
5E36A0B2217FC5A10068E082 /* (null) in Sources */ = {isa = PBXBuildFile; };
|
5E36A0B2217FC5A10068E082 /* (null) in Sources */ = {isa = PBXBuildFile; };
|
||||||
5E36A0B4217FC6540068E082 /* HelpMenus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E36A0B3217FC6540068E082 /* HelpMenus.cpp */; };
|
5E36A0B4217FC6540068E082 /* HelpMenus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E36A0B3217FC6540068E082 /* HelpMenus.cpp */; };
|
||||||
|
5E3A530822AD277A00C4ADB8 /* ProjectSelectionManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E3A530622AD277A00C4ADB8 /* ProjectSelectionManager.cpp */; };
|
||||||
5E3FFE721EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E3FFE701EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp */; };
|
5E3FFE721EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E3FFE701EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp */; };
|
||||||
5E667A601F0BEE5F00C942A5 /* WaveTrackVZoomHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E667A5E1F0BEE5F00C942A5 /* WaveTrackVZoomHandle.cpp */; };
|
5E667A601F0BEE5F00C942A5 /* WaveTrackVZoomHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E667A5E1F0BEE5F00C942A5 /* WaveTrackVZoomHandle.cpp */; };
|
||||||
5E667A651F0BEE8C00C942A5 /* NoteTrackButtonHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E667A611F0BEE8C00C942A5 /* NoteTrackButtonHandle.cpp */; };
|
5E667A651F0BEE8C00C942A5 /* NoteTrackButtonHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E667A611F0BEE8C00C942A5 /* NoteTrackButtonHandle.cpp */; };
|
||||||
@ -3237,6 +3238,8 @@
|
|||||||
5E36A0A6217FA2430068E082 /* ViewMenus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ViewMenus.cpp; path = menus/ViewMenus.cpp; sourceTree = "<group>"; };
|
5E36A0A6217FA2430068E082 /* ViewMenus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ViewMenus.cpp; path = menus/ViewMenus.cpp; sourceTree = "<group>"; };
|
||||||
5E36A0A7217FA2430068E082 /* WindowMenus.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = WindowMenus.cpp; path = menus/WindowMenus.cpp; sourceTree = "<group>"; };
|
5E36A0A7217FA2430068E082 /* WindowMenus.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = WindowMenus.cpp; path = menus/WindowMenus.cpp; sourceTree = "<group>"; };
|
||||||
5E36A0B3217FC6540068E082 /* HelpMenus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HelpMenus.cpp; path = menus/HelpMenus.cpp; sourceTree = "<group>"; };
|
5E36A0B3217FC6540068E082 /* HelpMenus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HelpMenus.cpp; path = menus/HelpMenus.cpp; sourceTree = "<group>"; };
|
||||||
|
5E3A530622AD277A00C4ADB8 /* ProjectSelectionManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProjectSelectionManager.cpp; sourceTree = "<group>"; };
|
||||||
|
5E3A530722AD277A00C4ADB8 /* ProjectSelectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectSelectionManager.h; sourceTree = "<group>"; };
|
||||||
5E3FFE701EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NoteTrackSliderHandles.cpp; sourceTree = "<group>"; };
|
5E3FFE701EC9032B0020F7C9 /* NoteTrackSliderHandles.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NoteTrackSliderHandles.cpp; sourceTree = "<group>"; };
|
||||||
5E3FFE711EC9032B0020F7C9 /* NoteTrackSliderHandles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoteTrackSliderHandles.h; sourceTree = "<group>"; };
|
5E3FFE711EC9032B0020F7C9 /* NoteTrackSliderHandles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoteTrackSliderHandles.h; sourceTree = "<group>"; };
|
||||||
5E4685F81CCA9D84008741F2 /* CommandFunctors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommandFunctors.h; sourceTree = "<group>"; };
|
5E4685F81CCA9D84008741F2 /* CommandFunctors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommandFunctors.h; sourceTree = "<group>"; };
|
||||||
@ -4390,6 +4393,7 @@
|
|||||||
5ECF728C228B307E007F2A35 /* ProjectFSCK.cpp */,
|
5ECF728C228B307E007F2A35 /* ProjectFSCK.cpp */,
|
||||||
5EB15A1E22A94043009FEC89 /* ProjectHistory.cpp */,
|
5EB15A1E22A94043009FEC89 /* ProjectHistory.cpp */,
|
||||||
5E135A3A229EDF2E0076E983 /* ProjectManager.cpp */,
|
5E135A3A229EDF2E0076E983 /* ProjectManager.cpp */,
|
||||||
|
5E3A530622AD277A00C4ADB8 /* ProjectSelectionManager.cpp */,
|
||||||
5E135A34229EDBE80076E983 /* ProjectSettings.cpp */,
|
5E135A34229EDBE80076E983 /* ProjectSettings.cpp */,
|
||||||
5E135A46229EE5530076E983 /* ProjectWindow.cpp */,
|
5E135A46229EE5530076E983 /* ProjectWindow.cpp */,
|
||||||
28DABFBC0FF19DB100AC7848 /* RealFFTf.cpp */,
|
28DABFBC0FF19DB100AC7848 /* RealFFTf.cpp */,
|
||||||
@ -4513,6 +4517,7 @@
|
|||||||
5ECF728B228B307E007F2A35 /* ProjectFSCK.h */,
|
5ECF728B228B307E007F2A35 /* ProjectFSCK.h */,
|
||||||
5EB15A1F22A94043009FEC89 /* ProjectHistory.h */,
|
5EB15A1F22A94043009FEC89 /* ProjectHistory.h */,
|
||||||
5E135A3B229EDF2E0076E983 /* ProjectManager.h */,
|
5E135A3B229EDF2E0076E983 /* ProjectManager.h */,
|
||||||
|
5E3A530722AD277A00C4ADB8 /* ProjectSelectionManager.h */,
|
||||||
5E135A35229EDBE80076E983 /* ProjectSettings.h */,
|
5E135A35229EDBE80076E983 /* ProjectSettings.h */,
|
||||||
5E135A47229EE5530076E983 /* ProjectWindow.h */,
|
5E135A47229EE5530076E983 /* ProjectWindow.h */,
|
||||||
28DABFBD0FF19DB100AC7848 /* RealFFTf.h */,
|
28DABFBD0FF19DB100AC7848 /* RealFFTf.h */,
|
||||||
@ -8547,6 +8552,7 @@
|
|||||||
28B97B890FBF771A0076CF28 /* VSTEffect.cpp in Sources */,
|
28B97B890FBF771A0076CF28 /* VSTEffect.cpp in Sources */,
|
||||||
284B279A0FC66864005EAC96 /* DevicePrefs.cpp in Sources */,
|
284B279A0FC66864005EAC96 /* DevicePrefs.cpp in Sources */,
|
||||||
284B279B0FC66864005EAC96 /* ImportExportPrefs.cpp in Sources */,
|
284B279B0FC66864005EAC96 /* ImportExportPrefs.cpp in Sources */,
|
||||||
|
5E3A530822AD277A00C4ADB8 /* ProjectSelectionManager.cpp in Sources */,
|
||||||
284B279C0FC66864005EAC96 /* LibraryPrefs.cpp in Sources */,
|
284B279C0FC66864005EAC96 /* LibraryPrefs.cpp in Sources */,
|
||||||
5E15126E1DB0010C00702E29 /* TrackControls.cpp in Sources */,
|
5E15126E1DB0010C00702E29 /* TrackControls.cpp in Sources */,
|
||||||
5EA0182A1EC7B226001F2996 /* NoteTrackVRulerControls.cpp in Sources */,
|
5EA0182A1EC7B226001F2996 /* NoteTrackVRulerControls.cpp in Sources */,
|
||||||
|
@ -225,6 +225,8 @@ audacity_SOURCES = \
|
|||||||
ProjectHistory.h \
|
ProjectHistory.h \
|
||||||
ProjectManager.cpp \
|
ProjectManager.cpp \
|
||||||
ProjectManager.h \
|
ProjectManager.h \
|
||||||
|
ProjectSelectionManager.cpp \
|
||||||
|
ProjectSelectionManager.h \
|
||||||
ProjectSettings.cpp \
|
ProjectSettings.cpp \
|
||||||
ProjectSettings.h \
|
ProjectSettings.h \
|
||||||
ProjectWindow.cpp \
|
ProjectWindow.cpp \
|
||||||
|
@ -325,15 +325,16 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
|
|||||||
ProjectFileIO.cpp ProjectFileIO.h ProjectFileIORegistry.cpp \
|
ProjectFileIO.cpp ProjectFileIO.h ProjectFileIORegistry.cpp \
|
||||||
ProjectFileIORegistry.h ProjectFSCK.cpp ProjectFSCK.h \
|
ProjectFileIORegistry.h ProjectFSCK.cpp ProjectFSCK.h \
|
||||||
ProjectHistory.cpp ProjectHistory.h ProjectManager.cpp \
|
ProjectHistory.cpp ProjectHistory.h ProjectManager.cpp \
|
||||||
ProjectManager.h ProjectSettings.cpp ProjectSettings.h \
|
ProjectManager.h ProjectSelectionManager.cpp \
|
||||||
ProjectWindow.cpp ProjectWindow.h RealFFTf.cpp RealFFTf.h \
|
ProjectSelectionManager.h ProjectSettings.cpp \
|
||||||
RealFFTf48x.cpp RealFFTf48x.h RefreshCode.h Resample.cpp \
|
ProjectSettings.h ProjectWindow.cpp ProjectWindow.h \
|
||||||
Resample.h RevisionIdent.h RingBuffer.cpp RingBuffer.h \
|
RealFFTf.cpp RealFFTf.h RealFFTf48x.cpp RealFFTf48x.h \
|
||||||
Screenshot.cpp Screenshot.h SelectedRegion.cpp \
|
RefreshCode.h Resample.cpp Resample.h RevisionIdent.h \
|
||||||
SelectedRegion.h SelectionState.cpp SelectionState.h \
|
RingBuffer.cpp RingBuffer.h Screenshot.cpp Screenshot.h \
|
||||||
Shuttle.cpp Shuttle.h ShuttleGetDefinition.cpp \
|
SelectedRegion.cpp SelectedRegion.h SelectionState.cpp \
|
||||||
ShuttleGetDefinition.h ShuttleGui.cpp ShuttleGui.h \
|
SelectionState.h Shuttle.cpp Shuttle.h \
|
||||||
ShuttlePrefs.cpp ShuttlePrefs.h Snap.cpp Snap.h \
|
ShuttleGetDefinition.cpp ShuttleGetDefinition.h ShuttleGui.cpp \
|
||||||
|
ShuttleGui.h ShuttlePrefs.cpp ShuttlePrefs.h Snap.cpp Snap.h \
|
||||||
SoundActivatedRecord.cpp SoundActivatedRecord.h Spectrum.cpp \
|
SoundActivatedRecord.cpp SoundActivatedRecord.h Spectrum.cpp \
|
||||||
Spectrum.h SplashDialog.cpp SplashDialog.h SseMathFuncs.cpp \
|
Spectrum.h SplashDialog.cpp SplashDialog.h SseMathFuncs.cpp \
|
||||||
SseMathFuncs.h Tags.cpp Tags.h Theme.cpp Theme.h \
|
SseMathFuncs.h Tags.cpp Tags.h Theme.cpp Theme.h \
|
||||||
@ -677,6 +678,7 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
|
|||||||
audacity-ProjectFSCK.$(OBJEXT) \
|
audacity-ProjectFSCK.$(OBJEXT) \
|
||||||
audacity-ProjectHistory.$(OBJEXT) \
|
audacity-ProjectHistory.$(OBJEXT) \
|
||||||
audacity-ProjectManager.$(OBJEXT) \
|
audacity-ProjectManager.$(OBJEXT) \
|
||||||
|
audacity-ProjectSelectionManager.$(OBJEXT) \
|
||||||
audacity-ProjectSettings.$(OBJEXT) \
|
audacity-ProjectSettings.$(OBJEXT) \
|
||||||
audacity-ProjectWindow.$(OBJEXT) audacity-RealFFTf.$(OBJEXT) \
|
audacity-ProjectWindow.$(OBJEXT) audacity-RealFFTf.$(OBJEXT) \
|
||||||
audacity-RealFFTf48x.$(OBJEXT) audacity-Resample.$(OBJEXT) \
|
audacity-RealFFTf48x.$(OBJEXT) audacity-Resample.$(OBJEXT) \
|
||||||
@ -1400,15 +1402,16 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
|
|||||||
ProjectFileIO.cpp ProjectFileIO.h ProjectFileIORegistry.cpp \
|
ProjectFileIO.cpp ProjectFileIO.h ProjectFileIORegistry.cpp \
|
||||||
ProjectFileIORegistry.h ProjectFSCK.cpp ProjectFSCK.h \
|
ProjectFileIORegistry.h ProjectFSCK.cpp ProjectFSCK.h \
|
||||||
ProjectHistory.cpp ProjectHistory.h ProjectManager.cpp \
|
ProjectHistory.cpp ProjectHistory.h ProjectManager.cpp \
|
||||||
ProjectManager.h ProjectSettings.cpp ProjectSettings.h \
|
ProjectManager.h ProjectSelectionManager.cpp \
|
||||||
ProjectWindow.cpp ProjectWindow.h RealFFTf.cpp RealFFTf.h \
|
ProjectSelectionManager.h ProjectSettings.cpp \
|
||||||
RealFFTf48x.cpp RealFFTf48x.h RefreshCode.h Resample.cpp \
|
ProjectSettings.h ProjectWindow.cpp ProjectWindow.h \
|
||||||
Resample.h RevisionIdent.h RingBuffer.cpp RingBuffer.h \
|
RealFFTf.cpp RealFFTf.h RealFFTf48x.cpp RealFFTf48x.h \
|
||||||
Screenshot.cpp Screenshot.h SelectedRegion.cpp \
|
RefreshCode.h Resample.cpp Resample.h RevisionIdent.h \
|
||||||
SelectedRegion.h SelectionState.cpp SelectionState.h \
|
RingBuffer.cpp RingBuffer.h Screenshot.cpp Screenshot.h \
|
||||||
Shuttle.cpp Shuttle.h ShuttleGetDefinition.cpp \
|
SelectedRegion.cpp SelectedRegion.h SelectionState.cpp \
|
||||||
ShuttleGetDefinition.h ShuttleGui.cpp ShuttleGui.h \
|
SelectionState.h Shuttle.cpp Shuttle.h \
|
||||||
ShuttlePrefs.cpp ShuttlePrefs.h Snap.cpp Snap.h \
|
ShuttleGetDefinition.cpp ShuttleGetDefinition.h ShuttleGui.cpp \
|
||||||
|
ShuttleGui.h ShuttlePrefs.cpp ShuttlePrefs.h Snap.cpp Snap.h \
|
||||||
SoundActivatedRecord.cpp SoundActivatedRecord.h Spectrum.cpp \
|
SoundActivatedRecord.cpp SoundActivatedRecord.h Spectrum.cpp \
|
||||||
Spectrum.h SplashDialog.cpp SplashDialog.h SseMathFuncs.cpp \
|
Spectrum.h SplashDialog.cpp SplashDialog.h SseMathFuncs.cpp \
|
||||||
SseMathFuncs.h Tags.cpp Tags.h Theme.cpp Theme.h \
|
SseMathFuncs.h Tags.cpp Tags.h Theme.cpp Theme.h \
|
||||||
@ -2583,6 +2586,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIORegistry.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectFileIORegistry.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectHistory.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectHistory.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectManager.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectManager.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSelectionManager.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSettings.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectSettings.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectWindow.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ProjectWindow.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-RealFFTf.Po@am__quote@
|
||||||
@ -4098,6 +4102,20 @@ audacity-ProjectManager.obj: ProjectManager.cpp
|
|||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-ProjectManager.obj `if test -f 'ProjectManager.cpp'; then $(CYGPATH_W) 'ProjectManager.cpp'; else $(CYGPATH_W) '$(srcdir)/ProjectManager.cpp'; fi`
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-ProjectManager.obj `if test -f 'ProjectManager.cpp'; then $(CYGPATH_W) 'ProjectManager.cpp'; else $(CYGPATH_W) '$(srcdir)/ProjectManager.cpp'; fi`
|
||||||
|
|
||||||
|
audacity-ProjectSelectionManager.o: ProjectSelectionManager.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-ProjectSelectionManager.o -MD -MP -MF $(DEPDIR)/audacity-ProjectSelectionManager.Tpo -c -o audacity-ProjectSelectionManager.o `test -f 'ProjectSelectionManager.cpp' || echo '$(srcdir)/'`ProjectSelectionManager.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-ProjectSelectionManager.Tpo $(DEPDIR)/audacity-ProjectSelectionManager.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ProjectSelectionManager.cpp' object='audacity-ProjectSelectionManager.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-ProjectSelectionManager.o `test -f 'ProjectSelectionManager.cpp' || echo '$(srcdir)/'`ProjectSelectionManager.cpp
|
||||||
|
|
||||||
|
audacity-ProjectSelectionManager.obj: ProjectSelectionManager.cpp
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-ProjectSelectionManager.obj -MD -MP -MF $(DEPDIR)/audacity-ProjectSelectionManager.Tpo -c -o audacity-ProjectSelectionManager.obj `if test -f 'ProjectSelectionManager.cpp'; then $(CYGPATH_W) 'ProjectSelectionManager.cpp'; else $(CYGPATH_W) '$(srcdir)/ProjectSelectionManager.cpp'; fi`
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-ProjectSelectionManager.Tpo $(DEPDIR)/audacity-ProjectSelectionManager.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ProjectSelectionManager.cpp' object='audacity-ProjectSelectionManager.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-ProjectSelectionManager.obj `if test -f 'ProjectSelectionManager.cpp'; then $(CYGPATH_W) 'ProjectSelectionManager.cpp'; else $(CYGPATH_W) '$(srcdir)/ProjectSelectionManager.cpp'; fi`
|
||||||
|
|
||||||
audacity-ProjectSettings.o: ProjectSettings.cpp
|
audacity-ProjectSettings.o: ProjectSettings.cpp
|
||||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-ProjectSettings.o -MD -MP -MF $(DEPDIR)/audacity-ProjectSettings.Tpo -c -o audacity-ProjectSettings.o `test -f 'ProjectSettings.cpp' || echo '$(srcdir)/'`ProjectSettings.cpp
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-ProjectSettings.o -MD -MP -MF $(DEPDIR)/audacity-ProjectSettings.Tpo -c -o audacity-ProjectSettings.o `test -f 'ProjectSettings.cpp' || echo '$(srcdir)/'`ProjectSettings.cpp
|
||||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-ProjectSettings.Tpo $(DEPDIR)/audacity-ProjectSettings.Po
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-ProjectSettings.Tpo $(DEPDIR)/audacity-ProjectSettings.Po
|
||||||
|
@ -31,10 +31,10 @@ Paul Licameli split from AudacityProject.cpp
|
|||||||
#include "ProjectFileIORegistry.h"
|
#include "ProjectFileIORegistry.h"
|
||||||
#include "ProjectFSCK.h"
|
#include "ProjectFSCK.h"
|
||||||
#include "ProjectHistory.h"
|
#include "ProjectHistory.h"
|
||||||
|
#include "ProjectSelectionManager.h"
|
||||||
#include "ProjectSettings.h"
|
#include "ProjectSettings.h"
|
||||||
#include "ProjectWindow.h"
|
#include "ProjectWindow.h"
|
||||||
#include "Sequence.h"
|
#include "Sequence.h"
|
||||||
#include "Snap.h"
|
|
||||||
#include "Tags.h"
|
#include "Tags.h"
|
||||||
#include "TrackPanel.h"
|
#include "TrackPanel.h"
|
||||||
#include "UndoManager.h"
|
#include "UndoManager.h"
|
||||||
@ -61,33 +61,6 @@ Paul Licameli split from AudacityProject.cpp
|
|||||||
|
|
||||||
const int AudacityProjectTimerID = 5200;
|
const int AudacityProjectTimerID = 5200;
|
||||||
|
|
||||||
static AudacityProject::AttachedObjects::RegisteredFactory
|
|
||||||
sProjectSelectionManagerKey {
|
|
||||||
[]( AudacityProject &project ) {
|
|
||||||
return std::make_shared< ProjectSelectionManager >( project );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ProjectSelectionManager &ProjectSelectionManager::Get(
|
|
||||||
AudacityProject &project )
|
|
||||||
{
|
|
||||||
return project.AttachedObjects::Get< ProjectSelectionManager >(
|
|
||||||
sProjectSelectionManagerKey );
|
|
||||||
}
|
|
||||||
|
|
||||||
const ProjectSelectionManager &ProjectSelectionManager::Get(
|
|
||||||
const AudacityProject &project )
|
|
||||||
{
|
|
||||||
return Get( const_cast< AudacityProject & >( project ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
ProjectSelectionManager::ProjectSelectionManager( AudacityProject &project )
|
|
||||||
: mProject{ project }
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ProjectSelectionManager::~ProjectSelectionManager() = default;
|
|
||||||
|
|
||||||
static AudacityProject::AttachedObjects::RegisteredFactory sProjectManagerKey {
|
static AudacityProject::AttachedObjects::RegisteredFactory sProjectManagerKey {
|
||||||
[]( AudacityProject &project ) {
|
[]( AudacityProject &project ) {
|
||||||
return std::make_shared< ProjectManager >( project );
|
return std::make_shared< ProjectManager >( project );
|
||||||
@ -447,204 +420,6 @@ AudacityProject *ProjectManager::New()
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProjectSelectionManager::SnapSelection()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
auto &window = ProjectWindow::Get( project );
|
|
||||||
auto snapTo = settings.GetSnapTo();
|
|
||||||
if (snapTo != SNAP_OFF) {
|
|
||||||
auto &viewInfo = ViewInfo::Get( project );
|
|
||||||
SelectedRegion &selectedRegion = viewInfo.selectedRegion;
|
|
||||||
NumericConverter nc(NumericConverter::TIME,
|
|
||||||
settings.GetSelectionFormat(), 0, settings.GetRate());
|
|
||||||
const bool nearest = (snapTo == SNAP_NEAREST);
|
|
||||||
|
|
||||||
const double oldt0 = selectedRegion.t0();
|
|
||||||
const double oldt1 = selectedRegion.t1();
|
|
||||||
|
|
||||||
nc.ValueToControls(oldt0, nearest);
|
|
||||||
nc.ControlsToValue();
|
|
||||||
const double t0 = nc.GetValue();
|
|
||||||
|
|
||||||
nc.ValueToControls(oldt1, nearest);
|
|
||||||
nc.ControlsToValue();
|
|
||||||
const double t1 = nc.GetValue();
|
|
||||||
|
|
||||||
if (t0 != oldt0 || t1 != oldt1) {
|
|
||||||
selectedRegion.setTimes(t0, t1);
|
|
||||||
window.TP_DisplaySelection();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
double ProjectSelectionManager::AS_GetRate()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
return settings.GetRate();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typically this came from the SelectionToolbar and does not need to
|
|
||||||
// be communicated back to it.
|
|
||||||
void ProjectSelectionManager::AS_SetRate(double rate)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
settings.SetRate( rate );
|
|
||||||
}
|
|
||||||
|
|
||||||
int ProjectSelectionManager::AS_GetSnapTo()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
return settings.GetSnapTo();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::AS_SetSnapTo(int snap)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
auto &window = ProjectWindow::Get( project );
|
|
||||||
|
|
||||||
settings.SetSnapTo( snap );
|
|
||||||
|
|
||||||
// LLL: TODO - what should this be changed to???
|
|
||||||
// GetCommandManager()->Check(wxT("Snap"), mSnapTo);
|
|
||||||
gPrefs->Write(wxT("/SnapTo"), snap);
|
|
||||||
gPrefs->Flush();
|
|
||||||
|
|
||||||
SnapSelection();
|
|
||||||
|
|
||||||
window.RedrawProject();
|
|
||||||
|
|
||||||
SelectionBar::Get( project ).SetSnapTo(snap);
|
|
||||||
}
|
|
||||||
|
|
||||||
const NumericFormatSymbol & ProjectSelectionManager::AS_GetSelectionFormat()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
return settings.GetSelectionFormat();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::AS_SetSelectionFormat(
|
|
||||||
const NumericFormatSymbol & format)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
settings.SetSelectionFormat( format );
|
|
||||||
|
|
||||||
gPrefs->Write(wxT("/SelectionFormat"), format.Internal());
|
|
||||||
gPrefs->Flush();
|
|
||||||
|
|
||||||
if (SnapSelection())
|
|
||||||
TrackPanel::Get( project ).Refresh(false);
|
|
||||||
|
|
||||||
SelectionBar::Get( project ).SetSelectionFormat(format);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::AS_ModifySelection(
|
|
||||||
double &start, double &end, bool done)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &history = ProjectHistory::Get( project );
|
|
||||||
auto &trackPanel = TrackPanel::Get( project );
|
|
||||||
auto &viewInfo = ViewInfo::Get( project );
|
|
||||||
viewInfo.selectedRegion.setTimes(start, end);
|
|
||||||
trackPanel.Refresh(false);
|
|
||||||
if (done) {
|
|
||||||
history.ModifyState(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
double ProjectSelectionManager::SSBL_GetRate() const
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
auto &tracks = TrackList::Get( project );
|
|
||||||
// Return maximum of project rate and all track rates.
|
|
||||||
return std::max( settings.GetRate(),
|
|
||||||
tracks.Any<const WaveTrack>().max( &WaveTrack::GetRate ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
const NumericFormatSymbol &
|
|
||||||
ProjectSelectionManager::SSBL_GetFrequencySelectionFormatName()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
return settings.GetFrequencySelectionFormatName();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::SSBL_SetFrequencySelectionFormatName(
|
|
||||||
const NumericFormatSymbol & formatName)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
|
|
||||||
settings.SetFrequencySelectionFormatName( formatName );
|
|
||||||
|
|
||||||
gPrefs->Write(wxT("/FrequencySelectionFormatName"),
|
|
||||||
formatName.Internal());
|
|
||||||
gPrefs->Flush();
|
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
||||||
SpectralSelectionBar::Get( project ).SetFrequencySelectionFormatName(formatName);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
const NumericFormatSymbol &
|
|
||||||
ProjectSelectionManager::SSBL_GetBandwidthSelectionFormatName()
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
return settings.GetBandwidthSelectionFormatName();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::SSBL_SetBandwidthSelectionFormatName(
|
|
||||||
const NumericFormatSymbol & formatName)
|
|
||||||
{
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &settings = ProjectSettings::Get( project );
|
|
||||||
|
|
||||||
settings.SetBandwidthSelectionFormatName( formatName );
|
|
||||||
|
|
||||||
gPrefs->Write(wxT("/BandwidthSelectionFormatName"),
|
|
||||||
formatName.Internal());
|
|
||||||
gPrefs->Flush();
|
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
||||||
SpectralSelectionBar::Get( project ).SetBandwidthSelectionFormatName(formatName);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProjectSelectionManager::SSBL_ModifySpectralSelection(
|
|
||||||
double &bottom, double &top, bool done)
|
|
||||||
{
|
|
||||||
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
||||||
auto &project = mProject;
|
|
||||||
auto &history = ProjectHistory::Get( project );
|
|
||||||
auto &trackPanel = TrackPanel::Get( project );
|
|
||||||
auto &viewInfo = ViewInfo::Get( project );
|
|
||||||
|
|
||||||
double nyq = SSBL_GetRate() / 2.0;
|
|
||||||
if (bottom >= 0.0)
|
|
||||||
bottom = std::min(nyq, bottom);
|
|
||||||
if (top >= 0.0)
|
|
||||||
top = std::min(nyq, top);
|
|
||||||
viewInfo.selectedRegion.setFrequencies(bottom, top);
|
|
||||||
trackPanel.Refresh(false);
|
|
||||||
if (done) {
|
|
||||||
history.ModifyState(false);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
bottom; top; done;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// LL: All objects that have a reference to the DirManager should
|
// LL: All objects that have a reference to the DirManager should
|
||||||
// be deleted before the final mDirManager->Deref() in this
|
// be deleted before the final mDirManager->Deref() in this
|
||||||
// routine. Failing to do so can cause unwanted recursion
|
// routine. Failing to do so can cause unwanted recursion
|
||||||
|
@ -16,8 +16,6 @@ Paul Licameli split from AudacityProject.h
|
|||||||
|
|
||||||
#include <wx/event.h> // to inherit
|
#include <wx/event.h> // to inherit
|
||||||
#include "ClientData.h" // to inherit
|
#include "ClientData.h" // to inherit
|
||||||
#include "toolbars/SelectionBarListener.h" // to inherit
|
|
||||||
#include "toolbars/SpectralSelectionBarListener.h" // to inherit
|
|
||||||
#include "import/ImportRaw.h" // defines TrackHolders
|
#include "import/ImportRaw.h" // defines TrackHolders
|
||||||
|
|
||||||
class wxTimer;
|
class wxTimer;
|
||||||
@ -34,44 +32,6 @@ namespace ProjectFileIORegistry{ struct Entry; }
|
|||||||
|
|
||||||
using WaveTrackArray = std::vector < std::shared_ptr < WaveTrack > >;
|
using WaveTrackArray = std::vector < std::shared_ptr < WaveTrack > >;
|
||||||
|
|
||||||
class ProjectSelectionManager final
|
|
||||||
: public ClientData::Base
|
|
||||||
, public SelectionBarListener
|
|
||||||
, public SpectralSelectionBarListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static ProjectSelectionManager &Get( AudacityProject &project );
|
|
||||||
static const ProjectSelectionManager &Get( const AudacityProject &project );
|
|
||||||
|
|
||||||
explicit ProjectSelectionManager( AudacityProject &project );
|
|
||||||
~ProjectSelectionManager() override;
|
|
||||||
|
|
||||||
// SelectionBarListener callback methods
|
|
||||||
double AS_GetRate() override;
|
|
||||||
void AS_SetRate(double rate) override;
|
|
||||||
int AS_GetSnapTo() override;
|
|
||||||
void AS_SetSnapTo(int snap) override;
|
|
||||||
const NumericFormatSymbol & AS_GetSelectionFormat() override;
|
|
||||||
void AS_SetSelectionFormat(const NumericFormatSymbol & format) override;
|
|
||||||
void AS_ModifySelection(double &start, double &end, bool done) override;
|
|
||||||
|
|
||||||
// SpectralSelectionBarListener callback methods
|
|
||||||
double SSBL_GetRate() const override;
|
|
||||||
const NumericFormatSymbol & SSBL_GetFrequencySelectionFormatName() override;
|
|
||||||
void SSBL_SetFrequencySelectionFormatName(
|
|
||||||
const NumericFormatSymbol & formatName) override;
|
|
||||||
const NumericFormatSymbol & SSBL_GetBandwidthSelectionFormatName() override;
|
|
||||||
void SSBL_SetBandwidthSelectionFormatName(
|
|
||||||
const NumericFormatSymbol & formatName) override;
|
|
||||||
void SSBL_ModifySpectralSelection(
|
|
||||||
double &bottom, double &top, bool done) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
bool SnapSelection();
|
|
||||||
|
|
||||||
AudacityProject &mProject;
|
|
||||||
};
|
|
||||||
|
|
||||||
///\brief Object associated with a project for high-level management of the
|
///\brief Object associated with a project for high-level management of the
|
||||||
/// project's lifetime, including creation, destruction, opening from file,
|
/// project's lifetime, including creation, destruction, opening from file,
|
||||||
/// importing, pushing undo states, and reverting to saved states
|
/// importing, pushing undo states, and reverting to saved states
|
||||||
|
249
src/ProjectSelectionManager.cpp
Normal file
249
src/ProjectSelectionManager.cpp
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Audacity: A Digital Audio Editor
|
||||||
|
|
||||||
|
ProjectSelectionManager.cpp
|
||||||
|
|
||||||
|
Paul Licameli split from ProjectManager.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#include "ProjectSelectionManager.h"
|
||||||
|
|
||||||
|
#include "Experimental.h"
|
||||||
|
|
||||||
|
#include "Project.h"
|
||||||
|
#include "ProjectHistory.h"
|
||||||
|
#include "ProjectSettings.h"
|
||||||
|
#include "ProjectWindow.h"
|
||||||
|
#include "Snap.h"
|
||||||
|
#include "TrackPanel.h"
|
||||||
|
#include "ViewInfo.h"
|
||||||
|
#include "WaveTrack.h"
|
||||||
|
#include "toolbars/SelectionBar.h"
|
||||||
|
#include "toolbars/SpectralSelectionBar.h"
|
||||||
|
|
||||||
|
static AudacityProject::AttachedObjects::RegisteredFactory
|
||||||
|
sProjectSelectionManagerKey {
|
||||||
|
[]( AudacityProject &project ) {
|
||||||
|
return std::make_shared< ProjectSelectionManager >( project );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ProjectSelectionManager &ProjectSelectionManager::Get(
|
||||||
|
AudacityProject &project )
|
||||||
|
{
|
||||||
|
return project.AttachedObjects::Get< ProjectSelectionManager >(
|
||||||
|
sProjectSelectionManagerKey );
|
||||||
|
}
|
||||||
|
|
||||||
|
const ProjectSelectionManager &ProjectSelectionManager::Get(
|
||||||
|
const AudacityProject &project )
|
||||||
|
{
|
||||||
|
return Get( const_cast< AudacityProject & >( project ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
ProjectSelectionManager::ProjectSelectionManager( AudacityProject &project )
|
||||||
|
: mProject{ project }
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ProjectSelectionManager::~ProjectSelectionManager() = default;
|
||||||
|
|
||||||
|
bool ProjectSelectionManager::SnapSelection()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
auto &window = ProjectWindow::Get( project );
|
||||||
|
auto snapTo = settings.GetSnapTo();
|
||||||
|
if (snapTo != SNAP_OFF) {
|
||||||
|
auto &viewInfo = ViewInfo::Get( project );
|
||||||
|
SelectedRegion &selectedRegion = viewInfo.selectedRegion;
|
||||||
|
NumericConverter nc(NumericConverter::TIME,
|
||||||
|
settings.GetSelectionFormat(), 0, settings.GetRate());
|
||||||
|
const bool nearest = (snapTo == SNAP_NEAREST);
|
||||||
|
|
||||||
|
const double oldt0 = selectedRegion.t0();
|
||||||
|
const double oldt1 = selectedRegion.t1();
|
||||||
|
|
||||||
|
nc.ValueToControls(oldt0, nearest);
|
||||||
|
nc.ControlsToValue();
|
||||||
|
const double t0 = nc.GetValue();
|
||||||
|
|
||||||
|
nc.ValueToControls(oldt1, nearest);
|
||||||
|
nc.ControlsToValue();
|
||||||
|
const double t1 = nc.GetValue();
|
||||||
|
|
||||||
|
if (t0 != oldt0 || t1 != oldt1) {
|
||||||
|
selectedRegion.setTimes(t0, t1);
|
||||||
|
window.TP_DisplaySelection();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
double ProjectSelectionManager::AS_GetRate()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
return settings.GetRate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Typically this came from the SelectionToolbar and does not need to
|
||||||
|
// be communicated back to it.
|
||||||
|
void ProjectSelectionManager::AS_SetRate(double rate)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
settings.SetRate( rate );
|
||||||
|
}
|
||||||
|
|
||||||
|
int ProjectSelectionManager::AS_GetSnapTo()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
return settings.GetSnapTo();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::AS_SetSnapTo(int snap)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
auto &window = ProjectWindow::Get( project );
|
||||||
|
|
||||||
|
settings.SetSnapTo( snap );
|
||||||
|
|
||||||
|
// LLL: TODO - what should this be changed to???
|
||||||
|
// GetCommandManager()->Check(wxT("Snap"), mSnapTo);
|
||||||
|
gPrefs->Write(wxT("/SnapTo"), snap);
|
||||||
|
gPrefs->Flush();
|
||||||
|
|
||||||
|
SnapSelection();
|
||||||
|
|
||||||
|
window.RedrawProject();
|
||||||
|
|
||||||
|
SelectionBar::Get( project ).SetSnapTo(snap);
|
||||||
|
}
|
||||||
|
|
||||||
|
const NumericFormatSymbol & ProjectSelectionManager::AS_GetSelectionFormat()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
return settings.GetSelectionFormat();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::AS_SetSelectionFormat(
|
||||||
|
const NumericFormatSymbol & format)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
settings.SetSelectionFormat( format );
|
||||||
|
|
||||||
|
gPrefs->Write(wxT("/SelectionFormat"), format.Internal());
|
||||||
|
gPrefs->Flush();
|
||||||
|
|
||||||
|
if (SnapSelection())
|
||||||
|
TrackPanel::Get( project ).Refresh(false);
|
||||||
|
|
||||||
|
SelectionBar::Get( project ).SetSelectionFormat(format);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::AS_ModifySelection(
|
||||||
|
double &start, double &end, bool done)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &history = ProjectHistory::Get( project );
|
||||||
|
auto &trackPanel = TrackPanel::Get( project );
|
||||||
|
auto &viewInfo = ViewInfo::Get( project );
|
||||||
|
viewInfo.selectedRegion.setTimes(start, end);
|
||||||
|
trackPanel.Refresh(false);
|
||||||
|
if (done) {
|
||||||
|
history.ModifyState(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
double ProjectSelectionManager::SSBL_GetRate() const
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
auto &tracks = TrackList::Get( project );
|
||||||
|
// Return maximum of project rate and all track rates.
|
||||||
|
return std::max( settings.GetRate(),
|
||||||
|
tracks.Any<const WaveTrack>().max( &WaveTrack::GetRate ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
const NumericFormatSymbol &
|
||||||
|
ProjectSelectionManager::SSBL_GetFrequencySelectionFormatName()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
return settings.GetFrequencySelectionFormatName();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::SSBL_SetFrequencySelectionFormatName(
|
||||||
|
const NumericFormatSymbol & formatName)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
|
||||||
|
settings.SetFrequencySelectionFormatName( formatName );
|
||||||
|
|
||||||
|
gPrefs->Write(wxT("/FrequencySelectionFormatName"),
|
||||||
|
formatName.Internal());
|
||||||
|
gPrefs->Flush();
|
||||||
|
|
||||||
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
||||||
|
SpectralSelectionBar::Get( project ).SetFrequencySelectionFormatName(formatName);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
const NumericFormatSymbol &
|
||||||
|
ProjectSelectionManager::SSBL_GetBandwidthSelectionFormatName()
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
return settings.GetBandwidthSelectionFormatName();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::SSBL_SetBandwidthSelectionFormatName(
|
||||||
|
const NumericFormatSymbol & formatName)
|
||||||
|
{
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &settings = ProjectSettings::Get( project );
|
||||||
|
|
||||||
|
settings.SetBandwidthSelectionFormatName( formatName );
|
||||||
|
|
||||||
|
gPrefs->Write(wxT("/BandwidthSelectionFormatName"),
|
||||||
|
formatName.Internal());
|
||||||
|
gPrefs->Flush();
|
||||||
|
|
||||||
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
||||||
|
SpectralSelectionBar::Get( project ).SetBandwidthSelectionFormatName(formatName);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectSelectionManager::SSBL_ModifySpectralSelection(
|
||||||
|
double &bottom, double &top, bool done)
|
||||||
|
{
|
||||||
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
||||||
|
auto &project = mProject;
|
||||||
|
auto &history = ProjectHistory::Get( project );
|
||||||
|
auto &trackPanel = TrackPanel::Get( project );
|
||||||
|
auto &viewInfo = ViewInfo::Get( project );
|
||||||
|
|
||||||
|
double nyq = SSBL_GetRate() / 2.0;
|
||||||
|
if (bottom >= 0.0)
|
||||||
|
bottom = std::min(nyq, bottom);
|
||||||
|
if (top >= 0.0)
|
||||||
|
top = std::min(nyq, top);
|
||||||
|
viewInfo.selectedRegion.setFrequencies(bottom, top);
|
||||||
|
trackPanel.Refresh(false);
|
||||||
|
if (done) {
|
||||||
|
history.ModifyState(false);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
bottom; top; done;
|
||||||
|
#endif
|
||||||
|
}
|
58
src/ProjectSelectionManager.h
Normal file
58
src/ProjectSelectionManager.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
Audacity: A Digital Audio Editor
|
||||||
|
|
||||||
|
ProjectSelectionManager.cpp
|
||||||
|
|
||||||
|
Paul Licameli split from ProjectManager.cpp
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#ifndef __AUDACITY_PROJECT_SELECTION_MANAGER__
|
||||||
|
#define __AUDACITY_PROJECT_SELECTION_MANAGER__
|
||||||
|
|
||||||
|
#include "ClientData.h" // to inherit
|
||||||
|
#include "toolbars/SelectionBarListener.h" // to inherit
|
||||||
|
#include "toolbars/SpectralSelectionBarListener.h" // to inherit
|
||||||
|
|
||||||
|
class AudacityProject;
|
||||||
|
|
||||||
|
class ProjectSelectionManager final
|
||||||
|
: public ClientData::Base
|
||||||
|
, public SelectionBarListener
|
||||||
|
, public SpectralSelectionBarListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static ProjectSelectionManager &Get( AudacityProject &project );
|
||||||
|
static const ProjectSelectionManager &Get( const AudacityProject &project );
|
||||||
|
|
||||||
|
explicit ProjectSelectionManager( AudacityProject &project );
|
||||||
|
~ProjectSelectionManager() override;
|
||||||
|
|
||||||
|
// SelectionBarListener callback methods
|
||||||
|
double AS_GetRate() override;
|
||||||
|
void AS_SetRate(double rate) override;
|
||||||
|
int AS_GetSnapTo() override;
|
||||||
|
void AS_SetSnapTo(int snap) override;
|
||||||
|
const NumericFormatSymbol & AS_GetSelectionFormat() override;
|
||||||
|
void AS_SetSelectionFormat(const NumericFormatSymbol & format) override;
|
||||||
|
void AS_ModifySelection(double &start, double &end, bool done) override;
|
||||||
|
|
||||||
|
// SpectralSelectionBarListener callback methods
|
||||||
|
double SSBL_GetRate() const override;
|
||||||
|
const NumericFormatSymbol & SSBL_GetFrequencySelectionFormatName() override;
|
||||||
|
void SSBL_SetFrequencySelectionFormatName(
|
||||||
|
const NumericFormatSymbol & formatName) override;
|
||||||
|
const NumericFormatSymbol & SSBL_GetBandwidthSelectionFormatName() override;
|
||||||
|
void SSBL_SetBandwidthSelectionFormatName(
|
||||||
|
const NumericFormatSymbol & formatName) override;
|
||||||
|
void SSBL_ModifySpectralSelection(
|
||||||
|
double &bottom, double &top, bool done) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool SnapSelection();
|
||||||
|
|
||||||
|
AudacityProject &mProject;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -35,7 +35,7 @@ explicitly code all three.
|
|||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
|
|
||||||
#include "../ProjectManager.h"
|
#include "../ProjectSelectionManager.h"
|
||||||
#include "../TrackPanel.h"
|
#include "../TrackPanel.h"
|
||||||
#include "../Shuttle.h"
|
#include "../Shuttle.h"
|
||||||
#include "../ShuttleGui.h"
|
#include "../ShuttleGui.h"
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "../Menus.h"
|
#include "../Menus.h"
|
||||||
#include "../Prefs.h"
|
#include "../Prefs.h"
|
||||||
#include "../Project.h"
|
#include "../Project.h"
|
||||||
#include "../ProjectManager.h"
|
#include "../ProjectSelectionManager.h"
|
||||||
#include "../ShuttleGui.h"
|
#include "../ShuttleGui.h"
|
||||||
#include "../SplashDialog.h"
|
#include "../SplashDialog.h"
|
||||||
#include "../Theme.h"
|
#include "../Theme.h"
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include "../Project.h"
|
#include "../Project.h"
|
||||||
#include "../ProjectAudioIO.h"
|
#include "../ProjectAudioIO.h"
|
||||||
#include "../ProjectHistory.h"
|
#include "../ProjectHistory.h"
|
||||||
#include "../ProjectManager.h"
|
#include "../ProjectSelectionManager.h"
|
||||||
#include "../ProjectSettings.h"
|
#include "../ProjectSettings.h"
|
||||||
#include "../ProjectWindow.h"
|
#include "../ProjectWindow.h"
|
||||||
#include "../SelectionState.h"
|
#include "../SelectionState.h"
|
||||||
|
@ -229,6 +229,7 @@
|
|||||||
<ClCompile Include="..\..\..\src\ProjectFSCK.cpp" />
|
<ClCompile Include="..\..\..\src\ProjectFSCK.cpp" />
|
||||||
<ClCompile Include="..\..\..\src\ProjectHistory.cpp" />
|
<ClCompile Include="..\..\..\src\ProjectHistory.cpp" />
|
||||||
<ClCompile Include="..\..\..\src\ProjectManager.cpp" />
|
<ClCompile Include="..\..\..\src\ProjectManager.cpp" />
|
||||||
|
<ClCompile Include="..\..\..\src\ProjectSelectionManager.cpp" />
|
||||||
<ClCompile Include="..\..\..\src\ProjectSettings.cpp" />
|
<ClCompile Include="..\..\..\src\ProjectSettings.cpp" />
|
||||||
<ClCompile Include="..\..\..\src\ProjectWindow.cpp" />
|
<ClCompile Include="..\..\..\src\ProjectWindow.cpp" />
|
||||||
<ClCompile Include="..\..\..\src\RealFFTf.cpp" />
|
<ClCompile Include="..\..\..\src\RealFFTf.cpp" />
|
||||||
@ -664,6 +665,7 @@
|
|||||||
<ClInclude Include="..\..\..\src\ProjectFSCK.h" />
|
<ClInclude Include="..\..\..\src\ProjectFSCK.h" />
|
||||||
<ClInclude Include="..\..\..\src\ProjectHistory.h" />
|
<ClInclude Include="..\..\..\src\ProjectHistory.h" />
|
||||||
<ClInclude Include="..\..\..\src\ProjectManager.h" />
|
<ClInclude Include="..\..\..\src\ProjectManager.h" />
|
||||||
|
<ClInclude Include="..\..\..\src\ProjectSelectionManager.h" />
|
||||||
<ClInclude Include="..\..\..\src\ProjectSettings.h" />
|
<ClInclude Include="..\..\..\src\ProjectSettings.h" />
|
||||||
<ClInclude Include="..\..\..\src\ProjectWindow.h" />
|
<ClInclude Include="..\..\..\src\ProjectWindow.h" />
|
||||||
<ClInclude Include="..\..\..\src\RealFFTf.h" />
|
<ClInclude Include="..\..\..\src\RealFFTf.h" />
|
||||||
|
@ -284,6 +284,9 @@
|
|||||||
<ClCompile Include="..\..\..\src\ProjectManager.cpp">
|
<ClCompile Include="..\..\..\src\ProjectManager.cpp">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\src\ProjectSelectionManager.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\src\ProjectSettings.cpp">
|
<ClCompile Include="..\..\..\src\ProjectSettings.cpp">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@ -1366,6 +1369,9 @@
|
|||||||
<ClInclude Include="..\..\..\src\ProjectManager.h">
|
<ClInclude Include="..\..\..\src\ProjectManager.h">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\src\ProjectSelectionManager.h">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\..\src\ProjectSettings.h">
|
<ClInclude Include="..\..\..\src\ProjectSettings.h">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user