mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-01 16:19:43 +02:00
Merge branch 'master' into overlays
This commit is contained in:
commit
dcd581297a
16
Makefile.in
16
Makefile.in
@ -129,9 +129,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
@ -308,12 +307,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -354,8 +347,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -369,8 +360,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -417,7 +406,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
|
@ -116,9 +116,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@ -187,12 +186,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -233,8 +226,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -248,8 +239,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -296,7 +285,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
|
@ -118,9 +118,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@ -191,12 +190,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -237,8 +230,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -252,8 +243,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -300,7 +289,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
|
@ -134,9 +134,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@ -232,12 +231,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -278,8 +271,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -293,8 +284,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -341,7 +330,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
|
@ -92,12 +92,10 @@ enum CommandFlag : unsigned long long
|
||||
IsRealtimeNotActiveFlag= 0x10000000, //lll
|
||||
CaptureNotBusyFlag = 0x20000000,
|
||||
CanStopAudioStreamFlag = 0x40000000,
|
||||
AudioStreamNotScrubbingFlag
|
||||
= 0x80000000ULL, // prl
|
||||
RulerHasFocus
|
||||
= 0x100000000ULL, // prl
|
||||
TrackPanelOrRulerHasFocus
|
||||
= 0x200000000ULL, // prl
|
||||
= 0x80000000ULL, // prl
|
||||
// nextOneHas33BitsWow
|
||||
// = 0x100000000ULL, // prl
|
||||
|
||||
NoFlagsSpecifed = ~0ULL
|
||||
};
|
||||
|
@ -402,6 +402,14 @@ struct AudioIO::ScrubQueue
|
||||
}
|
||||
~ScrubQueue() {}
|
||||
|
||||
double LastTimeInQueue() const
|
||||
{
|
||||
// Needed by the main thread sometimes
|
||||
wxCriticalSectionLocker locker(mUpdating);
|
||||
const Entry &previous = mEntries[(mLeadingIdx + Size - 1) % Size];
|
||||
return previous.mS1 / mRate;
|
||||
}
|
||||
|
||||
bool Producer(double end, double maxSpeed, bool bySpeed, bool maySkip)
|
||||
{
|
||||
// Main thread indicates a scrubbing interval
|
||||
@ -670,7 +678,7 @@ private:
|
||||
const double mRate;
|
||||
const long mMinStutter;
|
||||
wxLongLong mLastScrubTimeMillis;
|
||||
wxCriticalSection mUpdating;
|
||||
mutable wxCriticalSection mUpdating;
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -2426,6 +2434,15 @@ bool AudioIO::EnqueueScrubBySignedSpeed(double speed, double maxSpeed, bool mayS
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
double AudioIO::GetLastTimeInScrubQueue() const
|
||||
{
|
||||
if (mScrubQueue)
|
||||
return mScrubQueue->LastTimeInQueue();
|
||||
else
|
||||
return -1.0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool AudioIO::IsBusy()
|
||||
|
@ -208,6 +208,10 @@ class AUDACITY_DLL_API AudioIO final {
|
||||
* Return true if some work was really enqueued.
|
||||
*/
|
||||
bool EnqueueScrubBySignedSpeed(double speed, double maxSpeed, bool maySkip);
|
||||
|
||||
/** \brief return the ending time of the last enqueued scrub interval.
|
||||
*/
|
||||
double GetLastTimeInScrubQueue() const;
|
||||
#endif
|
||||
|
||||
/** \brief Returns true if audio i/o is busy starting, stopping, playing,
|
||||
|
@ -173,7 +173,6 @@
|
||||
// The following enable parts of the scrubbing user interface.
|
||||
#define EXPERIMENTAL_SCRUBBING_BASIC
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_BASIC
|
||||
#define EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
#define EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
|
||||
#endif
|
||||
#endif
|
||||
@ -201,5 +200,9 @@
|
||||
// interpolating in frequency domain.
|
||||
#define EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS
|
||||
|
||||
// Paul Licameli (PRL) 10 May 2016
|
||||
// Time ruler accepts focus, buttons can be reached with TAB
|
||||
#define EXPERIMENTAL_TIME_RULER_NAVIGATION
|
||||
|
||||
|
||||
#endif
|
||||
|
231
src/Makefile.in
231
src/Makefile.in
@ -226,9 +226,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@ -290,7 +289,7 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
|
||||
LabelTrack.cpp LabelTrack.h LangChoice.cpp LangChoice.h \
|
||||
Languages.cpp Languages.h Legacy.cpp Legacy.h Lyrics.cpp \
|
||||
Lyrics.h LyricsWindow.cpp LyricsWindow.h MacroMagic.h \
|
||||
Matrix.cpp Matrix.h Menus.cpp Menus.h Mix.cpp Mix.h \
|
||||
Matrix.cpp Matrix.h MemoryX.h Menus.cpp Menus.h Mix.cpp Mix.h \
|
||||
MixerBoard.cpp MixerBoard.h ModuleManager.cpp ModuleManager.h \
|
||||
NumberScale.h PitchName.cpp PitchName.h \
|
||||
PlatformCompatibility.cpp PlatformCompatibility.h \
|
||||
@ -308,21 +307,22 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
|
||||
TimerRecordDialog.cpp TimerRecordDialog.h TimeTrack.cpp \
|
||||
TimeTrack.h Track.cpp Track.h TrackArtist.cpp TrackArtist.h \
|
||||
TrackPanel.cpp TrackPanel.h TrackPanelAx.cpp TrackPanelAx.h \
|
||||
TrackPanelListener.h TranslatableStringArray.h UndoManager.cpp \
|
||||
UndoManager.h ViewInfo.cpp ViewInfo.h VoiceKey.cpp VoiceKey.h \
|
||||
WaveClip.cpp WaveClip.h WaveTrack.cpp WaveTrack.h \
|
||||
WaveTrackLocation.h WrappedType.cpp WrappedType.h \
|
||||
TrackPanelCell.h TrackPanelCellIterator.h TrackPanelListener.h \
|
||||
TranslatableStringArray.h UndoManager.cpp UndoManager.h \
|
||||
ViewInfo.cpp ViewInfo.h VoiceKey.cpp VoiceKey.h WaveClip.cpp \
|
||||
WaveClip.h WaveTrack.cpp WaveTrack.h WaveTrackLocation.h \
|
||||
WrappedType.cpp WrappedType.h wxFileNameWrapper.h \
|
||||
commands/AppCommandEvent.cpp commands/AppCommandEvent.h \
|
||||
commands/BatchEvalCommand.cpp commands/BatchEvalCommand.h \
|
||||
commands/Command.cpp commands/Command.h \
|
||||
commands/CommandBuilder.cpp commands/CommandBuilder.h \
|
||||
commands/CommandDirectory.cpp commands/CommandDirectory.h \
|
||||
commands/CommandHandler.cpp commands/CommandHandler.h \
|
||||
commands/CommandManager.cpp commands/CommandManager.h \
|
||||
commands/CommandMisc.h commands/CommandSignature.cpp \
|
||||
commands/CommandSignature.h commands/CommandTargets.h \
|
||||
commands/CommandType.cpp commands/CommandType.h \
|
||||
commands/CompareAudioCommand.cpp \
|
||||
commands/CommandFunctors.h commands/CommandHandler.cpp \
|
||||
commands/CommandHandler.h commands/CommandManager.cpp \
|
||||
commands/CommandManager.h commands/CommandMisc.h \
|
||||
commands/CommandSignature.cpp commands/CommandSignature.h \
|
||||
commands/CommandTargets.h commands/CommandType.cpp \
|
||||
commands/CommandType.h commands/CompareAudioCommand.cpp \
|
||||
commands/CompareAudioCommand.h commands/ExecMenuCommand.cpp \
|
||||
commands/ExecMenuCommand.h commands/GetAllMenuCommands.cpp \
|
||||
commands/GetAllMenuCommands.h \
|
||||
@ -439,9 +439,14 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
|
||||
toolbars/ToolManager.cpp toolbars/ToolManager.h \
|
||||
toolbars/ToolsToolBar.cpp toolbars/ToolsToolBar.h \
|
||||
toolbars/TranscriptionToolBar.cpp \
|
||||
toolbars/TranscriptionToolBar.h widgets/AButton.cpp \
|
||||
widgets/AButton.h widgets/ASlider.cpp widgets/ASlider.h \
|
||||
toolbars/TranscriptionToolBar.h \
|
||||
tracks/ui/EditCursorOverlay.cpp tracks/ui/EditCursorOverlay.h \
|
||||
tracks/ui/PlayIndicatorOverlay.cpp \
|
||||
tracks/ui/PlayIndicatorOverlay.h tracks/ui/Scrubbing.cpp \
|
||||
tracks/ui/Scrubbing.h widgets/AButton.cpp widgets/AButton.h \
|
||||
widgets/ASlider.cpp widgets/ASlider.h \
|
||||
widgets/AttachableScrollBar.cpp widgets/AttachableScrollBar.h \
|
||||
widgets/BackedPanel.cpp widgets/BackedPanel.h \
|
||||
widgets/ErrorDialog.cpp widgets/ErrorDialog.h \
|
||||
widgets/ExpandingToolBar.cpp widgets/ExpandingToolBar.h \
|
||||
widgets/FileHistory.cpp widgets/FileHistory.h \
|
||||
@ -454,11 +459,13 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
|
||||
widgets/MultiDialog.cpp widgets/MultiDialog.h \
|
||||
widgets/NumericTextCtrl.cpp widgets/NumericTextCtrl.h \
|
||||
widgets/numformatter.cpp widgets/numformatter.h \
|
||||
widgets/ProgressDialog.cpp widgets/ProgressDialog.h \
|
||||
widgets/Ruler.cpp widgets/Ruler.h widgets/valnum.cpp \
|
||||
widgets/valnum.h widgets/Warning.cpp widgets/Warning.h \
|
||||
xml/XMLFileReader.cpp xml/XMLFileReader.h xml/XMLWriter.cpp \
|
||||
xml/XMLWriter.h effects/audiounits/AudioUnitEffect.cpp \
|
||||
widgets/Overlay.cpp widgets/Overlay.h widgets/OverlayPanel.cpp \
|
||||
widgets/OverlayPanel.h widgets/ProgressDialog.cpp \
|
||||
widgets/ProgressDialog.h widgets/Ruler.cpp widgets/Ruler.h \
|
||||
widgets/valnum.cpp widgets/valnum.h widgets/Warning.cpp \
|
||||
widgets/Warning.h xml/XMLFileReader.cpp xml/XMLFileReader.h \
|
||||
xml/XMLWriter.cpp xml/XMLWriter.h \
|
||||
effects/audiounits/AudioUnitEffect.cpp \
|
||||
effects/audiounits/AudioUnitEffect.h export/ExportFFmpeg.cpp \
|
||||
export/ExportFFmpeg.h export/ExportFFmpegDialogs.cpp \
|
||||
export/ExportFFmpegDialogs.h import/ImportFFmpeg.cpp \
|
||||
@ -689,9 +696,13 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
|
||||
toolbars/audacity-ToolManager.$(OBJEXT) \
|
||||
toolbars/audacity-ToolsToolBar.$(OBJEXT) \
|
||||
toolbars/audacity-TranscriptionToolBar.$(OBJEXT) \
|
||||
tracks/ui/audacity-EditCursorOverlay.$(OBJEXT) \
|
||||
tracks/ui/audacity-PlayIndicatorOverlay.$(OBJEXT) \
|
||||
tracks/ui/audacity-Scrubbing.$(OBJEXT) \
|
||||
widgets/audacity-AButton.$(OBJEXT) \
|
||||
widgets/audacity-ASlider.$(OBJEXT) \
|
||||
widgets/audacity-AttachableScrollBar.$(OBJEXT) \
|
||||
widgets/audacity-BackedPanel.$(OBJEXT) \
|
||||
widgets/audacity-ErrorDialog.$(OBJEXT) \
|
||||
widgets/audacity-ExpandingToolBar.$(OBJEXT) \
|
||||
widgets/audacity-FileHistory.$(OBJEXT) \
|
||||
@ -706,6 +717,8 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
|
||||
widgets/audacity-MultiDialog.$(OBJEXT) \
|
||||
widgets/audacity-NumericTextCtrl.$(OBJEXT) \
|
||||
widgets/audacity-numformatter.$(OBJEXT) \
|
||||
widgets/audacity-Overlay.$(OBJEXT) \
|
||||
widgets/audacity-OverlayPanel.$(OBJEXT) \
|
||||
widgets/audacity-ProgressDialog.$(OBJEXT) \
|
||||
widgets/audacity-Ruler.$(OBJEXT) \
|
||||
widgets/audacity-valnum.$(OBJEXT) \
|
||||
@ -863,12 +876,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -909,8 +916,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -924,8 +929,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -972,7 +975,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
@ -1159,7 +1161,7 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
|
||||
LabelTrack.cpp LabelTrack.h LangChoice.cpp LangChoice.h \
|
||||
Languages.cpp Languages.h Legacy.cpp Legacy.h Lyrics.cpp \
|
||||
Lyrics.h LyricsWindow.cpp LyricsWindow.h MacroMagic.h \
|
||||
Matrix.cpp Matrix.h Menus.cpp Menus.h Mix.cpp Mix.h \
|
||||
Matrix.cpp Matrix.h MemoryX.h Menus.cpp Menus.h Mix.cpp Mix.h \
|
||||
MixerBoard.cpp MixerBoard.h ModuleManager.cpp ModuleManager.h \
|
||||
NumberScale.h PitchName.cpp PitchName.h \
|
||||
PlatformCompatibility.cpp PlatformCompatibility.h \
|
||||
@ -1177,21 +1179,22 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
|
||||
TimerRecordDialog.cpp TimerRecordDialog.h TimeTrack.cpp \
|
||||
TimeTrack.h Track.cpp Track.h TrackArtist.cpp TrackArtist.h \
|
||||
TrackPanel.cpp TrackPanel.h TrackPanelAx.cpp TrackPanelAx.h \
|
||||
TrackPanelListener.h TranslatableStringArray.h UndoManager.cpp \
|
||||
UndoManager.h ViewInfo.cpp ViewInfo.h VoiceKey.cpp VoiceKey.h \
|
||||
WaveClip.cpp WaveClip.h WaveTrack.cpp WaveTrack.h \
|
||||
WaveTrackLocation.h WrappedType.cpp WrappedType.h \
|
||||
TrackPanelCell.h TrackPanelCellIterator.h TrackPanelListener.h \
|
||||
TranslatableStringArray.h UndoManager.cpp UndoManager.h \
|
||||
ViewInfo.cpp ViewInfo.h VoiceKey.cpp VoiceKey.h WaveClip.cpp \
|
||||
WaveClip.h WaveTrack.cpp WaveTrack.h WaveTrackLocation.h \
|
||||
WrappedType.cpp WrappedType.h wxFileNameWrapper.h \
|
||||
commands/AppCommandEvent.cpp commands/AppCommandEvent.h \
|
||||
commands/BatchEvalCommand.cpp commands/BatchEvalCommand.h \
|
||||
commands/Command.cpp commands/Command.h \
|
||||
commands/CommandBuilder.cpp commands/CommandBuilder.h \
|
||||
commands/CommandDirectory.cpp commands/CommandDirectory.h \
|
||||
commands/CommandHandler.cpp commands/CommandHandler.h \
|
||||
commands/CommandManager.cpp commands/CommandManager.h \
|
||||
commands/CommandMisc.h commands/CommandSignature.cpp \
|
||||
commands/CommandSignature.h commands/CommandTargets.h \
|
||||
commands/CommandType.cpp commands/CommandType.h \
|
||||
commands/CompareAudioCommand.cpp \
|
||||
commands/CommandFunctors.h commands/CommandHandler.cpp \
|
||||
commands/CommandHandler.h commands/CommandManager.cpp \
|
||||
commands/CommandManager.h commands/CommandMisc.h \
|
||||
commands/CommandSignature.cpp commands/CommandSignature.h \
|
||||
commands/CommandTargets.h commands/CommandType.cpp \
|
||||
commands/CommandType.h commands/CompareAudioCommand.cpp \
|
||||
commands/CompareAudioCommand.h commands/ExecMenuCommand.cpp \
|
||||
commands/ExecMenuCommand.h commands/GetAllMenuCommands.cpp \
|
||||
commands/GetAllMenuCommands.h \
|
||||
@ -1308,9 +1311,14 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
|
||||
toolbars/ToolManager.cpp toolbars/ToolManager.h \
|
||||
toolbars/ToolsToolBar.cpp toolbars/ToolsToolBar.h \
|
||||
toolbars/TranscriptionToolBar.cpp \
|
||||
toolbars/TranscriptionToolBar.h widgets/AButton.cpp \
|
||||
widgets/AButton.h widgets/ASlider.cpp widgets/ASlider.h \
|
||||
toolbars/TranscriptionToolBar.h \
|
||||
tracks/ui/EditCursorOverlay.cpp tracks/ui/EditCursorOverlay.h \
|
||||
tracks/ui/PlayIndicatorOverlay.cpp \
|
||||
tracks/ui/PlayIndicatorOverlay.h tracks/ui/Scrubbing.cpp \
|
||||
tracks/ui/Scrubbing.h widgets/AButton.cpp widgets/AButton.h \
|
||||
widgets/ASlider.cpp widgets/ASlider.h \
|
||||
widgets/AttachableScrollBar.cpp widgets/AttachableScrollBar.h \
|
||||
widgets/BackedPanel.cpp widgets/BackedPanel.h \
|
||||
widgets/ErrorDialog.cpp widgets/ErrorDialog.h \
|
||||
widgets/ExpandingToolBar.cpp widgets/ExpandingToolBar.h \
|
||||
widgets/FileHistory.cpp widgets/FileHistory.h \
|
||||
@ -1323,14 +1331,16 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
|
||||
widgets/MultiDialog.cpp widgets/MultiDialog.h \
|
||||
widgets/NumericTextCtrl.cpp widgets/NumericTextCtrl.h \
|
||||
widgets/numformatter.cpp widgets/numformatter.h \
|
||||
widgets/ProgressDialog.cpp widgets/ProgressDialog.h \
|
||||
widgets/Ruler.cpp widgets/Ruler.h widgets/valnum.cpp \
|
||||
widgets/valnum.h widgets/Warning.cpp widgets/Warning.h \
|
||||
xml/XMLFileReader.cpp xml/XMLFileReader.h xml/XMLWriter.cpp \
|
||||
xml/XMLWriter.h $(NULL) $(am__append_3) $(am__append_6) \
|
||||
$(am__append_9) $(am__append_12) $(am__append_17) \
|
||||
$(am__append_24) $(am__append_33) $(am__append_36) \
|
||||
$(am__append_39) $(am__append_44) $(am__append_47)
|
||||
widgets/Overlay.cpp widgets/Overlay.h widgets/OverlayPanel.cpp \
|
||||
widgets/OverlayPanel.h widgets/ProgressDialog.cpp \
|
||||
widgets/ProgressDialog.h widgets/Ruler.cpp widgets/Ruler.h \
|
||||
widgets/valnum.cpp widgets/valnum.h widgets/Warning.cpp \
|
||||
widgets/Warning.h xml/XMLFileReader.cpp xml/XMLFileReader.h \
|
||||
xml/XMLWriter.cpp xml/XMLWriter.h $(NULL) $(am__append_3) \
|
||||
$(am__append_6) $(am__append_9) $(am__append_12) \
|
||||
$(am__append_17) $(am__append_24) $(am__append_33) \
|
||||
$(am__append_36) $(am__append_39) $(am__append_44) \
|
||||
$(am__append_47)
|
||||
|
||||
# TODO: Check *.cpp and *.h files if they are needed.
|
||||
EXTRA_DIST = audacity.desktop.in xml/audacityproject.dtd \
|
||||
@ -1817,6 +1827,18 @@ toolbars/audacity-ToolsToolBar.$(OBJEXT): toolbars/$(am__dirstamp) \
|
||||
toolbars/$(DEPDIR)/$(am__dirstamp)
|
||||
toolbars/audacity-TranscriptionToolBar.$(OBJEXT): \
|
||||
toolbars/$(am__dirstamp) toolbars/$(DEPDIR)/$(am__dirstamp)
|
||||
tracks/ui/$(am__dirstamp):
|
||||
@$(MKDIR_P) tracks/ui
|
||||
@: > tracks/ui/$(am__dirstamp)
|
||||
tracks/ui/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) tracks/ui/$(DEPDIR)
|
||||
@: > tracks/ui/$(DEPDIR)/$(am__dirstamp)
|
||||
tracks/ui/audacity-EditCursorOverlay.$(OBJEXT): \
|
||||
tracks/ui/$(am__dirstamp) tracks/ui/$(DEPDIR)/$(am__dirstamp)
|
||||
tracks/ui/audacity-PlayIndicatorOverlay.$(OBJEXT): \
|
||||
tracks/ui/$(am__dirstamp) tracks/ui/$(DEPDIR)/$(am__dirstamp)
|
||||
tracks/ui/audacity-Scrubbing.$(OBJEXT): tracks/ui/$(am__dirstamp) \
|
||||
tracks/ui/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/$(am__dirstamp):
|
||||
@$(MKDIR_P) widgets
|
||||
@: > widgets/$(am__dirstamp)
|
||||
@ -1829,6 +1851,8 @@ widgets/audacity-ASlider.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-AttachableScrollBar.$(OBJEXT): \
|
||||
widgets/$(am__dirstamp) widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-BackedPanel.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-ErrorDialog.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-ExpandingToolBar.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
@ -1857,6 +1881,10 @@ widgets/audacity-NumericTextCtrl.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-numformatter.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-Overlay.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-OverlayPanel.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-ProgressDialog.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
widgets/audacity-Ruler.$(OBJEXT): widgets/$(am__dirstamp) \
|
||||
@ -1968,6 +1996,7 @@ mostlyclean-compile:
|
||||
-rm -f ondemand/*.$(OBJEXT)
|
||||
-rm -f prefs/*.$(OBJEXT)
|
||||
-rm -f toolbars/*.$(OBJEXT)
|
||||
-rm -f tracks/ui/*.$(OBJEXT)
|
||||
-rm -f widgets/*.$(OBJEXT)
|
||||
-rm -f xml/*.$(OBJEXT)
|
||||
-rm -f xml/*.lo
|
||||
@ -2227,9 +2256,13 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolManager.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-ToolsToolBar.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@toolbars/$(DEPDIR)/audacity-TranscriptionToolBar.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AButton.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ASlider.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-AttachableScrollBar.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-BackedPanel.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ErrorDialog.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ExpandingToolBar.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-FileHistory.Po@am__quote@
|
||||
@ -2243,6 +2276,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Meter.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-MultiDialog.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-NumericTextCtrl.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Overlay.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-OverlayPanel.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-ProgressDialog.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Ruler.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/audacity-Warning.Po@am__quote@
|
||||
@ -5469,6 +5504,48 @@ toolbars/audacity-TranscriptionToolBar.obj: toolbars/TranscriptionToolBar.cpp
|
||||
@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 toolbars/audacity-TranscriptionToolBar.obj `if test -f 'toolbars/TranscriptionToolBar.cpp'; then $(CYGPATH_W) 'toolbars/TranscriptionToolBar.cpp'; else $(CYGPATH_W) '$(srcdir)/toolbars/TranscriptionToolBar.cpp'; fi`
|
||||
|
||||
tracks/ui/audacity-EditCursorOverlay.o: tracks/ui/EditCursorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-EditCursorOverlay.o -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Tpo -c -o tracks/ui/audacity-EditCursorOverlay.o `test -f 'tracks/ui/EditCursorOverlay.cpp' || echo '$(srcdir)/'`tracks/ui/EditCursorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Tpo tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/EditCursorOverlay.cpp' object='tracks/ui/audacity-EditCursorOverlay.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 tracks/ui/audacity-EditCursorOverlay.o `test -f 'tracks/ui/EditCursorOverlay.cpp' || echo '$(srcdir)/'`tracks/ui/EditCursorOverlay.cpp
|
||||
|
||||
tracks/ui/audacity-EditCursorOverlay.obj: tracks/ui/EditCursorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-EditCursorOverlay.obj -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Tpo -c -o tracks/ui/audacity-EditCursorOverlay.obj `if test -f 'tracks/ui/EditCursorOverlay.cpp'; then $(CYGPATH_W) 'tracks/ui/EditCursorOverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/EditCursorOverlay.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Tpo tracks/ui/$(DEPDIR)/audacity-EditCursorOverlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/EditCursorOverlay.cpp' object='tracks/ui/audacity-EditCursorOverlay.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 tracks/ui/audacity-EditCursorOverlay.obj `if test -f 'tracks/ui/EditCursorOverlay.cpp'; then $(CYGPATH_W) 'tracks/ui/EditCursorOverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/EditCursorOverlay.cpp'; fi`
|
||||
|
||||
tracks/ui/audacity-PlayIndicatorOverlay.o: tracks/ui/PlayIndicatorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-PlayIndicatorOverlay.o -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Tpo -c -o tracks/ui/audacity-PlayIndicatorOverlay.o `test -f 'tracks/ui/PlayIndicatorOverlay.cpp' || echo '$(srcdir)/'`tracks/ui/PlayIndicatorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Tpo tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/PlayIndicatorOverlay.cpp' object='tracks/ui/audacity-PlayIndicatorOverlay.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 tracks/ui/audacity-PlayIndicatorOverlay.o `test -f 'tracks/ui/PlayIndicatorOverlay.cpp' || echo '$(srcdir)/'`tracks/ui/PlayIndicatorOverlay.cpp
|
||||
|
||||
tracks/ui/audacity-PlayIndicatorOverlay.obj: tracks/ui/PlayIndicatorOverlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-PlayIndicatorOverlay.obj -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Tpo -c -o tracks/ui/audacity-PlayIndicatorOverlay.obj `if test -f 'tracks/ui/PlayIndicatorOverlay.cpp'; then $(CYGPATH_W) 'tracks/ui/PlayIndicatorOverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/PlayIndicatorOverlay.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Tpo tracks/ui/$(DEPDIR)/audacity-PlayIndicatorOverlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/PlayIndicatorOverlay.cpp' object='tracks/ui/audacity-PlayIndicatorOverlay.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 tracks/ui/audacity-PlayIndicatorOverlay.obj `if test -f 'tracks/ui/PlayIndicatorOverlay.cpp'; then $(CYGPATH_W) 'tracks/ui/PlayIndicatorOverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/PlayIndicatorOverlay.cpp'; fi`
|
||||
|
||||
tracks/ui/audacity-Scrubbing.o: tracks/ui/Scrubbing.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-Scrubbing.o -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-Scrubbing.Tpo -c -o tracks/ui/audacity-Scrubbing.o `test -f 'tracks/ui/Scrubbing.cpp' || echo '$(srcdir)/'`tracks/ui/Scrubbing.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-Scrubbing.Tpo tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/Scrubbing.cpp' object='tracks/ui/audacity-Scrubbing.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 tracks/ui/audacity-Scrubbing.o `test -f 'tracks/ui/Scrubbing.cpp' || echo '$(srcdir)/'`tracks/ui/Scrubbing.cpp
|
||||
|
||||
tracks/ui/audacity-Scrubbing.obj: tracks/ui/Scrubbing.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT tracks/ui/audacity-Scrubbing.obj -MD -MP -MF tracks/ui/$(DEPDIR)/audacity-Scrubbing.Tpo -c -o tracks/ui/audacity-Scrubbing.obj `if test -f 'tracks/ui/Scrubbing.cpp'; then $(CYGPATH_W) 'tracks/ui/Scrubbing.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/Scrubbing.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) tracks/ui/$(DEPDIR)/audacity-Scrubbing.Tpo tracks/ui/$(DEPDIR)/audacity-Scrubbing.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='tracks/ui/Scrubbing.cpp' object='tracks/ui/audacity-Scrubbing.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 tracks/ui/audacity-Scrubbing.obj `if test -f 'tracks/ui/Scrubbing.cpp'; then $(CYGPATH_W) 'tracks/ui/Scrubbing.cpp'; else $(CYGPATH_W) '$(srcdir)/tracks/ui/Scrubbing.cpp'; fi`
|
||||
|
||||
widgets/audacity-AButton.o: widgets/AButton.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-AButton.o -MD -MP -MF widgets/$(DEPDIR)/audacity-AButton.Tpo -c -o widgets/audacity-AButton.o `test -f 'widgets/AButton.cpp' || echo '$(srcdir)/'`widgets/AButton.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-AButton.Tpo widgets/$(DEPDIR)/audacity-AButton.Po
|
||||
@ -5511,6 +5588,20 @@ widgets/audacity-AttachableScrollBar.obj: widgets/AttachableScrollBar.cpp
|
||||
@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 widgets/audacity-AttachableScrollBar.obj `if test -f 'widgets/AttachableScrollBar.cpp'; then $(CYGPATH_W) 'widgets/AttachableScrollBar.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/AttachableScrollBar.cpp'; fi`
|
||||
|
||||
widgets/audacity-BackedPanel.o: widgets/BackedPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-BackedPanel.o -MD -MP -MF widgets/$(DEPDIR)/audacity-BackedPanel.Tpo -c -o widgets/audacity-BackedPanel.o `test -f 'widgets/BackedPanel.cpp' || echo '$(srcdir)/'`widgets/BackedPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-BackedPanel.Tpo widgets/$(DEPDIR)/audacity-BackedPanel.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/BackedPanel.cpp' object='widgets/audacity-BackedPanel.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 widgets/audacity-BackedPanel.o `test -f 'widgets/BackedPanel.cpp' || echo '$(srcdir)/'`widgets/BackedPanel.cpp
|
||||
|
||||
widgets/audacity-BackedPanel.obj: widgets/BackedPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-BackedPanel.obj -MD -MP -MF widgets/$(DEPDIR)/audacity-BackedPanel.Tpo -c -o widgets/audacity-BackedPanel.obj `if test -f 'widgets/BackedPanel.cpp'; then $(CYGPATH_W) 'widgets/BackedPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/BackedPanel.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-BackedPanel.Tpo widgets/$(DEPDIR)/audacity-BackedPanel.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/BackedPanel.cpp' object='widgets/audacity-BackedPanel.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 widgets/audacity-BackedPanel.obj `if test -f 'widgets/BackedPanel.cpp'; then $(CYGPATH_W) 'widgets/BackedPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/BackedPanel.cpp'; fi`
|
||||
|
||||
widgets/audacity-ErrorDialog.o: widgets/ErrorDialog.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-ErrorDialog.o -MD -MP -MF widgets/$(DEPDIR)/audacity-ErrorDialog.Tpo -c -o widgets/audacity-ErrorDialog.o `test -f 'widgets/ErrorDialog.cpp' || echo '$(srcdir)/'`widgets/ErrorDialog.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-ErrorDialog.Tpo widgets/$(DEPDIR)/audacity-ErrorDialog.Po
|
||||
@ -5707,6 +5798,34 @@ widgets/audacity-numformatter.obj: widgets/numformatter.cpp
|
||||
@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 widgets/audacity-numformatter.obj `if test -f 'widgets/numformatter.cpp'; then $(CYGPATH_W) 'widgets/numformatter.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/numformatter.cpp'; fi`
|
||||
|
||||
widgets/audacity-Overlay.o: widgets/Overlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-Overlay.o -MD -MP -MF widgets/$(DEPDIR)/audacity-Overlay.Tpo -c -o widgets/audacity-Overlay.o `test -f 'widgets/Overlay.cpp' || echo '$(srcdir)/'`widgets/Overlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-Overlay.Tpo widgets/$(DEPDIR)/audacity-Overlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/Overlay.cpp' object='widgets/audacity-Overlay.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 widgets/audacity-Overlay.o `test -f 'widgets/Overlay.cpp' || echo '$(srcdir)/'`widgets/Overlay.cpp
|
||||
|
||||
widgets/audacity-Overlay.obj: widgets/Overlay.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-Overlay.obj -MD -MP -MF widgets/$(DEPDIR)/audacity-Overlay.Tpo -c -o widgets/audacity-Overlay.obj `if test -f 'widgets/Overlay.cpp'; then $(CYGPATH_W) 'widgets/Overlay.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/Overlay.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-Overlay.Tpo widgets/$(DEPDIR)/audacity-Overlay.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/Overlay.cpp' object='widgets/audacity-Overlay.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 widgets/audacity-Overlay.obj `if test -f 'widgets/Overlay.cpp'; then $(CYGPATH_W) 'widgets/Overlay.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/Overlay.cpp'; fi`
|
||||
|
||||
widgets/audacity-OverlayPanel.o: widgets/OverlayPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-OverlayPanel.o -MD -MP -MF widgets/$(DEPDIR)/audacity-OverlayPanel.Tpo -c -o widgets/audacity-OverlayPanel.o `test -f 'widgets/OverlayPanel.cpp' || echo '$(srcdir)/'`widgets/OverlayPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-OverlayPanel.Tpo widgets/$(DEPDIR)/audacity-OverlayPanel.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/OverlayPanel.cpp' object='widgets/audacity-OverlayPanel.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 widgets/audacity-OverlayPanel.o `test -f 'widgets/OverlayPanel.cpp' || echo '$(srcdir)/'`widgets/OverlayPanel.cpp
|
||||
|
||||
widgets/audacity-OverlayPanel.obj: widgets/OverlayPanel.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-OverlayPanel.obj -MD -MP -MF widgets/$(DEPDIR)/audacity-OverlayPanel.Tpo -c -o widgets/audacity-OverlayPanel.obj `if test -f 'widgets/OverlayPanel.cpp'; then $(CYGPATH_W) 'widgets/OverlayPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/OverlayPanel.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-OverlayPanel.Tpo widgets/$(DEPDIR)/audacity-OverlayPanel.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='widgets/OverlayPanel.cpp' object='widgets/audacity-OverlayPanel.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 widgets/audacity-OverlayPanel.obj `if test -f 'widgets/OverlayPanel.cpp'; then $(CYGPATH_W) 'widgets/OverlayPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/widgets/OverlayPanel.cpp'; fi`
|
||||
|
||||
widgets/audacity-ProgressDialog.o: widgets/ProgressDialog.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT widgets/audacity-ProgressDialog.o -MD -MP -MF widgets/$(DEPDIR)/audacity-ProgressDialog.Tpo -c -o widgets/audacity-ProgressDialog.o `test -f 'widgets/ProgressDialog.cpp' || echo '$(srcdir)/'`widgets/ProgressDialog.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) widgets/$(DEPDIR)/audacity-ProgressDialog.Tpo widgets/$(DEPDIR)/audacity-ProgressDialog.Po
|
||||
@ -6237,6 +6356,8 @@ distclean-generic:
|
||||
-rm -f prefs/$(am__dirstamp)
|
||||
-rm -f toolbars/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f toolbars/$(am__dirstamp)
|
||||
-rm -f tracks/ui/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f tracks/ui/$(am__dirstamp)
|
||||
-rm -f widgets/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f widgets/$(am__dirstamp)
|
||||
-rm -f xml/$(DEPDIR)/$(am__dirstamp)
|
||||
@ -6251,7 +6372,7 @@ clean-am: clean-binPROGRAMS clean-checkLTLIBRARIES clean-generic \
|
||||
clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) tracks/ui/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-tags
|
||||
@ -6297,7 +6418,7 @@ install-ps-am:
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) blockfile/$(DEPDIR) commands/$(DEPDIR) effects/$(DEPDIR) effects/VST/$(DEPDIR) effects/audiounits/$(DEPDIR) effects/ladspa/$(DEPDIR) effects/lv2/$(DEPDIR) effects/nyquist/$(DEPDIR) effects/vamp/$(DEPDIR) export/$(DEPDIR) import/$(DEPDIR) ondemand/$(DEPDIR) prefs/$(DEPDIR) toolbars/$(DEPDIR) tracks/ui/$(DEPDIR) widgets/$(DEPDIR) xml/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
108
src/Menus.cpp
108
src/Menus.cpp
@ -134,6 +134,7 @@ simplifies construction of menu items.
|
||||
#endif /* EXPERIMENTAL_SCOREALIGN */
|
||||
|
||||
#include "tracks/ui/Scrubbing.h"
|
||||
#include "prefs/TracksPrefs.h"
|
||||
|
||||
enum {
|
||||
kAlignStartZero = 0,
|
||||
@ -753,9 +754,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
// Scrubbing sub-menu
|
||||
GetScrubber().AddMenuItems();
|
||||
|
||||
c->AddItem(wxT("Pause"), _("&Pause"), FN(OnPause), wxT("P"),
|
||||
c->GetDefaultFlags() | AudioStreamNotScrubbingFlag,
|
||||
c->GetDefaultMask() | AudioStreamNotScrubbingFlag);
|
||||
c->AddItem(wxT("Pause"), _("&Pause"), FN(OnPause), wxT("P"));
|
||||
c->AddItem(wxT("SkipStart"), _("S&kip to Start"), FN(OnSkipStart), wxT("Home"),
|
||||
AudioIONotBusyFlag, AudioIONotBusyFlag);
|
||||
c->AddItem(wxT("SkipEnd"), _("Skip to E&nd"), FN(OnSkipEnd), wxT("End"),
|
||||
@ -928,6 +927,16 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
c->AddSeparator();
|
||||
c->AddCheck(wxT("ScrollLeftOfZero"), _("Scroll left of zero"),
|
||||
FN(OnToggleScrollLeftOfZero),
|
||||
gPrefs->ReadBool(
|
||||
TracksPrefs::ScrollingPreferenceKey(),
|
||||
TracksPrefs::ScrollingPreferenceDefault()),
|
||||
AudioIONotBusyFlag, AudioIONotBusyFlag);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
c->EndMenu();
|
||||
|
||||
// All of this is a bit hacky until we can get more things connected into
|
||||
@ -1128,8 +1137,8 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddCommand(wxT("SeekLeftLong"), _("Long seek left during playback"), FN(OnSeekLeftLong), wxT("Shift+Left\tallowDup"));
|
||||
c->AddCommand(wxT("SeekRightLong"), _("Long Seek right during playback"), FN(OnSeekRightLong), wxT("Shift+Right\tallowDup"));
|
||||
|
||||
c->SetDefaultFlags(TrackPanelOrRulerHasFocus,
|
||||
TrackPanelOrRulerHasFocus);
|
||||
c->SetDefaultFlags(TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag | TrackPanelHasFocus);
|
||||
|
||||
c->AddCommand(wxT("PrevTrack"), _("Move Focus to Previous Track"), FN(OnCursorUp), wxT("Up"));
|
||||
c->AddCommand(wxT("NextTrack"), _("Move Focus to Next Track"), FN(OnCursorDown), wxT("Down"));
|
||||
@ -1141,9 +1150,6 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddCommand(wxT("ShiftDown"), _("Move Focus to Next and Select"), FN(OnShiftDown), wxT("Shift+Down"));
|
||||
|
||||
|
||||
c->SetDefaultFlags(TracksExistFlag | TrackPanelHasFocus,
|
||||
TracksExistFlag | TrackPanelHasFocus);
|
||||
|
||||
c->AddCommand(wxT("Toggle"), _("Toggle Focused Track"), FN(OnToggle), wxT("Return"));
|
||||
c->AddCommand(wxT("ToggleAlt"), _("Toggle Focused Track"), FN(OnToggle), wxT("NUMPAD_ENTER"));
|
||||
|
||||
@ -1734,8 +1740,6 @@ CommandFlag AudacityProject::GetUpdateFlags()
|
||||
flags |= TextClipFlag;
|
||||
|
||||
flags |= GetFocusedFrame();
|
||||
if (flags & (TrackPanelHasFocus | RulerHasFocus))
|
||||
flags |= TrackPanelOrRulerHasFocus;
|
||||
|
||||
double start, end;
|
||||
GetPlayRegion(&start, &end);
|
||||
@ -1770,9 +1774,6 @@ CommandFlag AudacityProject::GetUpdateFlags()
|
||||
if (bar->ControlToolBar::CanStopAudioStream())
|
||||
flags |= CanStopAudioStreamFlag;
|
||||
|
||||
if(!GetScrubber().HasStartedScrubbing())
|
||||
flags |= AudioStreamNotScrubbingFlag;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
@ -2281,8 +2282,13 @@ void AudacityProject::OnRecordAppend()
|
||||
GetControlToolBar()->OnRecord(evt);
|
||||
}
|
||||
|
||||
// The code for "OnPlayStopSelect" is simply the code of "OnPlayStop" and "OnStopSelect" merged.
|
||||
void AudacityProject::OnPlayStopSelect()
|
||||
{
|
||||
DoPlayStopSelect(false, false);
|
||||
}
|
||||
|
||||
// The code for "OnPlayStopSelect" is simply the code of "OnPlayStop" and "OnStopSelect" merged.
|
||||
void AudacityProject::DoPlayStopSelect(bool click, bool shift)
|
||||
{
|
||||
wxCommandEvent evt;
|
||||
ControlToolBar *toolbar = GetControlToolBar();
|
||||
@ -2291,7 +2297,36 @@ void AudacityProject::OnPlayStopSelect()
|
||||
if (gAudioIO->IsStreamActive(GetAudioIOToken())) {
|
||||
toolbar->SetPlay(false); //Pops
|
||||
toolbar->SetStop(true); //Pushes stop down
|
||||
mViewInfo.selectedRegion.setT0(gAudioIO->GetStreamTime(), false);
|
||||
|
||||
// change the selection
|
||||
auto time = gAudioIO->GetStreamTime();
|
||||
auto &selection = mViewInfo.selectedRegion;
|
||||
if (shift && click) {
|
||||
// Change the region selection, as if by shift-click at the play head
|
||||
auto t0 = selection.t0(), t1 = selection.t1();
|
||||
if (time < t0)
|
||||
// Grow selection
|
||||
t0 = time;
|
||||
else if (time > t1)
|
||||
// Grow selection
|
||||
t1 = time;
|
||||
else {
|
||||
// Shrink selection, changing the nearer boundary
|
||||
if (fabs(t0 - time) < fabs(t1 - time))
|
||||
t0 = time;
|
||||
else
|
||||
t1 = time;
|
||||
}
|
||||
selection.setTimes(t0, t1);
|
||||
}
|
||||
else if (click)
|
||||
// Set a point selection, as if by a click at the play head
|
||||
selection.setTimes(time, time);
|
||||
else
|
||||
// How stop and set cursor always worked
|
||||
// -- change t0, collapsing to point only if t1 was greater
|
||||
selection.setT0(time, false);
|
||||
|
||||
ModifyState(false); // without bWantsAutoSave
|
||||
toolbar->OnStop(evt);
|
||||
}
|
||||
@ -2477,6 +2512,15 @@ void AudacityProject::OnSortName()
|
||||
mTrackPanel->Refresh(false);
|
||||
}
|
||||
|
||||
void AudacityProject::OnToggleScrollLeftOfZero()
|
||||
{
|
||||
auto key = TracksPrefs::ScrollingPreferenceKey();
|
||||
auto value = gPrefs->ReadBool(key, TracksPrefs::ScrollingPreferenceDefault());
|
||||
gPrefs->Write(key, !value);
|
||||
gPrefs->Flush();
|
||||
UpdatePrefs();
|
||||
}
|
||||
|
||||
void AudacityProject::OnSkipStart()
|
||||
{
|
||||
wxCommandEvent evt;
|
||||
@ -2691,13 +2735,17 @@ void AudacityProject::NextFrame()
|
||||
switch( GetFocusedFrame() )
|
||||
{
|
||||
case TopDockHasFocus:
|
||||
if(mTrackPanel->GetFocusedTrack())
|
||||
mTrackPanel->SetFocus();
|
||||
else
|
||||
mRuler->SetFocus();
|
||||
|
||||
#ifdef EXPERIMENTAL_TIME_RULER_NAVIGATION
|
||||
mRuler->SetFocus();
|
||||
break;
|
||||
|
||||
case RulerHasFocus:
|
||||
#endif
|
||||
|
||||
mTrackPanel->SetFocus();
|
||||
break;
|
||||
|
||||
case TrackPanelHasFocus:
|
||||
mToolManager->GetBotDock()->SetFocus();
|
||||
break;
|
||||
@ -2715,20 +2763,24 @@ void AudacityProject::PrevFrame()
|
||||
{
|
||||
switch( GetFocusedFrame() )
|
||||
{
|
||||
case TopDockHasFocus:
|
||||
mToolManager->GetBotDock()->SetFocus();
|
||||
case BotDockHasFocus:
|
||||
mTrackPanel->SetFocus();
|
||||
break;
|
||||
|
||||
case TrackPanelHasFocus:
|
||||
|
||||
#ifdef EXPERIMENTAL_TIME_RULER_NAVIGATION
|
||||
mRuler->SetFocus();
|
||||
break;
|
||||
|
||||
case TrackPanelHasFocus:
|
||||
case RulerHasFocus:
|
||||
#endif
|
||||
|
||||
mToolManager->GetTopDock()->SetFocus();
|
||||
break;
|
||||
|
||||
case BotDockHasFocus:
|
||||
if(mTrackPanel->GetFocusedTrack())
|
||||
mTrackPanel->SetFocus();
|
||||
else
|
||||
mRuler->SetFocus();
|
||||
|
||||
case TopDockHasFocus:
|
||||
mToolManager->GetBotDock()->SetFocus();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -80,6 +80,7 @@ void OnSeekRightLong();
|
||||
|
||||
bool MakeReadyToPlay(bool loop = false, bool cutpreview = false); // Helper function that sets button states etc.
|
||||
void OnPlayStop();
|
||||
void DoPlayStopSelect(bool click, bool shift);
|
||||
void OnPlayStopSelect();
|
||||
void OnPlayOneSecond();
|
||||
void OnPlayToSelection();
|
||||
@ -178,6 +179,8 @@ double GetTime(const Track *t);
|
||||
void OnSortTime();
|
||||
void OnSortName();
|
||||
|
||||
void OnToggleScrollLeftOfZero();
|
||||
|
||||
void OnSnapToOff();
|
||||
void OnSnapToNearest();
|
||||
void OnSnapToPrior();
|
||||
|
@ -2161,11 +2161,9 @@ void AudacityProject::OnActivate(wxActivateEvent & event)
|
||||
mLastFocusedWindow->SetFocus();
|
||||
}
|
||||
else {
|
||||
if (mTrackPanel->GetFocusedTrack()) {
|
||||
if (mTrackPanel) {
|
||||
mTrackPanel->SetFocus();
|
||||
}
|
||||
else
|
||||
mRuler->SetFocus();
|
||||
}
|
||||
// No longer need to remember the last focused window
|
||||
mLastFocusedWindow = NULL;
|
||||
@ -4708,7 +4706,8 @@ void AudacityProject::TP_DisplaySelection()
|
||||
if (gAudioIO->IsBusy())
|
||||
audioTime = gAudioIO->GetStreamTime();
|
||||
else {
|
||||
audioTime = 0;
|
||||
double playEnd;
|
||||
GetPlayRegion(&audioTime, &playEnd);
|
||||
}
|
||||
|
||||
GetSelectionBar()->SetTimes(mViewInfo.selectedRegion.t0(),
|
||||
@ -5364,7 +5363,6 @@ void AudacityProject::PlaybackScroller::OnTimer(wxCommandEvent &event)
|
||||
// Let other listeners get the notification
|
||||
event.Skip();
|
||||
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (mActive && mProject->IsAudioActive())
|
||||
{
|
||||
// Pan the view, so that we center the play indicator.
|
||||
@ -5382,5 +5380,4 @@ void AudacityProject::PlaybackScroller::OnTimer(wxCommandEvent &event)
|
||||
viewInfo.h = std::max(0.0, viewInfo.h);
|
||||
trackPanel->Refresh(false);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -5472,12 +5472,9 @@ void TrackPanel::HandleWheelRotation(wxMouseEvent & event)
|
||||
(event.m_wheelDelta > 0 ? (double)event.m_wheelDelta : 120.0);
|
||||
|
||||
if (event.ShiftDown()
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
// Don't pan during smooth scrolling. That would conflict with keeping
|
||||
// the play indicator centered.
|
||||
&& !GetProject()->GetScrubber().IsScrollScrubbing()
|
||||
#endif
|
||||
)
|
||||
&& !GetProject()->GetScrubber().IsScrollScrubbing())
|
||||
{
|
||||
// MM: Scroll left/right when used with Shift key down
|
||||
mListener->TP_ScrollWindow(
|
||||
@ -5506,15 +5503,12 @@ void TrackPanel::HandleWheelRotation(wxMouseEvent & event)
|
||||
// Time corresponding to mouse position
|
||||
wxCoord xx;
|
||||
double center_h;
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (GetProject()->GetScrubber().IsScrollScrubbing()) {
|
||||
// Expand or contract about the center, ignoring mouse position
|
||||
center_h = mViewInfo->h + (GetScreenEndTime() - mViewInfo->h) / 2.0;
|
||||
xx = mViewInfo->TimeToPosition(center_h, trackLeftEdge);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
else {
|
||||
xx = event.m_x;
|
||||
center_h = mViewInfo->PositionToTime(xx, trackLeftEdge);
|
||||
}
|
||||
@ -7119,49 +7113,46 @@ void TrackPanel::UpdateVRulerSize()
|
||||
/// TrackPanel::OnNextTrack.
|
||||
void TrackPanel::OnPrevTrack( bool shift )
|
||||
{
|
||||
bool rulerFocus = mRuler->HasFocus();
|
||||
bool stealFocus = (mCircularTrackNavigation && rulerFocus);
|
||||
if(stealFocus) // if there isn't one, focus on last
|
||||
TrackListIterator iter( mTracks );
|
||||
Track* t = GetFocusedTrack();
|
||||
if( t == NULL ) // if there isn't one, focus on last
|
||||
{
|
||||
if(rulerFocus) {
|
||||
this->SetFocus();
|
||||
mRuler->Refresh();
|
||||
}
|
||||
TrackListIterator iter( mTracks );
|
||||
auto t = iter.Last();
|
||||
t = iter.Last();
|
||||
SetFocusedTrack( t );
|
||||
EnsureVisible( t );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
}
|
||||
else if (rulerFocus) {
|
||||
// JKC: wxBell() is probably for accessibility, so a blind
|
||||
// user knows they were at the top track.
|
||||
wxBell();
|
||||
return;
|
||||
}
|
||||
|
||||
Track* t = GetFocusedTrack();
|
||||
Track* p = mTracks->GetPrev( t, true ); // Get previous track
|
||||
if (!p) {
|
||||
SetFocusedTrack(nullptr);
|
||||
mRuler->SetFocus();
|
||||
Refresh(false);
|
||||
mRuler->Refresh();
|
||||
return;
|
||||
}
|
||||
|
||||
Track* p = NULL;
|
||||
bool tSelected = false;
|
||||
bool pSelected = false;
|
||||
if( shift )
|
||||
{
|
||||
p = mTracks->GetPrev( t, true ); // Get previous track
|
||||
if( p == NULL ) // On first track
|
||||
{
|
||||
// JKC: wxBell() is probably for accessibility, so a blind
|
||||
// user knows they were at the top track.
|
||||
wxBell();
|
||||
if( mCircularTrackNavigation )
|
||||
{
|
||||
TrackListIterator iter( mTracks );
|
||||
p = iter.Last();
|
||||
}
|
||||
else
|
||||
{
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
}
|
||||
}
|
||||
tSelected = t->GetSelected();
|
||||
if (p)
|
||||
pSelected = p->GetSelected();
|
||||
if( tSelected && pSelected )
|
||||
{
|
||||
mTracks->Select( t, false );
|
||||
SetFocusedTrack( p ); // move focus to next track up
|
||||
SetFocusedTrack( p ); // move focus to next track down
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
@ -7169,7 +7160,7 @@ void TrackPanel::OnPrevTrack( bool shift )
|
||||
if( tSelected && !pSelected )
|
||||
{
|
||||
mTracks->Select( p, true );
|
||||
SetFocusedTrack( p ); // move focus to next track up
|
||||
SetFocusedTrack( p ); // move focus to next track down
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
@ -7177,7 +7168,7 @@ void TrackPanel::OnPrevTrack( bool shift )
|
||||
if( !tSelected && pSelected )
|
||||
{
|
||||
mTracks->Select( p, false );
|
||||
SetFocusedTrack( p ); // move focus to next track up
|
||||
SetFocusedTrack( p ); // move focus to next track down
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
@ -7185,7 +7176,7 @@ void TrackPanel::OnPrevTrack( bool shift )
|
||||
if( !tSelected && !pSelected )
|
||||
{
|
||||
mTracks->Select( t, true );
|
||||
SetFocusedTrack( p ); // move focus to next track up
|
||||
SetFocusedTrack( p ); // move focus to next track down
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
@ -7193,10 +7184,35 @@ void TrackPanel::OnPrevTrack( bool shift )
|
||||
}
|
||||
else
|
||||
{
|
||||
SetFocusedTrack( p ); // move focus to next track up
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
p = mTracks->GetPrev( t, true ); // Get next track
|
||||
if( p == NULL ) // On last track so stay there?
|
||||
{
|
||||
wxBell();
|
||||
if( mCircularTrackNavigation )
|
||||
{
|
||||
TrackListIterator iter( mTracks );
|
||||
for( Track *d = iter.First(); d; d = iter.Next( true ) )
|
||||
{
|
||||
p = d;
|
||||
}
|
||||
SetFocusedTrack( p ); // Wrap to the first track
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetFocusedTrack( p ); // move focus to next track down
|
||||
EnsureVisible( p );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -7205,46 +7221,37 @@ void TrackPanel::OnPrevTrack( bool shift )
|
||||
/// block or not.
|
||||
void TrackPanel::OnNextTrack( bool shift )
|
||||
{
|
||||
if(mRuler->HasFocus()) {
|
||||
TrackListIterator iter(mTracks);
|
||||
auto first = iter.First();
|
||||
if(first != nullptr) {
|
||||
// Steal focus
|
||||
this->SetFocus();
|
||||
SetFocusedTrack(first);
|
||||
EnsureVisible(first);
|
||||
MakeParentModifyState(false);
|
||||
mRuler->Refresh();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Track *t;
|
||||
Track *n = nullptr;
|
||||
bool tSelected, nSelected;
|
||||
Track *n;
|
||||
TrackListIterator iter( mTracks );
|
||||
bool tSelected,nSelected;
|
||||
|
||||
t = GetFocusedTrack(); // Get currently focused track
|
||||
bool surrenderFocus =
|
||||
t == nullptr ||
|
||||
((n = mTracks->GetNext( t, true )) == nullptr &&
|
||||
mCircularTrackNavigation);
|
||||
|
||||
if( surrenderFocus ) // if there is no next, give focus to the ruler
|
||||
if( t == NULL ) // if there isn't one, focus on first
|
||||
{
|
||||
SetFocusedTrack(nullptr);
|
||||
mRuler->SetFocus();
|
||||
mRuler->Refresh();
|
||||
Refresh(false);
|
||||
t = iter.First();
|
||||
SetFocusedTrack( t );
|
||||
EnsureVisible( t );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if( shift )
|
||||
{
|
||||
n = mTracks->GetNext( t, true ); // Get next track
|
||||
if( n == NULL ) // On last track so stay there
|
||||
{
|
||||
wxBell();
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
if( mCircularTrackNavigation )
|
||||
{
|
||||
TrackListIterator iter( mTracks );
|
||||
n = iter.First();
|
||||
}
|
||||
else
|
||||
{
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
}
|
||||
}
|
||||
tSelected = t->GetSelected();
|
||||
nSelected = n->GetSelected();
|
||||
@ -7283,11 +7290,24 @@ void TrackPanel::OnNextTrack( bool shift )
|
||||
}
|
||||
else
|
||||
{
|
||||
n = mTracks->GetNext( t, true ); // Get next track
|
||||
if( n == NULL ) // On last track so stay there
|
||||
{
|
||||
wxBell();
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
if( mCircularTrackNavigation )
|
||||
{
|
||||
TrackListIterator iter( mTracks );
|
||||
n = iter.First();
|
||||
SetFocusedTrack( n ); // Wrap to the first track
|
||||
EnsureVisible( n );
|
||||
MakeParentModifyState(false);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
EnsureVisible( t );
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -7301,25 +7321,26 @@ void TrackPanel::OnNextTrack( bool shift )
|
||||
|
||||
void TrackPanel::OnFirstTrack()
|
||||
{
|
||||
SetFocusedTrack(nullptr);
|
||||
if (!mRuler->HasFocus()) {
|
||||
mRuler->SetFocus();
|
||||
mRuler->Refresh();
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t)
|
||||
return;
|
||||
|
||||
TrackListIterator iter(mTracks);
|
||||
Track *f = iter.First();
|
||||
if (t != f)
|
||||
{
|
||||
SetFocusedTrack(f);
|
||||
MakeParentModifyState(false);
|
||||
}
|
||||
EnsureVisible(f);
|
||||
}
|
||||
|
||||
void TrackPanel::OnLastTrack()
|
||||
{
|
||||
if (mTracks->empty()) {
|
||||
OnFirstTrack();
|
||||
return;
|
||||
}
|
||||
else if(mRuler->HasFocus()) {
|
||||
this->SetFocus();
|
||||
mRuler->Refresh();
|
||||
}
|
||||
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t)
|
||||
return;
|
||||
|
||||
TrackListIterator iter(mTracks);
|
||||
Track *l = iter.Last();
|
||||
if (t != l)
|
||||
|
@ -18,6 +18,7 @@ Paul Licameli
|
||||
#include "prefs/GUISettings.h"
|
||||
#include "Prefs.h"
|
||||
#include "xml/XMLWriter.h"
|
||||
#include "prefs/TracksPrefs.h"
|
||||
|
||||
namespace {
|
||||
static const double gMaxZoom = 6000000;
|
||||
@ -133,7 +134,8 @@ void ViewInfo::UpdatePrefs()
|
||||
{
|
||||
ZoomInfo::UpdatePrefs();
|
||||
#ifdef EXPERIMENTAL_SCROLLING_LIMITS
|
||||
gPrefs->Read(wxT("/GUI/ScrollBeyondZero"), &bScrollBeyondZero, false);
|
||||
gPrefs->Read(TracksPrefs::ScrollingPreferenceKey(), &bScrollBeyondZero,
|
||||
TracksPrefs::ScrollingPreferenceDefault());
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -110,13 +110,6 @@ void MousePrefs::CreateList()
|
||||
AddItem(_("Left-Drag"), _("Select"), _("Set Selection Range"));
|
||||
AddItem(_("Shift-Left-Click"), _("Select"), _("Extend Selection Range"));
|
||||
AddItem(_("Left-Double-Click"), _("Select"), _("Select Clip or Entire Track"));
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_BASIC
|
||||
AddItem(CTRL + _("-Left-Click"), _("Select"), _("Scrub"));
|
||||
AddItem(CTRL + _("-Left-Drag"), _("Select"), _("Seek"));
|
||||
#endif
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
AddItem(CTRL + _("-Left-Double-Click"), _("Select"), _("Scroll-scrub"));
|
||||
#endif
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
|
||||
AddItem(_("Wheel-Rotate"), _("Select"), _("Change scrub speed"));
|
||||
#endif
|
||||
|
@ -45,6 +45,12 @@ TracksPrefs::~TracksPrefs()
|
||||
{
|
||||
}
|
||||
|
||||
const wxChar *TracksPrefs::ScrollingPreferenceKey()
|
||||
{
|
||||
static auto string = wxT("/GUI/ScrollBeyondZero");
|
||||
return string;
|
||||
}
|
||||
|
||||
void TracksPrefs::Populate()
|
||||
{
|
||||
mSoloCodes.Add(wxT("Simple"));
|
||||
@ -134,8 +140,8 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
true);
|
||||
#ifdef EXPERIMENTAL_SCROLLING_LIMITS
|
||||
S.TieCheckBox(_("Enable scrolling left of &zero"),
|
||||
wxT("/GUI/ScrollBeyondZero"),
|
||||
false);
|
||||
ScrollingPreferenceKey(),
|
||||
ScrollingPreferenceDefault());
|
||||
#endif
|
||||
|
||||
S.AddSpace(10);
|
||||
|
@ -29,6 +29,9 @@ class TracksPrefs final : public PrefsPanel
|
||||
~TracksPrefs();
|
||||
bool Apply() override;
|
||||
|
||||
static const wxChar *ScrollingPreferenceKey();
|
||||
static inline bool ScrollingPreferenceDefault() { return false; }
|
||||
|
||||
private:
|
||||
void Populate();
|
||||
void PopulateOrExchange(ShuttleGui & S);
|
||||
|
@ -431,9 +431,7 @@ void ControlToolBar::EnableDisableButtons()
|
||||
mFF->SetEnabled(tracks && !playing && !recording);
|
||||
|
||||
auto pProject = GetActiveProject();
|
||||
mPause->SetEnabled(CanStopAudioStream() &&
|
||||
!(pProject &&
|
||||
pProject->GetScrubber().HasStartedScrubbing()));
|
||||
mPause->SetEnabled(CanStopAudioStream());
|
||||
}
|
||||
|
||||
void ControlToolBar::SetPlay(bool down, PlayAppearance appearance)
|
||||
@ -479,7 +477,12 @@ void ControlToolBar::SetRecord(bool down, bool append)
|
||||
EnableDisableButtons();
|
||||
}
|
||||
|
||||
bool ControlToolBar::IsRecordDown()
|
||||
bool ControlToolBar::IsPauseDown() const
|
||||
{
|
||||
return mPause->IsDown();
|
||||
}
|
||||
|
||||
bool ControlToolBar::IsRecordDown() const
|
||||
{
|
||||
return mRecord->IsDown();
|
||||
}
|
||||
@ -1090,12 +1093,6 @@ void ControlToolBar::OnPause(wxCommandEvent & WXUNUSED(evt))
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SUPPORT
|
||||
if (gAudioIO->IsScrubbing())
|
||||
// Pausing does not make sense. Force the button
|
||||
// to pop up below.
|
||||
mPaused = true;
|
||||
#endif
|
||||
|
||||
if(mPaused)
|
||||
{
|
||||
@ -1108,7 +1105,15 @@ void ControlToolBar::OnPause(wxCommandEvent & WXUNUSED(evt))
|
||||
mPaused=true;
|
||||
}
|
||||
|
||||
gAudioIO->SetPaused(mPaused);
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SUPPORT
|
||||
if (gAudioIO->IsScrubbing())
|
||||
GetActiveProject()->GetScrubber().Pause(mPaused);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
gAudioIO->SetPaused(mPaused);
|
||||
}
|
||||
|
||||
UpdateStatusBar(GetActiveProject());
|
||||
}
|
||||
|
||||
@ -1190,22 +1195,22 @@ int ControlToolBar::WidthForStatusBar(wxStatusBar* const sb)
|
||||
int xMax = 0;
|
||||
const auto pauseString = wxT(" ") + wxGetTranslation(mStatePause);
|
||||
|
||||
auto update = [&] (const wxString &state, bool pauseToo) {
|
||||
auto update = [&] (const wxString &state) {
|
||||
int x, y;
|
||||
sb->GetTextExtent(
|
||||
wxGetTranslation(state) + ( pauseToo ? pauseString : wxString{} ) + wxT("."),
|
||||
wxGetTranslation(state) + pauseString + wxT("."),
|
||||
&x, &y
|
||||
);
|
||||
xMax = std::max(x, xMax);
|
||||
};
|
||||
|
||||
update(mStatePlay, true);
|
||||
update(mStateStop, true);
|
||||
update(mStateRecord, true);
|
||||
update(mStatePlay);
|
||||
update(mStateStop);
|
||||
update(mStateRecord);
|
||||
|
||||
// Note that Scrubbing + Paused is not allowed.
|
||||
for(const auto &state : Scrubber::GetAllUntranslatedStatusStrings())
|
||||
update(state, false);
|
||||
update(state);
|
||||
|
||||
return xMax + 30; // added constant needed because xMax isn't large enough for some reason, plus some space.
|
||||
}
|
||||
|
@ -70,7 +70,8 @@ class ControlToolBar final : public ToolBar {
|
||||
void SetStop(bool down);
|
||||
void SetRecord(bool down, bool append=false);
|
||||
|
||||
bool IsRecordDown();
|
||||
bool IsPauseDown() const;
|
||||
bool IsRecordDown() const;
|
||||
|
||||
// A project is only allowed to stop an audio stream that it owns.
|
||||
bool CanStopAudioStream ();
|
||||
|
@ -188,11 +188,7 @@ namespace {
|
||||
|
||||
void Scrubber::MarkScrubStart(
|
||||
// Assume xx is relative to the left edge of TrackPanel!
|
||||
wxCoord xx
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
, bool smoothScrolling
|
||||
#endif
|
||||
, bool alwaysSeeking
|
||||
wxCoord xx, bool smoothScrolling, bool alwaysSeeking
|
||||
)
|
||||
{
|
||||
UncheckAllMenuItems();
|
||||
@ -200,9 +196,7 @@ void Scrubber::MarkScrubStart(
|
||||
// Don't actually start scrubbing, but collect some information
|
||||
// needed for the decision to start scrubbing later when handling
|
||||
// drag events.
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
SetScrollScrubbing (smoothScrolling);
|
||||
#endif
|
||||
mSmoothScrollingScrub = smoothScrolling;
|
||||
mAlwaysSeeking = alwaysSeeking;
|
||||
|
||||
ControlToolBar * const ctb = mProject->GetControlToolBar();
|
||||
@ -216,9 +210,6 @@ void Scrubber::MarkScrubStart(
|
||||
|
||||
ctb->SetPlay(true, ControlToolBar::PlayAppearance::Scrub);
|
||||
|
||||
// This disables the pause button.
|
||||
ctb->EnableDisableButtons();
|
||||
|
||||
ctb->UpdateStatusBar(mProject);
|
||||
|
||||
mScrubStartPosition = xx;
|
||||
@ -236,6 +227,9 @@ bool Scrubber::MaybeStartScrubbing(wxCoord xx)
|
||||
if (IsScrubbing())
|
||||
return false;
|
||||
else {
|
||||
const auto state = ::wxGetMouseState();
|
||||
mDragging = state.LeftIsDown();
|
||||
|
||||
const bool busy = gAudioIO->IsBusy();
|
||||
if (busy && gAudioIO->GetNumCaptureChannels() > 0) {
|
||||
// Do not stop recording, and don't try to start scrubbing after
|
||||
@ -265,6 +259,14 @@ bool Scrubber::MaybeStartScrubbing(wxCoord xx)
|
||||
mScrubStartPosition = position;
|
||||
}
|
||||
|
||||
if (mDragging && mSmoothScrollingScrub) {
|
||||
auto delta = time0 - time1;
|
||||
time0 = std::max(0.0, std::min(maxTime,
|
||||
(viewInfo.h + mProject->GetScreenEndTime()) / 2
|
||||
));
|
||||
time1 = time0 + delta;
|
||||
}
|
||||
|
||||
AudioIOStartStreamOptions options(mProject->GetDefaultPlayOptions());
|
||||
options.timeTrack = NULL;
|
||||
options.scrubDelay = (kTimerInterval / 1000.0);
|
||||
@ -278,8 +280,10 @@ bool Scrubber::MaybeStartScrubbing(wxCoord xx)
|
||||
p->GetTranscriptionToolBar()->GetPlaySpeed();
|
||||
}
|
||||
#else
|
||||
// That idea seems unpopular... just make it one
|
||||
mMaxScrubSpeed = options.maxScrubSpeed = 1.0;
|
||||
// That idea seems unpopular... just make it one for move-scrub,
|
||||
// but big for drag-scrub
|
||||
mMaxScrubSpeed = options.maxScrubSpeed =
|
||||
mDragging ? AudioIO::GetMaxScrubSpeed() : 1.0;
|
||||
#endif
|
||||
options.maxScrubTime = mProject->GetTracks()->GetEndTime();
|
||||
ControlToolBar::PlayAppearance appearance =
|
||||
@ -303,8 +307,11 @@ bool Scrubber::MaybeStartScrubbing(wxCoord xx)
|
||||
// Wait to test again
|
||||
mScrubStartClockTimeMillis = ::wxGetLocalTimeMillis();
|
||||
|
||||
if (IsScrubbing())
|
||||
if (IsScrubbing()) {
|
||||
mProject->GetPlaybackScroller().Activate(mSmoothScrollingScrub);
|
||||
mScrubHasFocus = true;
|
||||
mLastScrubPosition = xx;
|
||||
}
|
||||
|
||||
// Return true whether we started scrub, or are still waiting to decide.
|
||||
return true;
|
||||
@ -313,13 +320,19 @@ bool Scrubber::MaybeStartScrubbing(wxCoord xx)
|
||||
|
||||
void Scrubber::ContinueScrubbing()
|
||||
{
|
||||
const wxMouseState state(::wxGetMouseState());
|
||||
|
||||
if (mDragging && !state.LeftIsDown()) {
|
||||
// Stop and set cursor
|
||||
mProject->DoPlayStopSelect(true, state.ShiftDown());
|
||||
return;
|
||||
}
|
||||
|
||||
// Thus scrubbing relies mostly on periodic polling of mouse and keys,
|
||||
// not event notifications. But there are a few event handlers that
|
||||
// leave messages for this routine, in mScrubSeekPress and in mScrubHasFocus.
|
||||
|
||||
// Seek only when the pointer is in the panel. Else, scrub.
|
||||
const wxMouseState state(::wxGetMouseState());
|
||||
TrackPanel *const trackPanel = mProject->GetTrackPanel();
|
||||
|
||||
// Decide whether to skip play, because either mouse is down now,
|
||||
@ -337,26 +350,32 @@ void Scrubber::ContinueScrubbing()
|
||||
}
|
||||
|
||||
const wxPoint position = trackPanel->ScreenToClient(state.GetPosition());
|
||||
// When we don't have focus, enqueue silent scrubs until we regain focus.
|
||||
const auto &viewInfo = mProject->GetViewInfo();
|
||||
|
||||
bool result = false;
|
||||
if (!mScrubHasFocus)
|
||||
// When we don't have focus, enqueue silent scrubs until we regain focus.
|
||||
result = gAudioIO->EnqueueScrubBySignedSpeed(0, mMaxScrubSpeed, false);
|
||||
else if (mDragging && mSmoothScrollingScrub) {
|
||||
const auto lastTime = gAudioIO->GetLastTimeInScrubQueue();
|
||||
const auto delta = mLastScrubPosition - position.x;
|
||||
const double time = viewInfo.OffsetTimeByPixels(lastTime, delta);
|
||||
result = gAudioIO->EnqueueScrubByPosition(time, mMaxScrubSpeed, true);
|
||||
mLastScrubPosition = position.x;
|
||||
}
|
||||
else {
|
||||
const double time = mProject->GetViewInfo().PositionToTime(position.x, trackPanel->GetLeftOffset());
|
||||
|
||||
const double time = viewInfo.PositionToTime(position.x, trackPanel->GetLeftOffset());
|
||||
if (seek)
|
||||
// Cause OnTimer() to suppress the speed display
|
||||
mScrubSpeedDisplayCountdown = 1;
|
||||
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (mSmoothScrollingScrub) {
|
||||
const double speed = FindScrubSpeed(seek, time);
|
||||
result = gAudioIO->EnqueueScrubBySignedSpeed(speed, mMaxScrubSpeed, seek);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
result = gAudioIO->EnqueueScrubByPosition
|
||||
(time, seek ? 1.0 : mMaxScrubSpeed, seek);
|
||||
(time, seek ? 1.0 : mMaxScrubSpeed, seek);
|
||||
}
|
||||
|
||||
if (result)
|
||||
@ -364,12 +383,9 @@ void Scrubber::ContinueScrubbing()
|
||||
// else, if seek requested, try again at a later time when we might
|
||||
// enqueue a long enough stutter
|
||||
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (mSmoothScrollingScrub)
|
||||
;
|
||||
else
|
||||
#endif
|
||||
{
|
||||
else {
|
||||
if (mScrubSpeedDisplayCountdown > 0)
|
||||
--mScrubSpeedDisplayCountdown;
|
||||
}
|
||||
@ -380,7 +396,8 @@ void Scrubber::StopScrubbing()
|
||||
UncheckAllMenuItems();
|
||||
|
||||
mScrubStartPosition = -1;
|
||||
SetScrollScrubbing (false);
|
||||
mProject->GetPlaybackScroller().Activate(false);
|
||||
mDragging = false;
|
||||
|
||||
if (!IsScrubbing())
|
||||
{
|
||||
@ -389,12 +406,8 @@ void Scrubber::StopScrubbing()
|
||||
const auto ctb = mProject->GetControlToolBar();
|
||||
ctb->SetPlay(false, ControlToolBar::PlayAppearance::Straight);
|
||||
}
|
||||
}
|
||||
|
||||
void Scrubber::SetScrollScrubbing(bool scrollScrubbing)
|
||||
{
|
||||
mSmoothScrollingScrub = scrollScrubbing;
|
||||
mProject->GetPlaybackScroller().Activate(scrollScrubbing);
|
||||
mProject->GetRulerPanel()->HideQuickPlayIndicator();
|
||||
}
|
||||
|
||||
bool Scrubber::IsScrubbing() const
|
||||
@ -406,24 +419,22 @@ bool Scrubber::IsScrubbing() const
|
||||
else {
|
||||
const_cast<Scrubber&>(*this).mScrubToken = -1;
|
||||
const_cast<Scrubber&>(*this).mScrubStartPosition = -1;
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
// Don't call SetScrollScrubbing
|
||||
const_cast<Scrubber&>(*this).mSmoothScrollingScrub = false;
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool Scrubber::ShouldDrawScrubSpeed()
|
||||
{
|
||||
if (mDragging)
|
||||
return false;
|
||||
|
||||
return IsScrubbing() &&
|
||||
mScrubHasFocus && (
|
||||
// Draw for (non-scroll) scrub, sometimes, but never for seek
|
||||
(!PollIsSeeking() && mScrubSpeedDisplayCountdown > 0)
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
// Draw always for scroll-scrub and for scroll-seek
|
||||
|| mSmoothScrollingScrub
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
@ -437,6 +448,10 @@ double Scrubber::FindScrubSpeed(bool seeking, double time) const
|
||||
|
||||
void Scrubber::HandleScrollWheel(int steps)
|
||||
{
|
||||
if (mDragging)
|
||||
// Not likely you would spin it with the left button down, but...
|
||||
return;
|
||||
|
||||
const int newLogMaxScrubSpeed = mLogMaxScrubSpeed + steps;
|
||||
static const double maxScrubSpeedBase =
|
||||
pow(2.0, 1.0 / ScrubSpeedStepsPerOctave);
|
||||
@ -445,44 +460,39 @@ void Scrubber::HandleScrollWheel(int steps)
|
||||
newSpeed <= AudioIO::GetMaxScrubSpeed()) {
|
||||
mLogMaxScrubSpeed = newLogMaxScrubSpeed;
|
||||
mMaxScrubSpeed = newSpeed;
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (!mSmoothScrollingScrub)
|
||||
#endif
|
||||
// Show the speed for one second
|
||||
mScrubSpeedDisplayCountdown = kOneSecondCountdown + 1;
|
||||
}
|
||||
}
|
||||
|
||||
void Scrubber::Pause( bool paused )
|
||||
{
|
||||
mScrubHasFocus = !paused;
|
||||
}
|
||||
|
||||
void Scrubber::OnActivateOrDeactivateApp(wxActivateEvent &event)
|
||||
{
|
||||
if (event.GetActive())
|
||||
mScrubHasFocus = IsScrubbing();
|
||||
Pause(!IsScrubbing() || mProject->GetControlToolBar()->IsPauseDown());
|
||||
else
|
||||
mScrubHasFocus = false;
|
||||
Pause(true);
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void Scrubber::Forwarder::OnMouse(wxMouseEvent &event)
|
||||
{
|
||||
auto ruler = scrubber.mProject->GetRulerPanel();
|
||||
auto isScrubbing = scrubber.IsScrubbing();
|
||||
if (!isScrubbing && scrubber.HasStartedScrubbing()) {
|
||||
if (!event.HasAnyModifiers() &&
|
||||
event.GetEventType() == wxEVT_MOTION) {
|
||||
|
||||
// Really start scrub if motion is far enough
|
||||
auto ruler = scrubber.mProject->GetRulerPanel();
|
||||
auto xx = ruler->ScreenToClient(::wxGetMousePosition()).x;
|
||||
scrubber.MaybeStartScrubbing(xx);
|
||||
}
|
||||
}
|
||||
else if (isScrubbing && !event.HasAnyModifiers()) {
|
||||
if (isScrubbing && !event.HasAnyModifiers()) {
|
||||
if(event.LeftDown() ||
|
||||
(event.LeftIsDown() && event.Dragging())) {
|
||||
scrubber.mScrubSeekPress = true;
|
||||
auto ruler = scrubber.mProject->GetRulerPanel();
|
||||
if (!scrubber.mDragging)
|
||||
scrubber.mScrubSeekPress = true;
|
||||
auto xx = ruler->ScreenToClient(::wxGetMousePosition()).x;
|
||||
ruler->UpdateQuickPlayPos(xx);
|
||||
ruler->ShowQuickPlayIndicator();
|
||||
}
|
||||
else if (event.m_wheelRotation) {
|
||||
double steps = event.m_wheelRotation /
|
||||
@ -551,11 +561,9 @@ void ScrubbingOverlay::Draw(OverlayPanel &, wxDC &dc)
|
||||
// (b) Error alerts
|
||||
// So they were changed to 'orange' and 'lime'.
|
||||
static const wxColour clrNoScroll(215, 162, 0), clrScroll(0, 204, 153);
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
if (scrubber.IsScrollScrubbing())
|
||||
dc.SetTextForeground(clrScroll);
|
||||
else
|
||||
#endif
|
||||
dc.SetTextForeground(clrNoScroll);
|
||||
|
||||
dc.DrawText(mLastScrubSpeedText, mLastScrubRect.GetX(), mLastScrubRect.GetY());
|
||||
@ -567,9 +575,26 @@ void ScrubbingOverlay::OnTimer(wxCommandEvent &event)
|
||||
event.Skip();
|
||||
|
||||
Scrubber &scrubber = GetScrubber();
|
||||
if (!GetScrubber().IsScrubbing()) {
|
||||
mNextScrubRect = wxRect();
|
||||
return;
|
||||
const auto isScrubbing = scrubber.IsScrubbing();
|
||||
const auto ruler = mProject->GetRulerPanel();
|
||||
auto position = ::wxGetMousePosition();
|
||||
|
||||
{
|
||||
if(scrubber.HasStartedScrubbing()) {
|
||||
auto xx = ruler->ScreenToClient(position).x;
|
||||
ruler->UpdateQuickPlayPos(xx);
|
||||
|
||||
if (!isScrubbing)
|
||||
// Really start scrub if motion is far enough
|
||||
scrubber.MaybeStartScrubbing(xx);
|
||||
}
|
||||
|
||||
if (!isScrubbing) {
|
||||
mNextScrubRect = wxRect();
|
||||
return;
|
||||
}
|
||||
else
|
||||
ruler->ShowQuickPlayIndicator();
|
||||
}
|
||||
|
||||
// Call ContinueScrubbing() here in the timer handler
|
||||
@ -587,32 +612,24 @@ void ScrubbingOverlay::OnTimer(wxCommandEvent &event)
|
||||
trackPanel->GetSize(&panelWidth, &panelHeight);
|
||||
|
||||
// Where's the mouse?
|
||||
int xx, yy;
|
||||
::wxGetMousePosition(&xx, &yy);
|
||||
trackPanel->ScreenToClient(&xx, &yy);
|
||||
position = trackPanel->ScreenToClient(position);
|
||||
|
||||
const bool seeking = scrubber.PollIsSeeking();
|
||||
|
||||
// Find the text
|
||||
const double maxScrubSpeed = GetScrubber().GetMaxScrubSpeed();
|
||||
const double speed =
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
scrubber.IsScrollScrubbing()
|
||||
? scrubber.FindScrubSpeed
|
||||
(seeking, mProject->GetViewInfo().PositionToTime(xx, trackPanel->GetLeftOffset()))
|
||||
:
|
||||
#endif
|
||||
maxScrubSpeed;
|
||||
(seeking, mProject->GetViewInfo().PositionToTime(position.x, trackPanel->GetLeftOffset()))
|
||||
: maxScrubSpeed;
|
||||
|
||||
const wxChar *format =
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
scrubber.IsScrollScrubbing()
|
||||
? seeking
|
||||
? wxT("%+.2fX")
|
||||
: wxT("%+.2f")
|
||||
:
|
||||
#endif
|
||||
wxT("%.2f");
|
||||
: wxT("%.2f");
|
||||
|
||||
mNextScrubSpeedText = wxString::Format(format, speed);
|
||||
|
||||
@ -624,11 +641,12 @@ void ScrubbingOverlay::OnTimer(wxCommandEvent &event)
|
||||
dc.SetFont(labelFont);
|
||||
dc.GetTextExtent(mNextScrubSpeedText, &width, &height);
|
||||
}
|
||||
xx = std::max(0, std::min(panelWidth - width, xx - width / 2));
|
||||
const auto xx =
|
||||
std::max(0, std::min(panelWidth - width, position.x - width / 2));
|
||||
|
||||
// Put the text above the cursor, if it fits.
|
||||
enum { offset = 20 };
|
||||
yy -= height + offset;
|
||||
auto yy = position.y - height + offset;
|
||||
if (yy < 0)
|
||||
yy += height + 2 * offset;
|
||||
yy = std::max(0, std::min(panelHeight - height, yy));
|
||||
@ -649,7 +667,7 @@ Scrubber &ScrubbingOverlay::GetScrubber()
|
||||
|
||||
bool Scrubber::PollIsSeeking()
|
||||
{
|
||||
return mAlwaysSeeking || ::wxGetMouseState().LeftIsDown();
|
||||
return mDragging || (mAlwaysSeeking || ::wxGetMouseState().LeftIsDown());
|
||||
}
|
||||
|
||||
void Scrubber::DoScrub(bool scroll, bool seek)
|
||||
@ -669,7 +687,8 @@ void Scrubber::DoScrub(bool scroll, bool seek)
|
||||
MarkScrubStart(xx, scroll, seek);
|
||||
}
|
||||
else if(!match) {
|
||||
SetScrollScrubbing(scroll);
|
||||
mSmoothScrollingScrub = scroll;
|
||||
mProject->GetPlaybackScroller().Activate(scroll);
|
||||
mAlwaysSeeking = seek;
|
||||
UncheckAllMenuItems();
|
||||
CheckMenuItem();
|
||||
|
@ -29,11 +29,8 @@ public:
|
||||
|
||||
// Assume xx is relative to the left edge of TrackPanel!
|
||||
void MarkScrubStart(
|
||||
wxCoord xx
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL
|
||||
, bool smoothScrolling
|
||||
#endif
|
||||
, bool alwaysSeeking // if false, can switch seeking or scrubbing
|
||||
wxCoord xx, bool smoothScrolling,
|
||||
bool alwaysSeeking // if false, can switch seeking or scrubbing
|
||||
// by mouse button state
|
||||
);
|
||||
|
||||
@ -57,7 +54,6 @@ public:
|
||||
|
||||
bool IsScrollScrubbing() const // If true, implies HasStartedScrubbing()
|
||||
{ return mSmoothScrollingScrub; }
|
||||
void SetScrollScrubbing(bool scrollScrubbing);
|
||||
|
||||
bool IsAlwaysSeeking() const
|
||||
{ return mAlwaysSeeking; }
|
||||
@ -89,6 +85,8 @@ public:
|
||||
// All possible status strings.
|
||||
static std::vector<wxString> GetAllUntranslatedStatusStrings();
|
||||
|
||||
void Pause(bool paused);
|
||||
|
||||
private:
|
||||
void DoScrub(bool scroll, bool seek);
|
||||
void OnActivateOrDeactivateApp(wxActivateEvent & event);
|
||||
@ -113,10 +111,12 @@ private:
|
||||
bool mScrubHasFocus;
|
||||
int mScrubSpeedDisplayCountdown;
|
||||
wxCoord mScrubStartPosition;
|
||||
wxCoord mLastScrubPosition {};
|
||||
double mMaxScrubSpeed;
|
||||
bool mScrubSeekPress;
|
||||
bool mSmoothScrollingScrub;
|
||||
bool mAlwaysSeeking{};
|
||||
bool mAlwaysSeeking {};
|
||||
bool mDragging {};
|
||||
|
||||
#ifdef EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
|
||||
int mLogMaxScrubSpeed;
|
||||
|
@ -82,6 +82,7 @@ array of Ruler::Label.
|
||||
#include "../Prefs.h"
|
||||
#include "../Snap.h"
|
||||
#include "../tracks/ui/Scrubbing.h"
|
||||
#include "../prefs/TracksPrefs.h"
|
||||
|
||||
//#define SCRUB_ABOVE
|
||||
#define RULER_DOUBLE_CLICK
|
||||
@ -2044,7 +2045,8 @@ void AdornedRulerPanel::UpdatePrefs()
|
||||
#ifdef EXPERIMENTAL_TWO_TONE_TIME_RULER
|
||||
{
|
||||
bool scrollBeyondZero = false;
|
||||
gPrefs->Read(wxT("/GUI/ScrollBeyondZero"), &scrollBeyondZero, false);
|
||||
gPrefs->Read(TracksPrefs::ScrollingPreferenceKey(), &scrollBeyondZero,
|
||||
TracksPrefs::ScrollingPreferenceDefault());
|
||||
mRuler.SetTwoTone(scrollBeyondZero);
|
||||
}
|
||||
#endif
|
||||
@ -2380,7 +2382,7 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
|
||||
|
||||
auto &scrubber = mProject->GetScrubber();
|
||||
if (scrubber.HasStartedScrubbing()) {
|
||||
if (IsButton(zone))
|
||||
if (IsButton(zone) || evt.RightDown())
|
||||
// Fall through to pushbutton handling
|
||||
;
|
||||
else if (zone == StatusChoice::EnteringQP &&
|
||||
@ -2503,13 +2505,16 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
|
||||
mDoubleClick = false;
|
||||
HandleQPClick(evt, mousePosX);
|
||||
HandleQPDrag(evt, mousePosX);
|
||||
ShowQuickPlayIndicator();
|
||||
}
|
||||
else if (evt.LeftIsDown())
|
||||
else if (evt.LeftIsDown() && HasCapture()) {
|
||||
HandleQPDrag(evt, mousePosX);
|
||||
else if (evt.LeftUp())
|
||||
ShowQuickPlayIndicator();
|
||||
}
|
||||
else if (evt.LeftUp() && HasCapture()) {
|
||||
HandleQPRelease(evt);
|
||||
|
||||
ShowQuickPlayIndicator();
|
||||
ShowQuickPlayIndicator();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2654,10 +2659,12 @@ void AdornedRulerPanel::HandleQPRelease(wxMouseEvent &evt)
|
||||
if (mDoubleClick)
|
||||
return;
|
||||
|
||||
HideQuickPlayIndicator();
|
||||
|
||||
if (HasCapture())
|
||||
ReleaseMouse();
|
||||
else
|
||||
return;
|
||||
|
||||
HideQuickPlayIndicator();
|
||||
|
||||
mCaptureState = CaptureState{};
|
||||
|
||||
@ -2908,7 +2915,6 @@ void AdornedRulerPanel::OnKeyDown(wxKeyEvent &event)
|
||||
void AdornedRulerPanel::OnSetFocus(wxFocusEvent & WXUNUSED(event))
|
||||
{
|
||||
AudacityProject::CaptureKeyboard(this);
|
||||
mProject->GetTrackPanel()->SetFocusedTrack(nullptr);
|
||||
mTabState = TabState{};
|
||||
Refresh( false );
|
||||
}
|
||||
|
@ -293,6 +293,10 @@ public:
|
||||
|
||||
~AdornedRulerPanel();
|
||||
|
||||
#ifndef EXPERIMENTAL_TIME_RULER_NAVIGATION
|
||||
bool AcceptsFocus() const override { return false; }
|
||||
#endif
|
||||
|
||||
public:
|
||||
static int GetRulerHeight();
|
||||
static int GetRulerHeight(bool showScrubBar);
|
||||
|
@ -117,9 +117,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_c99_func_lrint.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/visibility.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@ -414,12 +413,6 @@ AUDACITY_NAME = @AUDACITY_NAME@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AVCODEC_CFLAGS = @AVCODEC_CFLAGS@
|
||||
AVCODEC_LIBS = @AVCODEC_LIBS@
|
||||
AVFORMAT_CFLAGS = @AVFORMAT_CFLAGS@
|
||||
AVFORMAT_LIBS = @AVFORMAT_LIBS@
|
||||
AVUTIL_CFLAGS = @AVUTIL_CFLAGS@
|
||||
AVUTIL_LIBS = @AVUTIL_LIBS@
|
||||
AWK = @AWK@
|
||||
BUILD_LDFLAGS = @BUILD_LDFLAGS@
|
||||
CC = @CC@
|
||||
@ -460,8 +453,6 @@ GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
|
||||
GSTREAMER_LIBS = @GSTREAMER_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_GTK = @HAVE_GTK@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
@ -475,8 +466,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
JACK_CFLAGS = @JACK_CFLAGS@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LAME_CFLAGS = @LAME_CFLAGS@
|
||||
LAME_LIBS = @LAME_LIBS@
|
||||
LD = @LD@
|
||||
@ -523,7 +512,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PORTAUDIO_CFLAGS = @PORTAUDIO_CFLAGS@
|
||||
PORTAUDIO_LIBS = @PORTAUDIO_LIBS@
|
||||
PORTMIXER_LIBS = @PORTMIXER_LIBS@
|
||||
|
Loading…
x
Reference in New Issue
Block a user