You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-sound/audacity/files/audacity-2.2.2-midi.patch

169 lines
4.9 KiB

https://bugs.gentoo.org/637110
Original patch by Matt Whitlock
Forward-ported from version 2.2.0 to 2.2.2
--- audacity-minsrc-2.2.2-rc1/src/AudioIO.cpp
+++ audacity-minsrc-2.2.2-rc1/src/AudioIO.cpp
@@ -976,6 +976,7 @@
};
#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 @@
return PaUtil_GetTime() - streamStartTime;
}
+#endif
const int AudioIO::StandardRates[] = {
8000,
@@ -1803,6 +1805,7 @@
}
#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 @@
mAudioOutLatency = info->outputLatency;
mSystemMinusAudioTimePlusLatency += mAudioOutLatency;
}
+#endif
return (mLastPaError == paNoError);
}
@@ -1955,8 +1959,10 @@
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 @@
mPlaybackTracks.clear();
mCaptureTracks.clear();
+#ifdef HAVE_MIDI
mMidiPlaybackTracks.clear();
+#endif
#ifdef EXPERIMENTAL_SCRUBBING_SUPPORT
mScrubQueue.reset();
@@ -4669,13 +4677,13 @@
(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 @@
: 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 @@
// 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;
}
}
--- audacity-minsrc-2.2.2-rc1/src/Project.cpp
+++ audacity-minsrc-2.2.2-rc1/src/Project.cpp
@@ -460,10 +460,11 @@
} );
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 @@
#endif
{
+#ifdef USE_MIDI
if (Importer::IsMidi(fileName))
DoImportMIDI(this, fileName);
else
+#endif
Import(fileName);
ZoomAfterImport(nullptr);
--- audacity-minsrc-2.2.2-rc1/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp
+++ audacity-minsrc-2.2.2-rc1/src/tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp
@@ -9,6 +9,9 @@
**********************************************************************/
#include "../../../../Audacity.h"
+
+#ifdef USE_MIDI
+
#include "NoteTrackButtonHandle.h"
#include "../../../../HitTestResult.h"
@@ -113,3 +116,4 @@
return RefreshCode::RefreshNone;
}
+#endif
--- audacity-minsrc-2.2.2-rc1/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
+++ audacity-minsrc-2.2.2-rc1/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
@@ -9,6 +9,9 @@
**********************************************************************/
#include "../../../../Audacity.h"
+
+#ifdef USE_MIDI
+
#include "NoteTrackVZoomHandle.h"
#include "../../../../Experimental.h"
#include "NoteTrackVRulerControls.h"
@@ -332,3 +335,5 @@
TrackVRulerControls::DrawZooming
( dc, mRect, panelRect, mZoomStart, mZoomEnd );
}
+
+#endif
--- audacity-minsrc-2.2.2-rc1/src/tracks/ui/TimeShiftHandle.cpp
+++ audacity-minsrc-2.2.2-rc1/src/tracks/ui/TimeShiftHandle.cpp
@@ -604,7 +604,7 @@
{
trySnap = true;
if (pTrack->GetKind() == Track::Wave) {
- auto wt = static_cast<const WaveTrack *>(pTrack);
+ auto wt = static_cast<const WaveTrack *>(pTrack.get());
const double rate = wt->GetRate();
// set it to a sample point
desiredSlideAmount = rint(desiredSlideAmount * rate) / rate;