Update of /cvsroot/audacity/audacity-src/src In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26476
Modified Files: AudioIO.cpp AudioIO.h Menus.cpp NoteTrack.cpp NoteTrack.h Printing.cpp Project.cpp Track.cpp Track.h TrackArtist.cpp TrackArtist.h TrackPanel.cpp Log Message: Removed EXPERIMENTAL_NOTE_TRACK from the Audacity project. In order to turn MIDI on and off, we now use the USE_MIDI flag instead of the EXPERIMENTAL_NOTE_TRACK flag. Index: Printing.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/Printing.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Printing.cpp 1 Jul 2008 22:05:10 -0000 1.4 +++ Printing.cpp 7 Jul 2008 18:13:43 -0000 1.5 @@ -126,11 +126,11 @@ #endif } break; - #ifdef USE_MIDI +#ifdef USE_MIDI case Track::Note: artist.DrawNoteTrack((NoteTrack *)n, *dc, r, &viewInfo); break; - #endif +#endif // USE_MIDI case Track::Label: artist.DrawLabelTrack((LabelTrack *)n, *dc, r, &viewInfo); break; Index: AudioIO.h =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/AudioIO.h,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- AudioIO.h 3 Jul 2008 16:47:51 -0000 1.59 +++ AudioIO.h 7 Jul 2008 18:13:43 -0000 1.60 @@ -20,7 +20,7 @@ //#include "portmidi.h" //#include "porttime.h" #include "allegro.h" -#endif /* USE_MIDI */ +#endif // USE_MIDI #if USE_PORTMIXER #include "portmixer.h" @@ -58,9 +58,7 @@ virtual void OnAudioIONewBlockFiles(const wxString& blockFileLog) = 0; }; -#ifdef EXPERIMENTAL_NOTE_TRACK #define MAX_MIDI_BUFFER_SIZE 5000 -#endif /* EXPERIMENTAL_NOTE_TRACK */ class AudioIO { public: @@ -84,10 +82,8 @@ * instance. For use with IsStreamActive() below */ int StartStream(WaveTrackArray playbackTracks, WaveTrackArray captureTracks, -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ //NoteTrackArray midiTracks, -#endif /* EXPERIMENTAL_NOTE_TRACK */ TimeTrack *timeTrack, double sampleRate, double t0, double t1, AudioIOListener* listener, @@ -277,17 +273,13 @@ unsigned int numCaptureChannels, sampleFormat captureFormat); -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // bool StartPortMidiStream(); -#endif /* EXPERIMENTAL_NOTE_TRACK */ void FillBuffers(); -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // void FillMidiBuffers(); -#endif /* EXPERIMENTAL_NOTE_TRACK */ /** \brief Get the number of audio samples free in all of the playback * buffers. @@ -332,7 +324,6 @@ double NormalizeStreamTime(double absoluteTime) const; -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: // PmStream *mMidiStream; // PmEvent mMidiBuffer[MAX_MIDI_BUFFER_SIZE]; @@ -346,7 +337,6 @@ // long mMidiWait; // bool mMidiStreamActive; // bool mUpdateMidiTracks; -#endif /* EXPERIMENTAL_NOTE_TRACK */ AudioThread *mThread; Resample **mResample; @@ -355,12 +345,10 @@ RingBuffer **mPlaybackBuffers; WaveTrackArray mPlaybackTracks; -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // NoteTrackArray mMidiPlaybackTracks; // RingBuffer **mMidiPlaybackBuffers; // NoteTrackArray mMidiCaptureTracks; -#endif /* EXPERIMENTAL_NOTE_TRACK */ Mixer **mPlaybackMixers; int mStreamToken; @@ -381,10 +369,8 @@ bool mPaused; #if USE_PORTAUDIO_V19 PaStream *mPortStreamV19; -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // volatile bool mInCallbackFinishedState; -#endif /* EXPERIMENTAL_NOTE_TRACK */ #else /* USE_PORTAUDIO_V19 */ PortAudioStream *mPortStreamV18; @@ -402,12 +388,10 @@ volatile bool mAudioThreadFillBuffersLoopRunning; volatile bool mAudioThreadFillBuffersLoopActive; -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // volatile bool mMidiThreadShouldCallFillBuffersOnce; // volatile bool mMidiThreadFillBuffersLoopRunning; // volatile bool mMidiThreadFillBuffersLoopActive; -#endif /* EXPERIMENTAL_NOTE_TRACK */ volatile double mLastRecordingOffset; PaError mLastPaError; Index: AudioIO.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/AudioIO.cpp,v retrieving revision 1.190 retrieving revision 1.191 diff -u -d -r1.190 -r1.191 --- AudioIO.cpp 6 Jul 2008 18:35:54 -0000 1.190 +++ AudioIO.cpp 7 Jul 2008 18:13:40 -0000 1.191 @@ -45,10 +45,8 @@ #include <math.h> #include <stdlib.h> -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: //#include <string.h> -#endif /* EXPERIMENTAL_NOTE_TRACK */ #ifdef __WXMSW__ #include <malloc.h> @@ -70,10 +68,8 @@ #include "AudacityApp.h" #include "AudioIO.h" #include "WaveTrack.h" -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: //#include "NoteTrack.h" -#endif /* EXPERIMENTAL_NOTE_TRACK */ #include "Mix.h" #include "Resample.h" #include "RingBuffer.h" @@ -131,10 +127,9 @@ PaTimestamp outTime, void *userData ); #endif -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: //int compareTime( const void* a, const void* b ); -#endif /* EXPERIMENTAL_NOTE_TRACK */ + ////////////////////////////////////////////////////////////////////// // // class AudioThread - declaration and glue code @@ -234,12 +229,10 @@ mInCallbackFinishedState = false; #endif -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: // mMidiStream = NULL; // mMidiStreamActive = false; // mUpdateMidiTracks = false; -#endif /* EXPERIMENTAL_NOTE_TRACK */ mStreamToken = 0; mStopStreamCount = 0; mTempFloats = new float[65536]; // TODO: out channels * PortAudio buffer size @@ -273,7 +266,6 @@ // but any attempt to play or record will simply fail. } -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // PmError pmErr = Pm_Initialize(); @@ -289,7 +281,6 @@ // Same logic for PortMidi as described above for PortAudio // } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // Start thread mThread = new AudioThread(); @@ -321,10 +312,9 @@ } #endif Pa_Terminate(); -#ifdef EXPERIMENTAL_NOTE_TRACK + /* REQUIRES PORTMIDI */ // Pm_Terminate(); -#endif /* EXPERIMENTAL_NOTE_TRACK */ /* Delete is a "graceful" way to stop the thread. (Kill is the not-graceful way.) */ @@ -838,10 +828,8 @@ int AudioIO::StartStream(WaveTrackArray playbackTracks, WaveTrackArray captureTracks, -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ - //NoteTrackArray midiPlaybackTracks, -#endif /* EXPERIMENTAL_NOTE_TRACK */ + //NoteTrackArray midiPlaybackTracks, TimeTrack *timeTrack, double sampleRate, double t0, double t1, AudioIOListener* listener, @@ -907,10 +895,8 @@ mLastRecordingOffset = 0; mPlaybackTracks = playbackTracks; mCaptureTracks = captureTracks; -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // mMidiPlaybackTracks = midiPlaybackTracks; -#endif /* EXPERIMENTAL_NOTE_TRACK */ mPlayLooped = playLooped; mCutPreviewGapStart = cutPreviewGapStart; mCutPreviewGapLen = cutPreviewGapLen; @@ -968,11 +954,6 @@ mListener->OnAudioIOStartRecording(); } -#ifndef EXPERIMENTAL_NOTE_TRACK - bool success = StartPortAudioStream(sampleRate, playbackChannels, - captureChannels, captureFormat); -#else /* EXPERIMENTAL_NOTE_TRACK */ -/* HCK MIDI PATCH START */ bool successAudio; /* REQUIRES PORTMIDI */ @@ -985,25 +966,11 @@ // if( !mPlaybackTracks.IsEmpty() ){ successAudio = StartPortAudioStream(sampleRate, playbackChannels, captureChannels, captureFormat); -/* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ - -#ifndef EXPERIMENTAL_NOTE_TRACK - if (!success) { -#else /* EXPERIMENTAL_NOTE_TRACK */ -/* HCK MIDI PATCH START */ + if (!successAudio) { -/* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ if (mListener && captureChannels > 0) mListener->OnAudioIOStopRecording(); mStreamToken = 0; -#ifdef EXPERIMENTAL_NOTE_TRACK -// MIDI_PLAYBACK: -// printf( "***************************\n" ); -// printf( "EXPERIMENTAL_NOTE_TRACK return #1\n" ); -// printf( "***************************\n"); -#endif /* EXPERIMENTAL_NOTE_TRACK */ return 0; } @@ -1079,12 +1046,6 @@ mListener->OnAudioIOStopRecording(); wxPrintf(wxT("%hs\n"), Pa_GetErrorText(err)); mStreamToken = 0; -#ifdef EXPERIMENTAL_NOTE_TRACK -// MIDI_PLAYBACK: -// printf( "***************************\n" ); -// printf( "EXPERIMENTAL_NOTE_TRACK return #2\n" ); -// printf( "***************************\n"); -#endif /* EXPERIMENTAL_NOTE_TRACK */ return 0; } @@ -1095,17 +1056,14 @@ // clients accessing the AudioIO API, so they can query if // are the ones who have reserved AudioIO or not. // -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: // } -#endif /* EXPERIMENTAL_NOTE_TRACK */ mStreamToken = (++mNextStreamToken); return mStreamToken; } -#ifdef EXPERIMENTAL_NOTE_TRACK /* HCK MIDI PATCH START */ /* REQUIRES PORTMIDI */ //bool AudioIO::StartPortMidiStream() @@ -1191,8 +1149,6 @@ /* REQUIRES PORTMIDI END */ /* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ - void AudioIO::SetMeters(Meter *inputMeter, Meter *outputMeter) { mInputMeter = inputMeter; @@ -1208,29 +1164,19 @@ void AudioIO::StopStream() { -#ifdef EXPERIMENTAL_NOTE_TRACK // MIDI_PLAYBACK: -// printf( "EXPERIMENTAL_NOTE_TRACK StopStream\n" ); -#endif /* EXPERIMENTAL_NOTE_TRACK */ +// printf( "HCK StopStream\n" ); #if USE_PORTAUDIO_V19 -#ifndef EXPERIMENTAL_NOTE_TRACK - if( mPortStreamV19 == NULL ) -#else /* EXPERIMENTAL_NOTE_TRACK */ if( mPortStreamV19 == NULL /* REQUIRES PORTMIDI */ -// && mMidiStream == NULL - ) -#endif /* EXPERIMENTAL_NOTE_TRACK */ +// && mMidiStream == NULL + ) return; -#ifndef EXPERIMENTAL_NOTE_TRACK - if( Pa_IsStreamStopped( mPortStreamV19 ) ) -#else /* EXPERIMENTAL_NOTE_TRACK */ if( Pa_IsStreamStopped( mPortStreamV19 ) /* REQUIRES PORTMIDI */ -// && !mMidiStreamActive - ) -#endif /* EXPERIMENTAL_NOTE_TRACK */ +// && !mMidiStreamActive + ) return; #else if( mPortStreamV18 == NULL ) @@ -1314,7 +1260,6 @@ mInCallbackFinishedState = false; } #endif -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ /* Stop Midi playback */ // if ( mMidiStream ) @@ -1336,7 +1281,6 @@ // mLastMidiTime = 0; // mSeq->iteration_end(); // } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // If there's no token, we were just monitoring, so we can // skip this next part... @@ -1487,24 +1431,6 @@ return false; } -#ifndef EXPERIMENTAL_NOTE_TRACK -bool AudioIO::IsStreamActive() -{ -#if USE_PORTAUDIO_V19 - if( mPortStreamV19 ) - return Pa_IsStreamActive( mPortStreamV19 ) != 0; - else - return false; -#else - if( mPortStreamV18 && - Pa_StreamActive( mPortStreamV18 ) && - mInCallbackFinishedState == false ) - return true; - else - return false; -#endif -} -#else /* EXPERIMENTAL_NOTE_TRACK */ bool AudioIO::IsStreamActive() { bool isActive = false; @@ -1525,7 +1451,6 @@ // isActive = true; return isActive; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ bool AudioIO::IsStreamActive(int token) { @@ -1874,14 +1799,11 @@ gAudioIO->FillBuffers(); } -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ // if( gAudioIO->mMidiStreamActive ) // { // gAudioIO->FillMidiBuffers(); // } - -#endif /* EXPERIMENTAL_NOTE_TRACK */ Sleep(10); } @@ -2404,16 +2326,10 @@ } gAudioIO->mAudioThreadFillBuffersLoopActive = false; -#ifdef EXPERIMENTAL_NOTE_TRACK - -/* HCK MIDI PATCH START */ //if ( mMidiStreamActive && mMidiPlaybackTracks.GetCount() > 0 ) //FillMidiBuffers(); -/* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ } -#ifdef EXPERIMENTAL_NOTE_TRACK /* HCK MIDI PATCH START */ /* REQUIRES PORTMIDI */ //void AudioIO::FillMidiBuffers() @@ -2465,7 +2381,7 @@ // while ( currEvent = testSeq->iteration_next() ) // { - // TODO EXPERIMENTAL_NOTE_TRACK : this loop has Russian painter problem + // TODO HCK : this loop has Russian painter problem /* // In Update mode, events should be delivered immediately if (mUpdateMidiTracks) @@ -2505,12 +2421,12 @@ // if( mCnt > 0 ) // { // j = 0; -// printf( "EXPERIMENTAL_NOTE_TRACK : sorting...\n" ); +// printf( "HCK : sorting...\n" ); // qsort( mMidiQueue, mCnt, sizeof( PmEvent ), compareTime ); -// printf( "EXPERIMENTAL_NOTE_TRACK : sorting...\n" ); +// printf( "HCK : sorting...\n" ); // for( int azaa = 0; azaa < mCnt; azaa++ ) // { -// printf( "EXPERIMENTAL_NOTE_TRACK : SORT : %f %f\n", (float)mMidiQueue[azaa].timestamp, (float)time ); +// printf( "HCK : SORT : %f %f\n", (float)mMidiQueue[azaa].timestamp, (float)time ); // } // while( mMidiQueue[j].timestamp <= time ) // { @@ -2518,12 +2434,12 @@ // memcpy( &mMidiBuffer[i].message, &mMidiQueue[j].message, // sizeof( PmMessage ) ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : mCnt : %d\n", mCnt ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : j : %d\n", j ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : timestampQ : %f\n", (float)mMidiQueue[j].timestamp ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : timestampB : %f\n", (float)mMidiBuffer[i].timestamp ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : data Q : %f\n", (float)mMidiQueue[j].message ); -// printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : data B : %f\n", (float)mMidiBuffer[i].message ); +// printf( "HCK : QUEUE!!!! : mCnt : %d\n", mCnt ); +// printf( "HCK : QUEUE!!!! : j : %d\n", j ); +// printf( "HCK : QUEUE!!!! : timestampQ : %f\n", (float)mMidiQueue[j].timestamp ); +// printf( "HCK : QUEUE!!!! : timestampB : %f\n", (float)mMidiBuffer[i].timestamp ); +// printf( "HCK : QUEUE!!!! : data Q : %f\n", (float)mMidiQueue[j].message ); +// printf( "HCK : QUEUE!!!! : data B : %f\n", (float)mMidiBuffer[i].message ); // i++; // j++; @@ -2639,7 +2555,7 @@ // { // mMidiBuffer[i].timestamp = time; // mMidiBuffer[i].message = Pm_Message((int)(command + channel), (long)data1, (long)data2); -// printf( "EXPERIMENTAL_NOTE_TRACK[%d]\n", i ); +// printf( "HCK[%d]\n", i ); // printf( "Command : %d\n", (int)command ); // printf( "mTime : %f\n", (float)gAudioIO->mTime ); // printf( "TimeStamp : %f\n", (float)mMidiBuffer[i].timestamp ); @@ -2652,7 +2568,7 @@ // { // mMidiQueue[mCnt].timestamp = time + (long)currEvent->get_duration() * 1000; // mMidiQueue[mCnt].message = Pm_Message((int)(0x90 + channel), (long)data1, 0 ); -// printf( "EXPERIMENTAL_NOTE_TRACK QUEUE[%d]\n", mCnt ); +// printf( "HCK QUEUE[%d]\n", mCnt ); // printf( "Command : OFF\n" ); // printf( "mTime : %f\n", (float)gAudioIO->mTime ); // printf( "TimeStamp : %f\n", (float)mMidiQueue[mCnt].timestamp ); @@ -2688,7 +2604,7 @@ // { // if( !mUpdateMidiTracks ) // { -// printf( "EXPERIMENTAL_NOTE_TRACK : Pm_Write : 111111111\n" ); +// printf( "HCK : Pm_Write : 111111111\n" ); //qsort( mMidiBuffer, i, sizeof( PmEvent ), compareTime ); // Pm_Write(mMidiStream, mMidiBuffer, i); // mMidiWait = time - 1000; @@ -2702,7 +2618,7 @@ // { // if( !mUpdateMidiTracks ) // { -// printf( "EXPERIMENTAL_NOTE_TRACK : Pm_Write : 222222222\n" ); +// printf( "HCK : Pm_Write : 222222222\n" ); //qsort( mMidiBuffer, i, sizeof( PmEvent ), compareTime ); // Pm_Write( mMidiStream, mMidiBuffer, i ); // mMidiWait = time - 1000; @@ -2726,7 +2642,6 @@ //} /* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ ////////////////////////////////////////////////////////////////////// // // PortAudio callback thread context @@ -3164,14 +3079,12 @@ return callbackReturn; } -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ //int compareTime( const void* a, const void* b ) //{ // return( (int)((*(PmEvent*)a).timestamp - (*(PmEvent*)b).timestamp ) ); //} -#endif /* EXPERIMENTAL_NOTE_TRACK */ // Indentation settings for Vim and Emacs and unique identifier for Arch, a // version control system. Please do not modify past this point. // Index: TrackArtist.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/TrackArtist.cpp,v retrieving revision 1.120 retrieving revision 1.121 diff -u -d -r1.120 -r1.121 --- TrackArtist.cpp 1 Jul 2008 22:05:10 -0000 1.120 +++ TrackArtist.cpp 7 Jul 2008 18:13:44 -0000 1.121 @@ -40,7 +40,7 @@ #ifdef USE_MIDI #include "allegro.h" #include "NoteTrack.h" -#endif +#endif // USE_MIDI #include "AColor.h" #include "BlockFile.h" @@ -79,7 +79,7 @@ const int notePos[12] = { 1, 6, 11, 16, 21, 27, 32, 37, 42, 47, 52, 57 }; -#endif +#endif // USE_MIDI TrackArtist::TrackArtist() { @@ -2187,32 +2187,9 @@ d: the coordinate is at the baseline of the string (default) Thus, -justifys:"lt" places the left top of the string at the point given by (pitch, time). The default value is "ld". - - */ +*/ /* Declare Static functions */ -#ifndef EXPERIMENTAL_NOTE_TRACK -static char *IsShape(Allegro_note_ptr note); -static double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def); -static long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def); -static bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def); -static const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, const char *def); -static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def); -static int PITCH_TO_Y(double p, int bottom); -static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def); -static int PITCH_TO_Y(double p, int bottom); - -#else /* EXPERIMENTAL_NOTE_TRACK */ -//static char *IsShape(Allegro_note_ptr note); -//static char *IsShape(Alg_note_ptr note); -//static double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def); -//static long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def); -//static bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def); -//static const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, const char *def); -//static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def); -//static int PITCH_TO_Y(double p, int bottom); -//static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def); -//static int PITCH_TO_Y(double p, int bottom); static char *IsShape(Alg_note_ptr note); static double LookupRealAttribute(Alg_note_ptr note, Alg_attribute attr, double def); static long LookupIntAttribute(Alg_note_ptr note, Alg_attribute attr, long def); @@ -2222,28 +2199,11 @@ static int PITCH_TO_Y(double p, int bottom); static char *LookupAtomAttribute(Alg_note_ptr note, Alg_attribute attr, char *def); static int PITCH_TO_Y(double p, int bottom); -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns NULL if note is not a shape, // returns atom (string) value of note if note is a shape -#ifndef EXPERIMENTAL_NOTE_TRACK -char *IsShape(Allegro_note_ptr note) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (strcmp(parameters->parm.attr_name(), "shapea") == 0) { - return parameters->parm.a; - } - parameters = parameters->next; - } - return NULL; -} - -#else /* EXPERIMENTAL_NOTE_TRACK */ -//char *IsShape(Allegro_note_ptr note) char *IsShape(Alg_note_ptr note) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (strcmp(parameters->parm.attr_name(), "shapea") == 0) { @@ -2253,28 +2213,10 @@ } return NULL; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns value of attr, or default if not found -#ifndef EXPERIMENTAL_NOTE_TRACK -double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (parameters->parm.attr_name() == attr + 1 && - parameters->parm.attr_type() == 'r') { - return parameters->parm.r; - } - parameters = parameters->next; - } - return def; -} - -#else /* EXPERIMENTAL_NOTE_TRACK */ -//double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def) double LookupRealAttribute(Alg_note_ptr note, Alg_attribute attr, double def) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (parameters->parm.attr_name() == attr + 1 && @@ -2285,28 +2227,10 @@ } return def; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns value of attr, or default if not found -#ifndef EXPERIMENTAL_NOTE_TRACK -long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (parameters->parm.attr_name() == attr + 1 && - parameters->parm.attr_type() == 'i') { - return parameters->parm.i; - } - parameters = parameters->next; - } - return def; -} - -#else /* EXPERIMENTAL_NOTE_TRACK */ -//long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def) long LookupIntAttribute(Alg_note_ptr note, Alg_attribute attr, long def) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (parameters->parm.attr_name() == attr + 1 && @@ -2317,27 +2241,10 @@ } return def; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns value of attr, or default if not found -#ifndef EXPERIMENTAL_NOTE_TRACK -bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (parameters->parm.attr_name() == attr + 1 && - parameters->parm.attr_type() == 'l') { - return parameters->parm.l; - } - parameters = parameters->next; - } - return def; -} -#else /* EXPERIMENTAL_NOTE_TRACK */ -//bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def) bool LookupLogicalAttribute(Alg_note_ptr note, Alg_attribute attr, bool def) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (parameters->parm.attr_name() == attr + 1 && @@ -2348,27 +2255,10 @@ } return def; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns value of attr, or default if not found -#ifndef EXPERIMENTAL_NOTE_TRACK -const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, const char *def) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (parameters->parm.attr_name() == attr + 1 && - parameters->parm.attr_type() == 's') { - return parameters->parm.s; - } - parameters = parameters->next; - } - return def; -} -#else /* EXPERIMENTAL_NOTE_TRACK */ -//const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, const char *def) const char *LookupStringAttribute(Alg_note_ptr note, Alg_attribute attr, const char *def) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (parameters->parm.attr_name() == attr + 1 && @@ -2379,27 +2269,10 @@ } return def; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ // returns value of attr, or default if not found -#ifndef EXPERIMENTAL_NOTE_TRACK -char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def) -{ - Parameters_ptr parameters = note->parameters; - while (parameters) { - if (parameters->parm.attr_name() == attr + 1 && - parameters->parm.attr_type() == 'a') { - return parameters->parm.s; - } - parameters = parameters->next; - } - return def; -} -#else /* EXPERIMENTAL_NOTE_TRACK */ -//char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def) char *LookupAtomAttribute(Alg_note_ptr note, Alg_attribute attr, char *def) { - //Parameters_ptr parameters = note->parameters; Alg_parameters_ptr parameters = note->parameters; while (parameters) { if (parameters->parm.attr_name() == attr + 1 && @@ -2410,8 +2283,7 @@ } return def; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ -#endif /* USE_MIDI */ +#endif // USE_MIDI #define TIME_TO_X(t) (r.x + (int) (((t) - h) * pps)) #define X_TO_TIME(xx) (((xx) - r.x) / pps + h) @@ -2453,10 +2325,6 @@ double h1 = X_TO_TIME(r.x + r.width); -#ifndef EXPERIMENTAL_NOTE_TRACK - Seq_ptr seq = track->mSeq; -#else /* EXPERIMENTAL_NOTE_TRACK */ - //Seq_ptr seq = track->mSeq; Alg_seq_ptr seq = track->mSeq; if (!seq) { assert(track->mSerializationBuffer); @@ -2468,7 +2336,6 @@ track->mSerializationBuffer = NULL; } assert(seq); -#endif /* EXPERIMENTAL_NOTE_TRACK */ int visibleChannels = track->mVisibleChannels; if (!track->GetSelected()) @@ -2520,13 +2387,6 @@ } dc.SetClippingRegion(r); -#ifndef EXPERIMENTAL_NOTE_TRACK - int numEvents = seq->notes.len; - int index; -#else /* EXPERIMENTAL_NOTE_TRACK */ -// int numEvents = seq->notes.len; -// int index; -#endif /* EXPERIMENTAL_NOTE_TRACK */ // NOTE: it would be better to put this in some global initialization // function rather than do lookups every time. @@ -2554,23 +2414,6 @@ char *sizei = symbol_table.insert_string("sizei"); char *justifys = symbol_table.insert_string("justifys"); -#ifndef EXPERIMENTAL_NOTE_TRACK - for(index=0; index<numEvents; index++) { - if (seq->notes[index]->type == 'n') { - - Allegro_note_ptr note = (Allegro_note_ptr)(seq->notes[index]); - if (visibleChannels & (1 << (seq->notes[index]->chan & 15))) { - //The rest of this function is the same as the - //EXPERIMENTAL_NOTE_TRACK version,so it - //continues after the #endif. - -#else /* EXPERIMENTAL_NOTE_TRACK */ -// for(index=0; index<numEvents; index++) { -// if (seq->notes[index]->type == 'n') { -// Allegro_note_ptr note = (Allegro_note_ptr)(seq->notes[index]); -// if (visibleChannels & (1 << (seq->notes[index]->chan & 15))) { - - //We want to draw in seconds, so we need to convert to seconds seq->convert_to_seconds(); @@ -2589,8 +2432,6 @@ //if the notes channel is visible if (visibleChannels & (1 << (evt->chan & 15))) { - -#endif /* ! EXPERIMENTAL_NOTE_TRACK */ double x = note->time; double x1 = note->time + note->dur; if (x < h1 && x1 > h) { // omit if outside box @@ -2811,9 +2652,7 @@ } } -#ifdef EXPERIMENTAL_NOTE_TRACK seq->iteration_end(); -#endif /* EXPERIMENTAL_NOTE_TRACK */ dc.DestroyClippingRegion(); } #endif // USE_MIDI Index: Track.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/Track.cpp,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- Track.cpp 6 Jul 2008 16:43:57 -0000 1.47 +++ Track.cpp 7 Jul 2008 18:13:44 -0000 1.48 @@ -713,8 +713,6 @@ return waveTrackArray; } -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START */ NoteTrackArray TrackList::GetNoteTrackArray(bool selectionOnly) { NoteTrackArray noteTrackArray; @@ -729,9 +727,7 @@ } return noteTrackArray; } -/* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ #ifdef new #undef new #endif Index: Track.h =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/Track.h,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- Track.h 6 Jul 2008 14:38:10 -0000 1.46 +++ Track.h 7 Jul 2008 18:13:44 -0000 1.47 @@ -28,20 +28,12 @@ class UndoStack; class TimeTrack; class WaveTrack; -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START*/ class NoteTrack; -/* HCK MIDI PATCH END*/ -#endif /* EXPERIMENTAL_NOTE_TRACK */ #ifdef __WXMSW__ #pragma warning(disable:4284) #endif WX_DEFINE_ARRAY(WaveTrack*, WaveTrackArray); -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START*/ WX_DEFINE_ARRAY(NoteTrack*, NoteTrackArray); -/* HCK MIDI PATCH END*/ -#endif /* EXPERIMENTAL_NOTE_TRACK */ class AUDACITY_DLL_API Track: public XMLTagHandler { @@ -246,11 +238,7 @@ WaveTrackArray GetWaveTrackArray(bool selectionOnly); /** Consider this function depricated in favor of GetWaveTrackArray */ void GetWaveTracks(bool selectionOnly, int *num, WaveTrack ***tracks); -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START*/ NoteTrackArray GetNoteTrackArray(bool selectionOnly); -/* HCK MIDI PATCH END*/ -#endif /* EXPERIMENTAL_NOTE_TRACK */ /// Mainly a test function. Uses a linear search, so could be slow. bool Contains(Track * t) const; Index: TrackPanel.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v retrieving revision 1.401 retrieving revision 1.402 diff -u -d -r1.401 -r1.402 --- TrackPanel.cpp 1 Jul 2008 22:05:09 -0000 1.401 +++ TrackPanel.cpp 7 Jul 2008 18:13:45 -0000 1.402 @@ -773,10 +773,8 @@ // recording audio, but the stream has stopped. if (p->GetAudioIOToken()>0 && !gAudioIO->IsStreamActive(p->GetAudioIOToken())) { - p->GetControlToolBar()->OnStop(dummyEvent); -#ifdef EXPERIMENTAL_NOTE_TRACK - printf( "EXPERIMENTAL_NOTE_TRACK OnTimer\n" ); -#endif /* EXPERIMENTAL_NOTE_TRACK */ + p->GetControlToolBar()->OnStop(dummyEvent); + printf( "HCK OnTimer\n" ); } // Next, check to see if we were playing or recording @@ -4950,7 +4948,7 @@ mTrackInfo.GetTrackControlsRect(trackRect, midiRect); ((NoteTrack *) t)->DrawLabelControls(*dc, midiRect); } - #endif + #endif // USE_MIDI } void TrackPanel::DrawOutsideOfTrack(Track * t, wxDC * dc, const wxRect r) Index: NoteTrack.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/NoteTrack.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- NoteTrack.cpp 28 Jun 2008 21:53:51 -0000 1.13 +++ NoteTrack.cpp 7 Jul 2008 18:13:43 -0000 1.14 @@ -20,11 +20,9 @@ #include <wx/intl.h> #include "allegro.h" -#ifdef EXPERIMENTAL_NOTE_TRACK /* REQUIRES PORTMIDI */ //#include "portmidi.h" //#include "porttime.h" -#endif /* EXPERIMENTAL_NOTE_TRACK */ #include "AColor.h" #include "NoteTrack.h" @@ -43,26 +41,19 @@ mSeq = NULL; mLen = 0.0; -#ifdef EXPERIMENTAL_NOTE_TRACK mSerializationBuffer = NULL; mSerializationLength = 0; -#endif /* EXPERIMENTAL_NOTE_TRACK */ mDirManager = projDirManager; mBottomNote = 24; mVisibleChannels = 0xFFFF; -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START */ mLastMidiPosition = 0; -/* HCK MIDI PATCH END */ -#endif /* EXPERIMENTAL_NOTE_TRACK */ } Track *NoteTrack::Duplicate() { -#ifdef EXPERIMENTAL_NOTE_TRACK NoteTrack *duplicate = new NoteTrack(mDirManager); // Duplicate on NoteTrack moves data from mSeq to mSerializationBuffer // and from mSerializationBuffer to mSeq on alternate calls. Duplicate @@ -70,10 +61,12 @@ // in serialized blobs on the undo stack and traversable data in the // project object. if (mSeq) { + assert(!mSerializationBuffer); // serialize from this to duplicate's mSerializationBuffer mSeq->serialize(&duplicate->mSerializationBuffer, &duplicate->mSerializationLength); } else if (mSerializationBuffer) { + assert(!mSeq); Alg_track_ptr alg_track = Alg_seq::unserialize(mSerializationBuffer, mSerializationLength); assert(alg_track->get_type() == 's'); @@ -85,9 +78,6 @@ duplicate->mLen = mLen; duplicate->mVisibleChannels = mVisibleChannels; return duplicate; -#else - return new NoteTrack(mDirManager); -#endif } void NoteTrack::DrawLabelControls(wxDC & dc, wxRect & r) @@ -165,92 +155,15 @@ return true; } -#ifndef EXPERIMENTAL_NOTE_TRACK -void NoteTrack::CalcLen() -{ - int numEvents = mSeq->notes.len; - - if (numEvents <= 0) - mLen = 0.0; - else { - mLen = 0.0; - for (int i = 0; i < numEvents; i++) { - if (mSeq->notes[numEvents - 1]->time > mLen) - mLen = mSeq->notes[numEvents - 1]->time; - if (mSeq->notes[numEvents - 1]->type == wxT('n')) { - double endtime = mSeq->notes[numEvents - 1]->time + - ((Allegro_note_ptr) mSeq->notes[numEvents - 1])->dur; - if (endtime > mLen) - mLen = endtime; - } - } - } -} -#else /* EXPERIMENTAL_NOTE_TRACK */ -/* this is no longer needed -- get mLen from underlying seq->real_dur: -// calculates the timelength of the track -void NoteTrack::CalcLen() -{ - mSeq->convert_to_seconds(); - - mLen = 0.0; - for (mSeq->iteration_begin(); ; ) { - Alg_event_ptr currEvent = mSeq->iteration_next(); - if (!currEvent) - break; - if (mLen < currEvent->time) - mLen = currEvent->time; - if (currEvent->get_type() == wxT('n')) { - double endtime = currEvent->get_end_time(); - if (mLen < endtime) - mLen = endtime; - } - } - mSeq->iteration_end(); - - printf( "HCK: mLen %f\n", mLen ); -} -*/ -/* this is an even older version; it's here for reference but probably should be deleted -RBD - int numEvents = mSeq->length(); - - if (numEvents <= 0) - mLen = 0.0; - else { - mLen = 0.0; - for (int i = 0; i < numEvents; i++) { - if (((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 1])->time > mLen) - mLen = ((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 1])->time; - if (((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 1])->get_type() == wxT('n')) - { - double endtime = ((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 1])->time + ((Alg_note_ptr) mSeq->track_list.tracks[numEvents - 1])->dur; - if (endtime > mLen) - mLen = endtime; - } - } - } -*/ -#endif /* EXPERIMENTAL_NOTE_TRACK */ - -#ifndef EXPERIMENTAL_NOTE_TRACK -void NoteTrack::SetSequence(Seq *seq) -#else /* EXPERIMENTAL_NOTE_TRACK */ void NoteTrack::SetSequence(Alg_seq *seq) -#endif /* EXPERIMENTAL_NOTE_TRACK */ { if (mSeq) delete mSeq; mSeq = seq; -#ifndef EXPERIMENTAL_NOTE_TRACK - CalcLen(); -#else mLen = (seq ? seq->get_real_dur() : 0.0); -#endif } -#ifdef EXPERIMENTAL_NOTE_TRACK -/* HCK MIDI PATCH START */ Alg_seq* NoteTrack::GetSequence() { return mSeq; @@ -318,7 +231,6 @@ { return mVisibleChannels; } -/* HCK MIDI PATCH END */ bool NoteTrack::Cut(double t0, double t1, Track **dest){ @@ -335,7 +247,7 @@ mSeq->convert_to_seconds(); newTrack->mSeq = mSeq->cut(t0, len, false); - mLen -= len; + mLen = (mLen <= len ? 0.0 : mLen - len); newTrack->mLen = len; // What should be done with the rest of newTrack's members? @@ -390,12 +302,15 @@ if (other->mSeq == NULL) return false; + if(!mSeq) + mSeq = new Alg_seq(); + mSeq->paste(t, other->mSeq); + mLen = mSeq->get_real_dur(); return true; } -#endif /* EXPERIMENTAL_NOTE_TRACK */ bool NoteTrack::HandleXMLTag(const wxChar *tag, const wxChar **attrs) { return false; Index: Project.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/Project.cpp,v retrieving revision 1.366 retrieving revision 1.367 diff -u -d -r1.366 -r1.367 --- Project.cpp 5 Jul 2008 22:49:34 -0000 1.366 +++ Project.cpp 7 Jul 2008 18:13:44 -0000 1.367 @@ -2315,7 +2315,7 @@ mTracks->Add(newTrack); return newTrack; } - #endif + #endif // USE_MIDI if (!wxStrcmp(tag, wxT("labeltrack"))) { LabelTrack *newTrack = mTrackFactory->NewLabelTrack(); Index: NoteTrack.h =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/NoteTrack.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- NoteTrack.h 28 Jun 2008 21:53:51 -0000 1.11 +++ NoteTrack.h 7 Jul 2008 18:13:43 -0000 1.12 @@ -19,12 +19,7 @@ class wxRect; class DirManager; -#ifndef EXPERIMENTAL_NOTE_TRACK -class Seq; // from "allegro.h" -#else /* EXPERIMENTAL_NOTE_TRACK */ class Alg_seq; // from "allegro.h" -#endif /* EXPERIMENTAL_NOTE_TRACK */ - class NoteTrack:public Track { public: @@ -42,11 +37,7 @@ void DrawLabelControls(wxDC & dc, wxRect & r); bool LabelClick(wxRect & r, int x, int y, bool right); -#ifndef EXPERIMENTAL_NOTE_TRACK - void SetSequence(Seq *seq); -#else /* EXPERIMENTAL_NOTE_TRACK */ void SetSequence(Alg_seq *seq); -/* HCK MIDI PATCH START */ Alg_seq* GetSequence(); void PrintSequence(); @@ -58,7 +49,6 @@ // { // mLastMidiPosition = position; // } -/* HCK MIDI PATCH END */ // High-level editing virtual bool Cut (double t0, double t1, Track **dest); @@ -66,8 +56,6 @@ virtual bool Clear(double t0, double t1); virtual bool Paste(double t, Track *src); -#endif /* EXPERIMENTAL_NOTE_TRACK */ - int GetBottomNote() const { return mBottomNote; } void SetBottomNote(int note) { @@ -84,9 +72,6 @@ virtual void WriteXML(XMLWriter &xmlFile); private: -#ifndef EXPERIMENTAL_NOTE_TRACK - Seq *mSeq; -#else /* EXPERIMENTAL_NOTE_TRACK */ Alg_seq *mSeq; // NULL means no sequence // when Duplicate() is called, assume that it is to put a copy // of the track into the undo stack or to redo/copy from the @@ -101,7 +86,6 @@ // even number of times, otherwise mSeq will be NULL). void *mSerializationBuffer; // NULL means no buffer long mSerializationLength; -#endif /* EXPERIMENTAL_NOTE_TRACK */ double mLen; DirManager *mDirManager; @@ -109,11 +93,7 @@ int mBottomNote; int mVisibleChannels; -#ifdef EXPERIMENTAL_NOTE_TRACK int mLastMidiPosition; -#else - void CalcLen(); -#endif /* EXPERIMENTAL_NOTE_TRACK */ }; #endif Index: Menus.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/Menus.cpp,v retrieving revision 1.390 retrieving revision 1.391 diff -u -d -r1.390 -r1.391 --- Menus.cpp 7 Jul 2008 15:45:55 -0000 1.390 +++ Menus.cpp 7 Jul 2008 18:13:43 -0000 1.391 @@ -55,7 +55,7 @@ #include "LabelTrack.h" #ifdef USE_MIDI #include "import/ImportMIDI.h" -#endif +#endif // USE_MIDI #include "import/ImportRaw.h" #include "export/Export.h" #include "export/ExportMultiple.h" @@ -71,7 +71,7 @@ #include "UploadDialog.h" #ifdef USE_MIDI #include "NoteTrack.h" -#endif +#endif // USE_MIDI #include "Tags.h" #include "Mix.h" #include "AboutDialog.h" @@ -221,7 +221,7 @@ c->AddItem(wxT("ImportLabels"), _("&Labels..."), FN(OnImportLabels)); #ifdef USE_MIDI c->AddItem(wxT("ImportMIDI"), _("&MIDI..."), FN(OnImportMIDI)); - #endif + #endif // USE_MIDI c->AddItem(wxT("ImportRaw"), _("&Raw Data..."), FN(OnImportRaw)); c->EndSubMenu(); @@ -2762,7 +2762,7 @@ case Track::Note: n = mTrackFactory->NewNoteTrack(); break; - #endif + #endif // USE_MIDI case Track::Label: n = mTrackFactory->NewLabelTrack(); break; @@ -3858,11 +3858,7 @@ path, // Path wxT(""), // Name wxT(""), // Extension -#ifndef EXPERIMENTAL_NOTE_TRACK - _("All files (*.*)|*.*|MIDI files (*.mid)|*.mid|Allegro files (*.gro)|*.gro"), -#else /* EXPERIMENTAL_NOTE_TRACK */ _("MIDI and Allegro files (*.mid;*.gro)|*.mid;*.gro|MIDI files (*.mid)|*.mid|Allegro files (*.gro)|*.gro|All files (*.*)|*.*"), -#endif /* EXPERIMENTAL_NOTE_TRACK */ wxRESIZE_BORDER, // Flags this); // Parent Index: TrackArtist.h =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/TrackArtist.h,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- TrackArtist.h 1 Jul 2008 22:05:09 -0000 1.36 +++ TrackArtist.h 7 Jul 2008 18:13:45 -0000 1.37 @@ -79,10 +79,10 @@ wxDC & dc, wxRect & r, ViewInfo * viewInfo, bool autocorrelation); #endif - #ifdef USE_MIDI +#ifdef USE_MIDI void DrawNoteTrack(NoteTrack *track, wxDC & dc, wxRect & r, ViewInfo * viewInfo); - #endif +#endif // USE_MIDI void DrawLabelTrack(LabelTrack *track, wxDC & dc, wxRect & r, ViewInfo * viewInfo); ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Audacity-cvs mailing list Audacity-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/audacity-cvs