diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index 8d1008364..607c953ba 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -976,6 +976,7 @@ private: }; #endif +#ifdef EXPERIMENTAL_MIDI_OUT // return the system time as a double static double streamStartTime = 0; // bias system time to small number @@ -995,6 +996,7 @@ static double SystemTime(bool usingAlsa) return PaUtil_GetTime() - streamStartTime; } +#endif const int AudioIO::StandardRates[] = { 8000, @@ -1803,6 +1805,7 @@ bool AudioIO::StartPortAudioStream(double sampleRate, } #endif +#ifdef EXPERIMENTAL_MIDI_OUT // We use audio latency to estimate how far ahead of DACS we are writing if (mPortStreamV19 != NULL && mLastPaError == paNoError) { const PaStreamInfo* info = Pa_GetStreamInfo(mPortStreamV19); @@ -1811,6 +1814,7 @@ bool AudioIO::StartPortAudioStream(double sampleRate, mAudioOutLatency = info->outputLatency; mSystemMinusAudioTimePlusLatency += mAudioOutLatency; } +#endif return (mLastPaError == paNoError); } @@ -1955,8 +1959,10 @@ int AudioIO::StartStream(const WaveTrackConstArray &playbackTracks, double playbackTime = 4.0; +#ifdef EXPERIMENTAL_MIDI_OUT streamStartTime = 0; streamStartTime = SystemTime(mUsingAlsa); +#endif #ifdef EXPERIMENTAL_SCRUBBING_SUPPORT bool scrubbing = (options.pScrubbingOptions != nullptr); @@ -2830,7 +2836,9 @@ void AudioIO::StopStream() mPlaybackTracks.clear(); mCaptureTracks.clear(); +#ifdef HAVE_MIDI mMidiPlaybackTracks.clear(); +#endif #ifdef EXPERIMENTAL_SCRUBBING_SUPPORT mScrubQueue.reset(); @@ -4669,13 +4677,13 @@ int audacityAudioCallback(const void *inputBuffer, void *outputBuffer, (float *)alloca(framesPerBuffer*numPlaybackChannels * sizeof(float)) : (float *)outputBuffer; +#ifdef EXPERIMENTAL_MIDI_OUT if (gAudioIO->mCallbackCount++ == 0) { // This is effectively mSystemMinusAudioTime when the buffer is empty: gAudioIO->mStartTime = SystemTime(gAudioIO->mUsingAlsa) - gAudioIO->mT0; // later, mStartTime - mSystemMinusAudioTime will tell us latency } -#ifdef EXPERIMENTAL_MIDI_OUT /* GSW: Save timeInfo in case MidiPlayback needs it */ gAudioIO->mAudioCallbackClockTime = PaUtil_GetTime(); @@ -5051,7 +5059,9 @@ int audacityAudioCallback(const void *inputBuffer, void *outputBuffer, : gAudioIO->mTime >= gAudioIO->mT1)) // PRL: singalling MIDI output complete is necessary if // not USE_MIDI_THREAD, otherwise it's harmlessly redundant +#ifdef EXPERIMENTAL_MIDI_OUT gAudioIO->mMidiOutputComplete = true, +#endif callbackReturn = paComplete; } @@ -5114,7 +5124,9 @@ int audacityAudioCallback(const void *inputBuffer, void *outputBuffer, // PRL: singalling MIDI output complete is necessary if // not USE_MIDI_THREAD, otherwise it's harmlessly redundant +#ifdef EXPERIMENTAL_MIDI_OUT gAudioIO->mMidiOutputComplete = true, +#endif callbackReturn = paComplete; } } diff --git a/src/Project.cpp b/src/Project.cpp index 94af96183..166e692f5 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -460,10 +460,11 @@ public: } ); for (const auto &name : sortednames) { - +#ifdef USE_MIDI if (Importer::IsMidi(name)) AudacityProject::DoImportMIDI(mProject, name); else +#endif mProject->Import(name); } @@ -3046,9 +3047,11 @@ void AudacityProject::OpenFile(const wxString &fileNameArg, bool addtohistory) #endif { +#ifdef USE_MIDI if (Importer::IsMidi(fileName)) DoImportMIDI(this, fileName); else +#endif Import(fileName); ZoomAfterImport(nullptr); diff --git a/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp b/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp index da6555c1f..66dd7cc15 100644 --- a/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp +++ b/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp @@ -9,6 +9,9 @@ Paul Licameli split from TrackPanel.cpp **********************************************************************/ #include "../../../../Audacity.h" + +#ifdef USE_MIDI + #include "NoteTrackButtonHandle.h" #include "../../../../HitTestResult.h" @@ -113,3 +116,4 @@ UIHandle::Result NoteTrackButtonHandle::Cancel(AudacityProject *) return RefreshCode::RefreshNone; } +#endif diff --git a/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp b/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp index 85aedbe87..0a7eceaca 100644 --- a/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp +++ b/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp @@ -9,6 +9,9 @@ Paul Licameli split from TrackPanel.cpp **********************************************************************/ #include "../../../../Audacity.h" + +#ifdef USE_MIDI + #include "NoteTrackVZoomHandle.h" #include "../../../../Experimental.h" #include "NoteTrackVRulerControls.h" @@ -332,3 +335,5 @@ void NoteTrackVZoomHandle::DrawExtras TrackVRulerControls::DrawZooming ( dc, mRect, panelRect, mZoomStart, mZoomEnd ); } + +#endif diff --git a/src/tracks/ui/TimeShiftHandle.cpp b/src/tracks/ui/TimeShiftHandle.cpp index 1a44ab1c6..d5ded4b00 100644 --- a/src/tracks/ui/TimeShiftHandle.cpp +++ b/src/tracks/ui/TimeShiftHandle.cpp @@ -604,7 +604,7 @@ UIHandle::Result TimeShiftHandle::Drag { trySnap = true; if (pTrack->GetKind() == Track::Wave) { - auto wt = static_cast(pTrack); + auto wt = static_cast(pTrack.get()); const double rate = wt->GetRate(); // set it to a sample point desiredSlideAmount = rint(desiredSlideAmount * rate) / rate;