1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-22 22:43:01 +02:00

Changes to seeking and scrubbing from Paul Licameli.

These are mostly under an EXPERIMENTAL_ #ifdef.  Also has a change for the prompt string for preferences so the displayed keybinding is adjusted when in multitool mode.
This commit is contained in:
james.k.crook@gmail.com
2014-11-29 22:09:57 +00:00
parent 94c243cb2e
commit c71397beae
13 changed files with 1783 additions and 1644 deletions

View File

@@ -53,16 +53,7 @@ wxString DeviceName(const PaDeviceInfo* info);
wxString HostName(const PaDeviceInfo* info);
bool ValidateDeviceNames();
class AUDACITY_DLL_API AudioIOListener {
public:
AudioIOListener() {}
virtual ~AudioIOListener() {}
virtual void OnAudioIORate(int rate) = 0;
virtual void OnAudioIOStartRecording() = 0;
virtual void OnAudioIOStopRecording() = 0;
virtual void OnAudioIONewBlockFiles(const wxString& blockFileLog) = 0;
};
class AudioIOListener;
#define BAD_STREAM_TIME -1000000000.0
@@ -113,7 +104,10 @@ class AUDACITY_DLL_API AudioIO {
AudioIOListener* listener,
bool playLooped = false,
double cutPreviewGapStart = 0.0,
double cutPreviewGapLen = 0.0);
double cutPreviewGapLen = 0.0,
// May be other than t0,
// but will be constrained between t0 and t1
const double *pStartTime = 0);
/** \brief Stop recording, playback or input monitoring.
*
@@ -123,7 +117,7 @@ class AUDACITY_DLL_API AudioIO {
void StopStream();
/** \brief Move the playback / recording position of the current stream
* by the specified amount from where it is now */
void SeekStream(double seconds) { mSeek = seconds; };
void SeekStream(double seconds) { mSeek = seconds; }
/** \brief Returns true if audio i/o is busy starting, stopping, playing,
* or recording.
@@ -140,6 +134,8 @@ class AUDACITY_DLL_API AudioIO {
bool IsStreamActive();
bool IsStreamActive(int token);
wxLongLong GetLastPlaybackTime() const { return mLastPlaybackTimeMillis; }
#ifdef EXPERIMENTAL_MIDI_OUT
/** \brief Compute the current PortMidi timestamp time.
*
@@ -517,6 +513,8 @@ private:
volatile bool mAudioThreadFillBuffersLoopRunning;
volatile bool mAudioThreadFillBuffersLoopActive;
wxLongLong mLastPlaybackTimeMillis;
#ifdef EXPERIMENTAL_MIDI_OUT
volatile bool mMidiThreadFillBuffersLoopRunning;
volatile bool mMidiThreadFillBuffersLoopActive;