From d33f4fbca36285af7daee40aa1d5d3c2fbb722fbe011eecc4cb90bba86aa325b Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 28 Jul 2009 23:37:30 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/audacity?expand=0&rev=20 --- audacity-1.3.7-audiodevdefaults.patch | 77 -- audacity-1.3.7-desktop_file.patch | 22 - audacity-1.3.7-endian-fix.patch | 53 -- audacity-1.3.7-font-fix.patch | 44 - audacity-1.3.7-modal-help-dialog.patch | 14 - audacity-1.3.7-portaudio-non-mmap-alsa.patch | 369 -------- audacity-1.3.7-return_non_void.patch | 11 - audacity-1.3.7-startup_fix.patch | 20 - audacity-1.3.7-strict-aliasing.patch | 11 - audacity-1.3.7-wxGTK_with_stl.patch | 803 ------------------ audacity-1.3.8-audiodevdefaults.patch | 43 + audacity-1.3.8-gsocket-conflict.patch | 14 + ...etval.patch => audacity-1.3.8-retval.patch | 8 +- audacity-minsrc-1.3.7.tar.bz2 | 3 - audacity-minsrc-1.3.8.tar.bz2 | 3 + audacity.changes | 31 + audacity.spec | 342 +------- 17 files changed, 108 insertions(+), 1760 deletions(-) delete mode 100644 audacity-1.3.7-audiodevdefaults.patch delete mode 100644 audacity-1.3.7-desktop_file.patch delete mode 100644 audacity-1.3.7-endian-fix.patch delete mode 100644 audacity-1.3.7-font-fix.patch delete mode 100644 audacity-1.3.7-modal-help-dialog.patch delete mode 100644 audacity-1.3.7-portaudio-non-mmap-alsa.patch delete mode 100644 audacity-1.3.7-return_non_void.patch delete mode 100644 audacity-1.3.7-startup_fix.patch delete mode 100644 audacity-1.3.7-strict-aliasing.patch delete mode 100644 audacity-1.3.7-wxGTK_with_stl.patch create mode 100644 audacity-1.3.8-audiodevdefaults.patch create mode 100644 audacity-1.3.8-gsocket-conflict.patch rename audacity-1.3.7-retval.patch => audacity-1.3.8-retval.patch (75%) delete mode 100644 audacity-minsrc-1.3.7.tar.bz2 create mode 100644 audacity-minsrc-1.3.8.tar.bz2 diff --git a/audacity-1.3.7-audiodevdefaults.patch b/audacity-1.3.7-audiodevdefaults.patch deleted file mode 100644 index 1a493a5..0000000 --- a/audacity-1.3.7-audiodevdefaults.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -Nur audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.cpp audacity-src-1.3.7/src/prefs/AudioIOPrefs.cpp ---- audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ audacity-src-1.3.7/src/prefs/AudioIOPrefs.cpp 2009-03-02 17:25:17.000000000 +0100 -@@ -71,6 +71,25 @@ - wxString Name; - wxString Label; - -+ mDefaultPlayDeviceName = gPrefs->Read(wxT("/AudioIO/PlaybackDevice"), wxT("")); -+ int playDeviceNum = -1; // use device name from gPrefs -+ if ( mDefaultPlayDeviceName == wxT("") ) { -+#if USE_PORTAUDIO_V19 -+ playDeviceNum = Pa_GetDefaultOutputDevice(); -+#else -+ playDeviceNum = Pa_GetDefaultOutputDeviceID(); -+#endif -+ } -+ mDefaultRecDeviceName = gPrefs->Read(wxT("/AudioIO/RecordingDevice"), wxT("")); -+ int recDeviceNum = -1; // use device name from gPrefs -+ if ( mDefaultRecDeviceName == wxT("") ) { -+#if USE_PORTAUDIO_V19 -+ recDeviceNum = Pa_GetDefaultInputDevice(); -+#else -+ recDeviceNum = Pa_GetDefaultInputDeviceID(); -+#endif -+ } -+ - #if USE_PORTAUDIO_V19 - int nDevices = Pa_GetDeviceCount(); - #else -@@ -85,10 +104,16 @@ - if (info->maxOutputChannels > 0) { - mmPlayNames.Add( Name ); - mmPlayLabels.Add( Label ); -+ if ( playDeviceNum == j ) { -+ mDefaultPlayDeviceName = Name; -+ } - } - if (info->maxInputChannels > 0) { - mmRecordNames.Add( Name ); - mmRecordLabels.Add( Label ); -+ if ( recDeviceNum == j ) { -+ mDefaultRecDeviceName = Name; -+ } - // if (info->maxInputChannels > numChannels) - // numChannels = info->maxInputChannels; - } -@@ -121,7 +146,7 @@ - S.StartMultiColumn(2, wxEXPAND); - S.SetStretchyCol(1); - mPlay = S.TieChoice( _("Device") + wxString(wxT(":")), wxT("PlaybackDevice"), -- wxT(""), mmPlayNames, mmPlayLabels ); -+ mDefaultPlayDeviceName, mmPlayNames, mmPlayLabels ); - - S.AddPrompt( _("Using:") ); - wxString ver = _("Portaudio v"); -@@ -139,7 +164,7 @@ - S.StartMultiColumn(2, wxEXPAND); - S.SetStretchyCol(1); - mRec = S.TieChoice( _("Device") + wxString(wxT(":")), wxT("RecordingDevice"), -- wxT(""), mmRecordNames, mmRecordLabels ); -+ mDefaultRecDeviceName, mmRecordNames, mmRecordLabels ); - S.TieChoice( _("Channels") + wxString(wxT(":")), wxT("RecordChannels"), - 2, mmChannelNames, mmChannelLabels ); - S.EndMultiColumn(); -diff -Nur audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.h audacity-src-1.3.7/src/prefs/AudioIOPrefs.h ---- audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.h 2009-01-27 21:50:58.000000000 +0100 -+++ audacity-src-1.3.7/src/prefs/AudioIOPrefs.h 2009-03-02 17:25:16.000000000 +0100 -@@ -48,6 +48,9 @@ - - wxChoice *mPlay; - wxChoice *mRec; -+ -+ wxString mDefaultPlayDeviceName; -+ wxString mDefaultRecDeviceName; - }; - - #endif diff --git a/audacity-1.3.7-desktop_file.patch b/audacity-1.3.7-desktop_file.patch deleted file mode 100644 index c30a543..0000000 --- a/audacity-1.3.7-desktop_file.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- src/audacity.desktop -+++ src/audacity.desktop -@@ -1,6 +1,4 @@ - [Desktop Entry] --Encoding=UTF-8 -- - Name=Audacity Sound Editor - Name[de]=Audacity Audio-Editor - Name[ru]=Audacity -@@ -11,10 +9,10 @@ - Comment[de]=Audio-Dateien aufnehmen und bearbeiten - Comment[ru]=Запись и редактирование звуковых файлов - --Icon=/usr/share/audacity/audacity.xpm -+Icon=audacity - - Type=Application --Categories=Application;AudioVideo;Audio;AudioVideoEditing; -+Categories=AudioVideo;Audio;AudioVideoEditing; - - Exec=audacity - StartupNotify=false diff --git a/audacity-1.3.7-endian-fix.patch b/audacity-1.3.7-endian-fix.patch deleted file mode 100644 index 98a40cb..0000000 --- a/audacity-1.3.7-endian-fix.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- lib-src/libnyquist/xlisp/xlisp.h -+++ lib-src/libnyquist/xlisp/xlisp.h -@@ -147,14 +147,13 @@ - - /* Linux on Pentium */ - #ifdef __linux__ --#ifdef __i386__ --#define LINUX_INTEL --#endif --#endif -- --#ifdef LINUX_INTEL -+#include -+#if __BYTE_ORDER == __BIG_ENDIAN -+#define XL_BIG_ENDIAN -+#else - #define XL_LITTLE_ENDIAN - #endif -+#endif - - /* default important definitions */ - #ifndef NNODES ---- lib-src/libnyquist/sys/switches.h -+++ lib-src/libnyquist/sys/switches.h -@@ -22,12 +22,13 @@ - - #define READLINE 1 - --#if i386 --#define XL_LITTLE_ENDIAN 1 --#elif __i386__ --#define XL_LITTLE_ENDIAN 1 --#else -+#if !defined(XL_BIG_ENDIAN) && !defined(XL_LITTLE_ENDIAN) -+#include -+#if __BYTE_ORDER == __BIG_ENDIAN - #define XL_BIG_ENDIAN 1 -+#else -+#define XL_LITTLE_ENDIAN 1 -+#endif - #endif - - #undef USE_RAND ---- lib-src/libnyquist/snd/sndlinux.c -+++ lib-src/libnyquist/snd/sndlinux.c -@@ -1,6 +1,7 @@ - #include - #include - #include -+#include - - #include "snd.h" - #include "sndfileio.h" diff --git a/audacity-1.3.7-font-fix.patch b/audacity-1.3.7-font-fix.patch deleted file mode 100644 index e77a951..0000000 --- a/audacity-1.3.7-font-fix.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- src/TrackArtist.cpp -+++ src/TrackArtist.cpp -@@ -374,7 +374,7 @@ - dc->SetBrush(blackKeyBrush); - - int fontSize = 10; --#ifdef __WXMSW__ -+#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXGTK20__) - fontSize = 8; - #endif - ---- src/TrackPanel.cpp -+++ src/TrackPanel.cpp -@@ -266,7 +266,7 @@ - void SetLabelFont(wxDC * dc) - { - int fontSize = 10; --#if defined __WXMSW__ || __WXGTK__ -+#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXGTK20__) - fontSize = 8; - #endif - ---- src/widgets/ASlider.cpp -+++ src/widgets/ASlider.cpp -@@ -42,7 +42,7 @@ - - #include - --#if defined __WXMSW__ -+#if defined __WXMSW__ || defined(__WXGTK__) || defined(__WXGTK20__) - const int sliderFontSize = 10; - #else - const int sliderFontSize = 12; ---- src/widgets/Ruler.cpp -+++ src/widgets/Ruler.cpp -@@ -42,7 +42,7 @@ - // often. - - int fontSize = 10; --#ifdef __WXMSW__ -+#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXGTK20__) - fontSize = 8; - #endif - diff --git a/audacity-1.3.7-modal-help-dialog.patch b/audacity-1.3.7-modal-help-dialog.patch deleted file mode 100644 index 8167159..0000000 --- a/audacity-1.3.7-modal-help-dialog.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- src/widgets/ErrorDialog.cpp -+++ src/widgets/ErrorDialog.cpp -@@ -122,0 +123,8 @@ -+// make help dialog modal -+class HtmlTextHelpDialog : public BrowserFrame -+{ -+public: -+ HtmlTextHelpDialog() : BrowserFrame() { MakeModal(true); } -+ ~HtmlTextHelpDialog() { MakeModal(false); } -+}; -+ -@@ -127 +135 @@ -- BrowserFrame * pWnd = new BrowserFrame(); -+ HtmlTextHelpDialog * pWnd = new HtmlTextHelpDialog(); diff --git a/audacity-1.3.7-portaudio-non-mmap-alsa.patch b/audacity-1.3.7-portaudio-non-mmap-alsa.patch deleted file mode 100644 index 3f146b6..0000000 --- a/audacity-1.3.7-portaudio-non-mmap-alsa.patch +++ /dev/null @@ -1,369 +0,0 @@ -diff -Nur audacity-src-1.3.7-orig/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c audacity-src-1.3.7/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c ---- audacity-src-1.3.7-orig/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c 2009-01-27 21:51:40.000000000 +0100 -+++ audacity-src-1.3.7/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c 2009-02-02 19:08:22.000000000 +0100 -@@ -6,6 +6,7 @@ - * - * Copyright (c) 2002 Joshua Haberman - * Copyright (c) 2005-2007 Arve Knudsen -+ * Copyright (c) 2008 Kevin Kofler - * - * Based on the Open Source API proposed by Ross Bencina - * Copyright (c) 1999-2002 Ross Bencina, Phil Burk -@@ -118,6 +119,8 @@ - unsigned long framesPerBuffer; - int numUserChannels, numHostChannels; - int userInterleaved, hostInterleaved; -+ int canMmap; -+ void *nonMmapBuffer; - PaDeviceIndex device; /* Keep the device index */ - - snd_pcm_t *pcm; -@@ -321,7 +324,7 @@ - * and a suitable result returned. The device is closed before returning. - */ - static PaError GropeDevice( snd_pcm_t* pcm, int isPlug, StreamDirection mode, int openBlocking, -- PaAlsaDeviceInfo* devInfo, int* canMmap ) -+ PaAlsaDeviceInfo* devInfo ) - { - PaError result = paNoError; - snd_pcm_hw_params_t *hwParams; -@@ -354,9 +357,6 @@ - snd_pcm_hw_params_alloca( &hwParams ); - snd_pcm_hw_params_any( pcm, hwParams ); - -- *canMmap = snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_INTERLEAVED ) >= 0 || -- snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_NONINTERLEAVED ) >= 0; -- - if( defaultSr >= 0 ) - { - /* Could be that the device opened in one mode supports samplerates that the other mode wont have, -@@ -566,7 +566,6 @@ - PaError result = 0; - PaDeviceInfo *baseDeviceInfo = &devInfo->baseDeviceInfo; - snd_pcm_t *pcm; -- int canMmap = -1; - PaUtilHostApiRepresentation *baseApi = &alsaApi->baseHostApiRep; - - /* Zero fields */ -@@ -580,8 +579,7 @@ - OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_CAPTURE, blocking, 0 ) - >= 0 ) - { -- if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_In, blocking, devInfo, -- &canMmap ) != paNoError ) -+ if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_In, blocking, devInfo ) != paNoError ) - { - /* Error */ - PA_DEBUG(("%s: Failed groping %s for capture\n", __FUNCTION__, deviceName->alsaName)); -@@ -594,8 +592,7 @@ - OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_PLAYBACK, blocking, 0 ) - >= 0 ) - { -- if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_Out, blocking, devInfo, -- &canMmap ) != paNoError ) -+ if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_Out, blocking, devInfo ) != paNoError ) - { - /* Error */ - PA_DEBUG(("%s: Failed groping %s for playback\n", __FUNCTION__, deviceName->alsaName)); -@@ -603,12 +600,6 @@ - } - } - -- if( 0 == canMmap ) -- { -- PA_DEBUG(("%s: Device %s doesn't support mmap\n", __FUNCTION__, deviceName->alsaName)); -- goto end; -- } -- - baseDeviceInfo->structVersion = 2; - baseDeviceInfo->hostApi = alsaApi->hostApiIndex; - baseDeviceInfo->name = deviceName->name; -@@ -1197,6 +1188,8 @@ - self->hostInterleaved = self->userInterleaved = !(userSampleFormat & paNonInterleaved); - self->numUserChannels = params->channelCount; - self->streamDir = streamDir; -+ self->canMmap = 0; -+ self->nonMmapBuffer = NULL; - - if( !callbackMode && !self->userInterleaved ) - { -@@ -1239,6 +1232,7 @@ - - PaError result = paNoError; - snd_pcm_access_t accessMode, alternateAccessMode; -+ snd_pcm_access_t rwAccessMode, alternateRwAccessMode; - int dir = 0; - snd_pcm_t *pcm = self->pcm; - double sr = *sampleRate; -@@ -1258,32 +1252,40 @@ - if( self->userInterleaved ) - { - accessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED; -+ rwAccessMode = SND_PCM_ACCESS_RW_INTERLEAVED; - alternateAccessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED; -+ alternateRwAccessMode = SND_PCM_ACCESS_RW_NONINTERLEAVED; - } - else - { - accessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED; -+ rwAccessMode = SND_PCM_ACCESS_RW_NONINTERLEAVED; - alternateAccessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED; -+ alternateRwAccessMode = SND_PCM_ACCESS_RW_INTERLEAVED; - } - /* If requested access mode fails, try alternate mode */ -+ self->canMmap = 1; - if( snd_pcm_hw_params_set_access( pcm, hwParams, accessMode ) < 0 ) - { -- int err = 0; -- if( (err = snd_pcm_hw_params_set_access( pcm, hwParams, alternateAccessMode )) < 0) -+ if( snd_pcm_hw_params_set_access( pcm, hwParams, rwAccessMode ) >= 0 ) -+ self->canMmap = 0; -+ else - { -- result = paUnanticipatedHostError; -- if( -EINVAL == err ) -+ if( snd_pcm_hw_params_set_access( pcm, hwParams, alternateAccessMode ) < 0 ) - { -- PaUtil_SetLastHostErrorInfo( paALSA, err, "PA ALSA requires that a device supports mmap access" ); -- } -- else -- { -- PaUtil_SetLastHostErrorInfo( paALSA, err, snd_strerror( err ) ); -+ int err = 0; -+ if( (err = snd_pcm_hw_params_set_access( pcm, hwParams, alternateRwAccessMode )) >= 0) -+ self->canMmap = 0; -+ else -+ { -+ result = paUnanticipatedHostError; -+ PaUtil_SetLastHostErrorInfo( paALSA, err, snd_strerror( err ) ); -+ goto error; -+ } - } -- goto error; -+ /* Flip mode */ -+ self->hostInterleaved = !self->userInterleaved; - } -- /* Flip mode */ -- self->hostInterleaved = !self->userInterleaved; - } - - ENSURE_( snd_pcm_hw_params_set_format( pcm, hwParams, self->nativeFormat ), paUnanticipatedHostError ); -@@ -1361,7 +1363,7 @@ - - ENSURE_( snd_pcm_sw_params_set_avail_min( self->pcm, swParams, self->framesPerBuffer ), paUnanticipatedHostError ); - ENSURE_( snd_pcm_sw_params_set_xfer_align( self->pcm, swParams, 1 ), paUnanticipatedHostError ); -- ENSURE_( snd_pcm_sw_params_set_tstamp_mode( self->pcm, swParams, SND_PCM_TSTAMP_MMAP ), paUnanticipatedHostError ); -+ ENSURE_( snd_pcm_sw_params_set_tstamp_mode( self->pcm, swParams, SND_PCM_TSTAMP_ENABLE ), paUnanticipatedHostError ); - - /* Set the parameters! */ - ENSURE_( snd_pcm_sw_params( self->pcm, swParams ), paUnanticipatedHostError ); -@@ -1589,6 +1591,10 @@ - } - } - -+ /* non-mmap mode needs a reasonably-sized buffer or it'll stutter */ -+ if( !self->canMmap && framesPerHostBuffer < 2048 ) -+ framesPerHostBuffer = 2048; -+ - assert( framesPerHostBuffer > 0 ); - { - snd_pcm_uframes_t min = 0, max = 0; -@@ -1831,12 +1837,13 @@ - PA_UNLESS( framesPerHostBuffer != 0, paInternalError ); - self->maxFramesPerHostBuffer = framesPerHostBuffer; - -- if( !accurate ) -+ if( !self->playback.canMmap || !accurate ) - { - /* Don't know the exact size per host buffer */ - *hostBufferSizeMode = paUtilBoundedHostBufferSize; - /* Raise upper bound */ -- ++self->maxFramesPerHostBuffer; -+ if( !accurate ) -+ ++self->maxFramesPerHostBuffer; - } - - error: -@@ -2059,9 +2066,11 @@ - { - /* Buffer isn't primed, so prepare and silence */ - ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError ); -- SilenceBuffer( stream ); -+ if( stream->playback.canMmap ) -+ SilenceBuffer( stream ); - } -- ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError ); -+ if( stream->playback.canMmap ) -+ ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError ); - } - else - ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError ); -@@ -2390,6 +2399,7 @@ - snd_pcm_status_t *st; - PaTime now = PaUtil_GetTime(); - snd_timestamp_t t; -+ int errplayback = 0, errcapture = 0; - - snd_pcm_status_alloca( &st ); - -@@ -2400,6 +2410,7 @@ - { - snd_pcm_status_get_trigger_tstamp( st, &t ); - self->underrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000); -+ errplayback = snd_pcm_recover( self->playback.pcm, -EPIPE, 0 ); - } - } - if( self->capture.pcm ) -@@ -2409,10 +2420,12 @@ - { - snd_pcm_status_get_trigger_tstamp( st, &t ); - self->overrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000); -+ errcapture = snd_pcm_recover( self->capture.pcm, -EPIPE, 0 ); - } - } - -- PA_ENSURE( AlsaRestart( self ) ); -+ if( errplayback || errcapture ) -+ PA_ENSURE( AlsaRestart( self ) ); - - end: - return result; -@@ -2563,7 +2576,7 @@ - static PaError PaAlsaStreamComponent_EndProcessing( PaAlsaStreamComponent *self, unsigned long numFrames, int *xrun ) - { - PaError result = paNoError; -- int res; -+ int res = 0; - - /* @concern FullDuplex It is possible that only one direction is marked ready after polling, and processed - * afterwards -@@ -2571,7 +2584,34 @@ - if( !self->ready ) - goto end; - -- res = snd_pcm_mmap_commit( self->pcm, self->offset, numFrames ); -+ if( !self->canMmap && StreamDirection_Out == self->streamDir ) -+ { -+ /* Play sound */ -+ if( self->hostInterleaved ) -+ res = snd_pcm_writei( self->pcm, self->nonMmapBuffer, numFrames ); -+ else -+ { -+ void *bufs[self->numHostChannels]; -+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 ); -+ unsigned char *buffer = self->nonMmapBuffer; -+ int i; -+ for( i = 0; i < self->numHostChannels; ++i ) -+ { -+ bufs[i] = buffer; -+ buffer += bufsize; -+ } -+ res = snd_pcm_writen( self->pcm, bufs, numFrames ); -+ } -+ } -+ -+ if( self->canMmap ) -+ res = snd_pcm_mmap_commit( self->pcm, self->offset, numFrames ); -+ else -+ { -+ free( self->nonMmapBuffer ); -+ self->nonMmapBuffer = NULL; -+ } -+ - if( res == -EPIPE || res == -ESTRPIPE ) - { - *xrun = 1; -@@ -2611,7 +2651,7 @@ - if( self->hostInterleaved ) - { - int swidth = snd_pcm_format_size( self->nativeFormat, 1 ); -- unsigned char *buffer = ExtractAddress( self->channelAreas, self->offset ); -+ unsigned char *buffer = self->canMmap ? ExtractAddress( self->channelAreas, self->offset ) : self->nonMmapBuffer; - - /* Start after the last user channel */ - p = buffer + self->numUserChannels * swidth; -@@ -2991,13 +3031,23 @@ - goto end; - } - -- ENSURE_( snd_pcm_mmap_begin( self->pcm, &areas, &self->offset, numFrames ), paUnanticipatedHostError ); -+ if( self->canMmap ) -+ { -+ ENSURE_( snd_pcm_mmap_begin( self->pcm, &areas, &self->offset, numFrames ), paUnanticipatedHostError ); -+ /* @concern ChannelAdaption Buffer address is recorded so we can do some channel adaption later */ -+ self->channelAreas = (snd_pcm_channel_area_t *)areas; -+ } -+ else -+ { -+ free( self->nonMmapBuffer ); -+ self->nonMmapBuffer = calloc( self->numHostChannels, snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 ) ); -+ } - - if( self->hostInterleaved ) - { - int swidth = snd_pcm_format_size( self->nativeFormat, 1 ); - -- p = buffer = ExtractAddress( areas, self->offset ); -+ p = buffer = self->canMmap ? ExtractAddress( areas, self->offset ) : self->nonMmapBuffer; - for( i = 0; i < self->numUserChannels; ++i ) - { - /* We're setting the channels up to userChannels, but the stride will be hostChannels samples */ -@@ -3007,16 +3057,52 @@ - } - else - { -- for( i = 0; i < self->numUserChannels; ++i ) -+ if( self->canMmap ) -+ for( i = 0; i < self->numUserChannels; ++i ) -+ { -+ area = areas + i; -+ buffer = ExtractAddress( area, self->offset ); -+ setChannel( bp, i, buffer, 1 ); -+ } -+ else - { -- area = areas + i; -- buffer = ExtractAddress( area, self->offset ); -- setChannel( bp, i, buffer, 1 ); -+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 ); -+ buffer = self->nonMmapBuffer; -+ for( i = 0; i < self->numUserChannels; ++i ) -+ { -+ setChannel( bp, i, buffer, 1 ); -+ buffer += bufsize; -+ } - } - } - -- /* @concern ChannelAdaption Buffer address is recorded so we can do some channel adaption later */ -- self->channelAreas = (snd_pcm_channel_area_t *)areas; -+ if( !self->canMmap && StreamDirection_In == self->streamDir ) -+ { -+ /* Read sound */ -+ int res; -+ if( self->hostInterleaved ) -+ res = snd_pcm_readi( self->pcm, self->nonMmapBuffer, *numFrames ); -+ else -+ { -+ void *bufs[self->numHostChannels]; -+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 ); -+ unsigned char *buffer = self->nonMmapBuffer; -+ int i; -+ for( i = 0; i < self->numHostChannels; ++i ) -+ { -+ bufs[i] = buffer; -+ buffer += bufsize; -+ } -+ res = snd_pcm_readn( self->pcm, bufs, *numFrames ); -+ } -+ if( res == -EPIPE || res == -ESTRPIPE ) -+ { -+ *xrun = 1; -+ *numFrames = 0; -+ free( self->nonMmapBuffer ); -+ self->nonMmapBuffer = NULL; -+ } -+ } - - end: - error: diff --git a/audacity-1.3.7-return_non_void.patch b/audacity-1.3.7-return_non_void.patch deleted file mode 100644 index ce7ce78..0000000 --- a/audacity-1.3.7-return_non_void.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- lib-src/libnyquist/nyx/nyx.c -+++ lib-src/libnyquist/nyx/nyx.c -@@ -425,7 +425,7 @@ - int success = FALSE; - - if (nyx_get_type(nyx_result) != nyx_audio) -- return; -+ return FALSE; - - num_channels = nyx_get_audio_num_channels(); - snds = (sound_type *)malloc(num_channels * sizeof(sound_type)); diff --git a/audacity-1.3.7-startup_fix.patch b/audacity-1.3.7-startup_fix.patch deleted file mode 100644 index 720c61f..0000000 --- a/audacity-1.3.7-startup_fix.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- src/AudacityApp.cpp -+++ src/AudacityApp.cpp -@@ -1022,7 +1020,7 @@ - wxString presets = wxT(""); - - #ifdef __WXGTK__ -- if (presetsFromPrefs.GetChar(0) != wxT('/')) -+ if (presetsFromPrefs.Length() > 0 && presetsFromPrefs[0] != wxT('/')) - presetsFromPrefs = wxT(""); - #endif //__WXGTK__ - -@@ -1074,7 +1072,7 @@ - wxString temp = wxT(""); - - #ifdef __WXGTK__ -- if (tempFromPrefs.GetChar(0) != wxT('/')) -+ if (tempFromPrefs.Length() > 0 && tempFromPrefs[0] != wxT('/')) - tempFromPrefs = wxT(""); - #endif - diff --git a/audacity-1.3.7-strict-aliasing.patch b/audacity-1.3.7-strict-aliasing.patch deleted file mode 100644 index ec7322b..0000000 --- a/audacity-1.3.7-strict-aliasing.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- lib-src/libnyquist/nyqsrc/fft.c -+++ lib-src/libnyquist/nyqsrc/fft.c -@@ -177,7 +177,7 @@ - temp_fft[i + len] = 0.0F; - } - /* perform the fft: */ -- fftnf(1, (const int *) &len, temp_fft, temp_fft + len, 1, -1.0); -+ fftnf(1, &len, temp_fft, temp_fft + len, 1, -1.0); - setelement(result, 0, cvflonum(temp_fft[0])); - for (i = 2; i < len; i += 2) { - setelement(result, i - 1, cvflonum(temp_fft[i / 2] * 2)); diff --git a/audacity-1.3.7-wxGTK_with_stl.patch b/audacity-1.3.7-wxGTK_with_stl.patch deleted file mode 100644 index 38656d4..0000000 --- a/audacity-1.3.7-wxGTK_with_stl.patch +++ /dev/null @@ -1,803 +0,0 @@ ---- src/CrossFade.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/CrossFade.cpp 2009-04-08 14:52:30.000000000 +0200 -@@ -77,7 +77,7 @@ - WaveClip * tmpclip = NULL; - Sequence * tmp = NULL; - -- WaveClipList::Node * it; -+ WaveClipList::compatibility_iterator it; - - - //Go through each clip, adding it to the total in the appropriate way. ---- src/Dependencies.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/Dependencies.cpp 2009-04-08 14:50:20.00000000 +0200 -@@ -52,7 +52,7 @@ - while (t) { - if (t->GetKind() == Track::Wave) { - WaveTrack *waveTrack = (WaveTrack *)t; -- WaveClipList::Node* node = waveTrack->GetClipIterator(); -+ WaveClipList::compatibility_iterator node = waveTrack->GetClipIterator(); - while(node) { - WaveClip *clip = node->GetData(); - Sequence *sequence = clip->GetSequence(); ---- src/import/Import.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/import/Import.cpp 2009-04-08 14:53:21.000000000 +0200 -@@ -94,7 +94,7 @@ - - void Importer::GetSupportedImportFormats(FormatList *formatList) - { -- ImportPluginList::Node *importPluginNode = mImportPluginList->GetFirst(); -+ ImportPluginList::compatibility_iterator importPluginNode = mImportPluginList->GetFirst(); - while(importPluginNode) - { - ImportPlugin *importPlugin = importPluginNode->GetData(); -@@ -121,7 +121,7 @@ - - bool haveCompatiblePlugin = false; - -- ImportPluginList::Node *importPluginNode; -+ ImportPluginList::compatibility_iterator importPluginNode; - - // If user explicitly selected a filter, - // then we should try importing via corresponding plugin first -@@ -219,7 +219,7 @@ - // None of our plugins can handle this file. It might be that - // Audacity supports this format, but support was not compiled in. - // If so, notify the user of this fact -- UnusableImportPluginList::Node *unusableImporterNode -+ UnusableImportPluginList::compatibility_iterator unusableImporterNode - = mUnusableImportPluginList->GetFirst(); - while(unusableImporterNode) - { ---- src/Mix.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/Mix.cpp 2009-04-08 14:48:22.000000000 +0200 -@@ -335,7 +335,7 @@ - - // Find the last sample - sampleCount last = -1; -- WaveClipList::Node* it = track->GetClipIterator(); -+ WaveClipList::compatibility_iterator it = track->GetClipIterator(); - while (it) { - sampleCount end = it->GetData()->GetEndSample(); - if (end > last) { ---- src/ondemand/ODComputeSummaryTask.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/ondemand/ODComputeSummaryTask.cpp 2009-04-08 14:50:55.000000000 +0200 -@@ -186,7 +186,7 @@ - Sequence *seq; - - //gather all the blockfiles that we should process in the wavetrack. -- WaveClipList::Node* node = mWaveTracks[j]->GetClipIterator(); -+ WaveClipList::compatibility_iterator node = mWaveTracks[j]->GetClipIterator(); - - int numBlocksDone; - while(node) { ---- src/ondemand/ODDecodeTask.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/ondemand/ODDecodeTask.cpp 2009-04-08 14:51:12.000000000 +0200 -@@ -113,7 +113,7 @@ - Sequence *seq; - - //gather all the blockfiles that we should process in the wavetrack. -- WaveClipList::Node* node = mWaveTracks[j]->GetClipIterator(); -+ WaveClipList::compatibility_iterator node = mWaveTracks[j]->GetClipIterator(); - - int numBlocksDone; - while(node) { ---- src/Project.cpp 2009-01-27 21:50:59.000000000 +0100 -+++ src/Project.cpp 2009-04-08 14:53:03.000000000 +0200 -@@ -923,7 +923,7 @@ - if (pTrack->GetKind() == Track::Wave) - { - WaveTrack* pWaveTrack = (WaveTrack*)pTrack; -- WaveClipList::Node* node = pWaveTrack->GetClipIterator(); -+ WaveClipList::compatibility_iterator node = pWaveTrack->GetClipIterator(); - while (node) - { - WaveClip *clip = node->GetData(); -@@ -1803,7 +1803,7 @@ - l.DeleteContents(true); - wxGetApp().mImporter->GetSupportedImportFormats(&l); - -- for (FormatList::Node *n = l.GetFirst(); n; n = n->GetNext()) { -+ for (FormatList::compatibility_iterator n = l.GetFirst(); n; n = n->GetNext()) { - Format *f = n->GetData(); - - wxString newfilter = f->formatName + wxT("|"); -@@ -2141,7 +2141,7 @@ - if (t->GetKind() == Track::Wave) - { - // Only wave tracks have a notion of "changed" -- for (WaveClipList::Node* it=((WaveTrack*)t)->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=((WaveTrack*)t)->GetClipIterator(); it; it=it->GetNext()) - it->GetData()->MarkChanged(); - } - t = iter.Next(); ---- src/Snap.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/Snap.cpp 2009-04-08 14:49:15.000000000 +0200 -@@ -53,7 +53,7 @@ - } - if (track->GetKind() == Track::Wave) { - WaveTrack *waveTrack = (WaveTrack *)track; -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - for (it=waveTrack->GetClipIterator(); it; it=it->GetNext()) { - WaveClip *clip = it->GetData(); - if (exclusions) { ---- src/TrackArtist.cpp 2009-04-07 17:18:14.000000000 +0200 -+++ src/TrackArtist.cpp 2009-04-08 14:47:50.000000000 +0200 -@@ -187,7 +187,7 @@ - if (t->GetKind() == Track::Wave) - { - WaveTrack* wt = (WaveTrack*)t; -- for (WaveClipList::Node* it=wt->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=wt->GetClipIterator(); it; it=it->GetNext()) - it->GetData()->ClearDisplayRect(); - } - -@@ -780,7 +780,7 @@ - bool drawSamples, - bool showPoints, bool muted) - { -- for (WaveClipList::Node* it = track->GetClipIterator(); it; it = it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = track->GetClipIterator(); it; it = it->GetNext()) - DrawIndividualClipSamples(dc, r, it->GetData(), t0, pps, h, - zoomMin, zoomMax, dB, drawSamples, showPoints, muted); - } -@@ -1222,7 +1222,7 @@ - dc.SetBrush(blankBrush); - dc.DrawRectangle(r); - -- for (WaveClipList::Node* it=track->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=track->GetClipIterator(); it; it=it->GetNext()) - DrawClipWaveform(track, it->GetData(), dc, r, viewInfo, drawEnvelope, drawSamples, - drawSliders, dB, muted); - -@@ -1600,7 +1600,7 @@ - return; - } - -- for (WaveClipList::Node* it=track->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=track->GetClipIterator(); it; it=it->GetNext()) - DrawClipSpectrum(track, it->GetData(), dc, r, viewInfo, autocorrelation, logF); - } - ---- src/Track.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/Track.cpp 2009-04-08 14:49:36.000000000 +0200 -@@ -745,7 +745,7 @@ - for (TrackListNode *p = head; p; p = p->next) { - if (p->t->GetKind() == Track::Wave) { - WaveTrack* track = ((WaveTrack*)p->t); -- for (WaveClipList::Node* it=track->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=track->GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - BlockArray *blocks = clip->GetSequenceBlockArray(); -@@ -779,7 +779,7 @@ - for (p = head; p; p = p->next) { - if (p->t->GetKind() == Track::Wave) { - WaveTrack* track = ((WaveTrack*)p->t); -- for (WaveClipList::Node* it=track->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=track->GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - BlockArray *blocks = clip->GetSequenceBlockArray(); -@@ -799,7 +799,7 @@ - for (p = stackElem->tracks->head; p; p = p->next) { - if (p->t->GetKind() == Track::Wave) { - WaveTrack* track = ((WaveTrack*)p->t); -- for (WaveClipList::Node* it=track->GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=track->GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - BlockArray *blocks = clip->GetSequenceBlockArray(); ---- src/TrackPanel.cpp 2009-04-07 17:18:14.000000000 +0200 -+++ src/TrackPanel.cpp 2009-04-08 14:48:06.000000000 +0200 -@@ -2862,7 +2862,7 @@ - while (t) { - if (t->GetKind() == Track::Wave) { - WaveTrack *wt = (WaveTrack *)t; -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - for(it=wt->GetClipIterator(); it; it=it->GetNext()) { - WaveClip *clip = it->GetData(); - clip->mSpecPxCache->valid = false; -@@ -2880,7 +2880,7 @@ - while (t) { - if (t->GetKind() == Track::Wave) { - WaveTrack *wt = (WaveTrack *)t; -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - for(it=wt->GetClipIterator(); it; it=it->GetNext()) { - WaveClip *clip = it->GetData(); - clip->mSpecPxCache->valid = false; -@@ -6228,7 +6228,7 @@ - - WaveTrack *wt = (WaveTrack *) mPopupMenuTarget; - if (wt->GetDisplay()!= id - OnWaveformID) { -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - for(it=wt->GetClipIterator(); it; it=it->GetNext()) { - WaveClip *clip = it->GetData(); - clip->mSpecPxCache->valid = false; ---- src/WaveClip.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/WaveClip.cpp 2009-04-08 14:46:59.000000000 +0200 -@@ -282,7 +282,7 @@ - mSpecCache = new SpecCache(1, 1, false); - mSpecPxCache = new SpecPxCache(1); - -- for (WaveClipList::Node* it=orig.mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=orig.mCutLines.GetFirst(); it; it=it->GetNext()) - mCutLines.Append(new WaveClip(*it->GetData(), projDirManager)); - - mAppendBuffer = NULL; -@@ -1023,7 +1023,7 @@ - mSequence->WriteXML(xmlFile); - mEnvelope->WriteXML(xmlFile); - -- for (WaveClipList::Node* it=mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=mCutLines.GetFirst(); it; it=it->GetNext()) - it->GetData()->WriteXML(xmlFile); - - xmlFile.EndTag(wxT("waveclip")); -@@ -1088,7 +1088,7 @@ - OffsetCutLines(t0, other->GetEndTime()-other->GetStartTime()); - - // Paste cut lines contained in pasted clip -- for (WaveClipList::Node* it=other->mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=other->mCutLines.GetFirst(); it; it=it->GetNext()) - { - WaveClip* cutline = it->GetData(); - WaveClip* newCutLine = new WaveClip(*cutline, -@@ -1155,9 +1155,9 @@ - if (clip_t1 > GetEndTime()) - clip_t1 = GetEndTime(); - -- WaveClipList::Node* nextIt = (WaveClipList::Node*)-1; -+ WaveClipList::compatibility_iterator nextIt;// = (WaveClipList::compatibility_iterator)-1; - -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=nextIt) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=nextIt) - { - nextIt = it->GetNext(); - WaveClip* clip = it->GetData(); -@@ -1206,9 +1206,9 @@ - newClip->SetOffset(clip_t0-mOffset); - - // Sort out cutlines that belong to the new cutline -- WaveClipList::Node* nextIt = (WaveClipList::Node*)-1; -+ WaveClipList::compatibility_iterator nextIt;// = (WaveClipList::compatibility_iterator)-1; - -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=nextIt) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=nextIt) - { - nextIt = it->GetNext(); - WaveClip* clip = it->GetData(); -@@ -1253,7 +1253,7 @@ - double* cutlineStart /* = NULL */, - double* cutlineEnd /* = NULL */) - { -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - { - WaveClip* cutline = it->GetData(); - if (fabs(mOffset + cutline->GetOffset() - cutLinePosition) < 0.0001) -@@ -1271,7 +1271,7 @@ - - bool WaveClip::ExpandCutLine(double cutLinePosition) - { -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - { - WaveClip* cutline = it->GetData(); - if (fabs(mOffset + cutline->GetOffset() - cutLinePosition) < 0.0001) -@@ -1289,7 +1289,7 @@ - - bool WaveClip::RemoveCutLine(double cutLinePosition) - { -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - { - if (fabs(mOffset + it->GetData()->GetOffset() - cutLinePosition) < 0.0001) - { -@@ -1306,7 +1306,7 @@ - { - while (!mCutLines.IsEmpty()) - { -- WaveClipList::Node* head = mCutLines.GetFirst(); -+ WaveClipList::compatibility_iterator head = mCutLines.GetFirst(); - delete head->GetData(); - mCutLines.DeleteNode(head); - } -@@ -1314,7 +1314,7 @@ - - void WaveClip::OffsetCutLines(double t0, double len) - { -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - { - WaveClip* cutLine = it->GetData(); - if (mOffset + cutLine->GetOffset() >= t0) -@@ -1325,21 +1325,21 @@ - void WaveClip::Lock() - { - GetSequence()->Lock(); -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - it->GetData()->Lock(); - } - - void WaveClip::CloseLock() - { - GetSequence()->CloseLock(); -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - it->GetData()->Lock(); - } - - void WaveClip::Unlock() - { - GetSequence()->Unlock(); -- for (WaveClipList::Node* it = mCutLines.GetFirst(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it = mCutLines.GetFirst(); it; it=it->GetNext()) - it->GetData()->Unlock(); - } - ---- src/WaveTrack.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/WaveTrack.cpp 2009-04-08 14:52:03.000000000 +0200 -@@ -108,7 +108,7 @@ - - Init(orig); - -- for (WaveClipList::Node *node = orig.mClips.GetFirst(); node; node = node->GetNext()) -+ for (WaveClipList::compatibility_iterator node = orig.mClips.GetFirst(); node; node = node->GetNext()) - mClips.Append(new WaveClip(*node->GetData(), mDirManager)); - } - -@@ -147,7 +147,7 @@ - ODManager::Instance()->RemoveWaveTrack(this); - #endif - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - delete it->GetData(); - mClips.Clear(); - if (mDisplayLocations) -@@ -164,7 +164,7 @@ - { - double delta = o - GetOffset(); - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - clip->SetOffset(clip->GetOffset() + delta); -@@ -198,7 +198,7 @@ - void WaveTrack::SetRate(double newRate) - { - mRate = (int) newRate; -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->SetRate((int) newRate); - } - -@@ -245,7 +245,7 @@ - - bool WaveTrack::ConvertToSampleFormat(sampleFormat format) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->ConvertToSampleFormat(format); - mFormat = format; - -@@ -254,7 +254,7 @@ - - bool WaveTrack::IsEmpty(double t0, double t1) - { -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - - //printf("Searching for overlap in %.6f...%.6f\n", t0, t1); - for (it=GetClipIterator(); it; it=it->GetNext()) -@@ -321,7 +321,7 @@ - // the left selection t0. - double firstGreaterOffset = -1; - -- WaveClipList::Node * it; -+ WaveClipList::compatibility_iterator it; - for(it = GetClipIterator(); it; it = it->GetNext()) - { - -@@ -382,7 +382,7 @@ - - newTrack->Init(*this); - -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - - for (it=GetClipIterator(); it; it=it->GetNext()) - { -@@ -496,7 +496,7 @@ - //printf("paste: we have at least one clip\n"); - - double insertDuration = other->GetEndTime(); -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - - #ifdef EXPERIMENTAL_STICKY_TRACKS - if (mStickyLabelTrack) mStickyLabelTrack->ShiftLabelsOnInsert(insertDuration, t0); -@@ -741,7 +741,7 @@ - bool editClipCanMove = true; - gPrefs->Read(wxT("/GUI/EditClipCanMove"), &editClipCanMove); - -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - WaveClipList clipsToDelete; - WaveClipList clipsToAdd; - -@@ -956,7 +956,7 @@ - //printf("paste: we have at least one clip\n"); - - double insertDuration = other->GetEndTime(); -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - - #ifdef EXPERIMENTAL_STICKY_TRACKS - if (mStickyLabelTrack) mStickyLabelTrack->ShiftLabelsOnInsert(insertDuration, t0); -@@ -1100,7 +1100,7 @@ - sampleCount len = (sampleCount)floor(t1 * mRate + 0.5) - start; - bool result = true; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip *clip = it->GetData(); - -@@ -1146,7 +1146,7 @@ - return clip->InsertSilence(0, len); - } - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip *clip = it->GetData(); - if (clip->GetStartTime() > t) -@@ -1171,7 +1171,7 @@ - - wxBusyCursor busy; - -- for( WaveClipList::Node *it = GetClipIterator(); it; it = it->GetNext() ) -+ for( WaveClipList::compatibility_iterator it = GetClipIterator(); it; it = it->GetNext() ) - { - WaveClip *clip = it->GetData(); - -@@ -1249,7 +1249,7 @@ - { - // Merge all WaveClips overlapping selection into one - -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - WaveClipList clipsToDelete; - WaveClip *newClip; - -@@ -1320,7 +1320,7 @@ - { - sampleCount bestBlockSize = GetMaxBlockSize(); - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - sampleCount startSample = (sampleCount)floor(clip->GetStartTime()*mRate + 0.5); -@@ -1338,7 +1338,7 @@ - sampleCount WaveTrack::GetMaxBlockSize() - { - int maxblocksize = 0; -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - if (clip->GetSequence()->GetMaxBlockSize() > maxblocksize) -@@ -1483,7 +1483,7 @@ - xmlFile.WriteAttr(wxT("gain"), (double)mGain); - xmlFile.WriteAttr(wxT("pan"), (double)mPan); - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - it->GetData()->WriteXML(xmlFile); - } -@@ -1493,7 +1493,7 @@ - - bool WaveTrack::GetErrorOpening() - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - if (it->GetData()->GetSequence()->GetErrorOpening()) - return true; - -@@ -1502,7 +1502,7 @@ - - bool WaveTrack::Lock() - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->Lock(); - - return true; -@@ -1510,7 +1510,7 @@ - - bool WaveTrack::CloseLock() - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->CloseLock(); - - return true; -@@ -1519,7 +1519,7 @@ - - bool WaveTrack::Unlock() - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->Unlock(); - - return true; -@@ -1543,7 +1543,7 @@ - if (mClips.IsEmpty()) - return 0; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - if (!found) - { - found = true; -@@ -1562,7 +1562,7 @@ - if (mClips.IsEmpty()) - return 0; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - if (!found) - { - found = true; -@@ -1592,7 +1592,7 @@ - - bool result = true; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - -@@ -1627,7 +1627,7 @@ - double sumsq = 0.0; - sampleCount length = 0; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - -@@ -1655,7 +1655,7 @@ - // Simple optimization: When this buffer is completely contained within one clip, - // don't clear anything (because we never won't have to). Otherwise, just clear - // everything to be on the safe side. -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - - bool doClear = true; - for (it=GetClipIterator(); it; it=it->GetNext()) -@@ -1709,7 +1709,7 @@ - { - bool result = true; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip *clip = it->GetData(); - -@@ -1752,7 +1752,7 @@ - double startTime = t0; - double endTime = t0+tstep*bufferLen; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip *clip = it->GetData(); - -@@ -1782,7 +1782,7 @@ - - WaveClip* WaveTrack::GetClipAtX(int xcoord) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - wxRect r; - it->GetData()->GetDisplayRect(&r); -@@ -1805,7 +1805,7 @@ - // Search for any active DragPoint on the current track - Envelope* WaveTrack::GetActiveEnvelope(void) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - Envelope* env = clip->GetEnvelope() ; -@@ -1862,7 +1862,7 @@ - - void WaveTrack::MoveClipToTrack(int clipIndex, WaveTrack* dest) - { -- WaveClipList::Node* node = mClips.Item(clipIndex); -+ WaveClipList::compatibility_iterator node = mClips.Item(clipIndex); - WaveClip* clip = node->GetData(); - mClips.DeleteNode(node); - dest->mClips.Append(clip); -@@ -1870,7 +1870,7 @@ - - void WaveTrack::MoveClipToTrack(WaveClip *clip, WaveTrack* dest) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) { -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) { - if (it->GetData() == clip) { - WaveClip* clip = it->GetData(); - mClips.DeleteNode(it); -@@ -1886,7 +1886,7 @@ - if (allowedAmount) - *allowedAmount = amount; - -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* c = it->GetData(); - if (c != clip && c->GetStartTime() < clip->GetEndTime()+amount && -@@ -1930,7 +1930,7 @@ - - bool WaveTrack::CanInsertClip(WaveClip* clip) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* c = it->GetData(); - if (c->GetStartTime() < clip->GetEndTime() && c->GetEndTime() > clip->GetStartTime()) -@@ -1950,7 +1950,7 @@ - - bool WaveTrack::SplitAt(double t) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* c = it->GetData(); - if (t > c->GetStartTime() && t < c->GetEndTime()) -@@ -2024,7 +2024,7 @@ - WaveClip* clip = clips.Item(i); - - WaveClipList* cutlines = clip->GetCutLines(); -- for (WaveClipList::Node* it = cutlines->GetFirst(); it; -+ for (WaveClipList::compatibility_iterator it = cutlines->GetFirst(); it; - it = it->GetNext()) - { - // Add cut line expander point -@@ -2062,14 +2062,14 @@ - gPrefs->Read(wxT("/GUI/EditClipCanMove"), &editClipCanMove); - - // Find clip which contains this cut line -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - { - WaveClip* clip = it->GetData(); - double start = 0, end = 0; - - if (clip->FindCutLine(cutLinePosition, &start, &end)) - { -- WaveClipList::Node* it2; -+ WaveClipList::compatibility_iterator it2; - - if (!editClipCanMove) - { -@@ -2120,7 +2120,7 @@ - - bool WaveTrack::RemoveCutLine(double cutLinePosition) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - if (it->GetData()->RemoveCutLine(cutLinePosition)) - return true; - -@@ -2148,7 +2148,7 @@ - - bool WaveTrack::Resample(int rate, ProgressDialog *progress) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - if (!it->GetData()->Resample(rate, progress)) - { - // FIXME: The track is now in an inconsistent state since some -@@ -2173,7 +2173,7 @@ - { - clips.Empty(); - -- for (WaveClipList::Node *it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - clips.Add(it->GetData()); - - clips.Sort(SortClipArrayCmpFunc); -@@ -2182,14 +2182,14 @@ - ///Deletes all clips' wavecaches. Careful, This may not be threadsafe. - void WaveTrack::DeleteWaveCaches() - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->DeleteWaveCache(); - } - - ///Adds an invalid region to the wavecache so it redraws that portion only. - void WaveTrack::AddInvalidRegion(sampleCount startSample, sampleCount endSample) - { -- for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->AddInvalidRegion(startSample,endSample); - } - ---- src/WaveTrack.h 2009-04-08 14:41:18.000000000 +0200 -+++ src/WaveTrack.h 2009-04-08 14:45:16.000000000 +0200 -@@ -242,7 +242,7 @@ - // Get access to the clips in the tracks. This is used by - // track artists and also by TrackPanel when sliding...it would - // be cleaner if this could be removed, though... -- WaveClipList::Node* GetClipIterator() { return mClips.GetFirst(); } -+ WaveClipList::compatibility_iterator GetClipIterator() { return mClips.GetFirst(); } - - // Create new clip and add it to this track. Returns a pointer - // to the newly created clip. ---- src/AboutDialog.cpp 2009-01-27 21:50:58.000000000 +0100 -+++ src/AboutDialog.cpp 2009-04-08 15:15:38.000000000 +0200 -@@ -820,7 +820,7 @@ - { - wxString s; - -- for (AboutDialogCreditItemsList::Node* p=creditItems.GetFirst(); p; p = p->GetNext()) -+ for (AboutDialogCreditItemsList::compatibility_iterator p=creditItems.GetFirst(); p; p = p->GetNext()) - { - AboutDialogCreditItem* item = p->GetData(); - if (item->role == role) ---- src/BatchCommands.cpp 2009-04-08 15:27:24.000000000 +0200 -+++ src/BatchCommands.cpp 2009-04-08 15:27:34.000000000 +0200 -@@ -251,7 +251,7 @@ - // Gets all commands that are valid for this mode. - wxArrayString BatchCommands::GetAllCommands() - { -- wxArrayString commands(true); -+ wxArrayString commands;//(true); - wxString command; - commands.Clear(); - ---- src/TrackPanel.cpp 2009-04-08 15:39:17.000000000 +0200 -+++ src/TrackPanel.cpp 2009-04-08 15:41:09.000000000 +0200 -@@ -2187,7 +2187,7 @@ - if (t->GetSelected()) { - if (t->GetKind() == Track::Wave) { - WaveTrack *wt = (WaveTrack *)t; -- WaveClipList::Node* it; -+ WaveClipList::compatibility_iterator it; - for(it=wt->GetClipIterator(); it; it=it->GetNext()) { - WaveClip *clip = it->GetData(); - double clip0 = clip->GetStartTime(); -@@ -6324,7 +6324,7 @@ - wxMenuItem * item; - int id; - -- for ( wxwxMenuItemListNode * node = list.GetFirst(); node; node = node->GetNext() ) -+ for ( wxMenuItemList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext() ) - { - item = node->GetData(); - id = item->GetId(); ---- src/WaveTrack.cpp -+++ src/WaveTrack.cpp -@@ -198,7 +198,7 @@ - void WaveTrack::SetRate(double newRate) - { - mRate = (int) newRate; -- for (WaveClipList it=GetClipIterator(); it; it=it->GetNext()) -+ for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) - it->GetData()->SetRate((int) newRate); - } - diff --git a/audacity-1.3.8-audiodevdefaults.patch b/audacity-1.3.8-audiodevdefaults.patch new file mode 100644 index 0000000..ed09e0a --- /dev/null +++ b/audacity-1.3.8-audiodevdefaults.patch @@ -0,0 +1,43 @@ +diff -Nur audacity-src-1.3.8-orig/src/prefs/DevicePrefs.cpp audacity-src-1.3.8/src/prefs/DevicePrefs.cpp +--- audacity-src-1.3.8-orig/src/prefs/DevicePrefs.cpp 2009-07-16 05:27:35.000000000 +0200 ++++ audacity-src-1.3.8/src/prefs/DevicePrefs.cpp 2009-07-20 20:55:26.000000000 +0200 +@@ -172,6 +172,15 @@ + wxArrayString playnames; + wxArrayString recordnames; + ++ int playDeviceNum = -1; // use device name from gPrefs ++ if ( mPlayDevice == wxT("") ) { ++ playDeviceNum = Pa_GetDefaultOutputDevice(); ++ } ++ int recDeviceNum = -1; // use device name from gPrefs ++ if ( mRecordDevice == wxT("") ) { ++ recDeviceNum = Pa_GetDefaultInputDevice(); ++ } ++ + for (int i = 0; i < nDevices; i++) { + const PaDeviceInfo *info = Pa_GetDeviceInfo(i); + if (info->hostApi == index) { +@@ -182,7 +191,10 @@ + if (info->maxOutputChannels > 0) { + playnames.Add(name); + index = mPlay->Append(name, (void *) info); +- if (device == mPlayDevice) { ++ if (playDeviceNum == i) { ++ mPlay->SetSelection(index); ++ } ++ else if (device == mPlayDevice) { + mPlay->SetSelection(index); + } + } +@@ -190,7 +202,10 @@ + if (info->maxInputChannels > 0) { + recordnames.Add(name); + index = mRecord->Append(name, (void *) info); +- if (device == mRecordDevice) { ++ if (recDeviceNum == i) { ++ mRecord->SetSelection(index); ++ } ++ else if (device == mRecordDevice) { + mRecord->SetSelection(index); + } + } diff --git a/audacity-1.3.8-gsocket-conflict.patch b/audacity-1.3.8-gsocket-conflict.patch new file mode 100644 index 0000000..0de5f78 --- /dev/null +++ b/audacity-1.3.8-gsocket-conflict.patch @@ -0,0 +1,14 @@ +diff -Nur audacity-src-1.3.8-orig/src/AudacityApp.cpp audacity-src-1.3.8/src/AudacityApp.cpp +--- audacity-src-1.3.8-orig/src/AudacityApp.cpp 2009-07-16 05:27:35.000000000 +0200 ++++ audacity-src-1.3.8/src/AudacityApp.cpp 2009-07-20 23:45:41.000000000 +0200 +@@ -331,7 +331,9 @@ + /////////////////////////////////////////////////////////////////////////////// + + #include +-#include ++/*#include */ ++#include ++#include + + typedef struct _GnomeProgram GnomeProgram; + typedef struct _GnomeModuleInfo GnomeModuleInfo; diff --git a/audacity-1.3.7-retval.patch b/audacity-1.3.8-retval.patch similarity index 75% rename from audacity-1.3.7-retval.patch rename to audacity-1.3.8-retval.patch index 437c1e3..73c3b34 100644 --- a/audacity-1.3.7-retval.patch +++ b/audacity-1.3.8-retval.patch @@ -1,5 +1,5 @@ ---- lib-src/libnyquist/xlisp/xlbfun.c -+++ lib-src/libnyquist/xlisp/xlbfun.c +--- lib-src/libnyquist/nyquist/xlisp/xlbfun.c ++++ lib-src/libnyquist/nyquist/xlisp/xlbfun.c @@ -603,6 +603,7 @@ { xllastarg(); @@ -24,8 +24,8 @@ } /* xevalhook - eval hook function */ ---- lib-src/libnyquist/xlisp/xlread.c -+++ lib-src/libnyquist/xlisp/xlread.c +--- lib-src/libnyquist/nyquist/xlisp/xlread.c ++++ lib-src/libnyquist/nyquist/xlisp/xlread.c @@ -240,6 +240,8 @@ /* handle illegal characters */ else diff --git a/audacity-minsrc-1.3.7.tar.bz2 b/audacity-minsrc-1.3.7.tar.bz2 deleted file mode 100644 index 93221fa..0000000 --- a/audacity-minsrc-1.3.7.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e0044916ffe0d6d8f9227fc1e3d973e11b37edd89005a110ebff482ef301d4d5 -size 5386329 diff --git a/audacity-minsrc-1.3.8.tar.bz2 b/audacity-minsrc-1.3.8.tar.bz2 new file mode 100644 index 0000000..5d5b4f3 --- /dev/null +++ b/audacity-minsrc-1.3.8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50132fead4de4382e603fa14f0a7ffe87c4db86ddcfda1a472b8fa0dc7fb41cf +size 6734200 diff --git a/audacity.changes b/audacity.changes index 70bc6d7..c61638c 100644 --- a/audacity.changes +++ b/audacity.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Thu Jul 23 11:02:54 CEST 2009 - mseben@suse.cz + +- update to 1.3.8 see full changelog : http://audacity.sourceforge.net/download/features-1.3-a + Effects and Analysis: + * VST Effects now display GUI by default + * Faster Equalization and Noise Removal; + * Chains applied to files now clear temporary data after processing each file + * Updated Nyquist implementation with support for SAL syntax and improved memory management + * Plot Spectrum now analyzes up to 237.8 seconds of audio, with separate windows + for each project and improved display; new preferences for Spectrograms + * Contrast Analysis tool now modeless for easier use + Interface: + * Draft Manual/Quick Help included in Windows and Mac installers + * New "Mixer Board" view with per-track VU meters + * Mute, solo, gain, pan and track height saved in projects + * More compact Preferences window with easier-to-use Keyboard tab and new toolbars shortcuts + * New Screenshot Tools and improved screen reader support + Other: + * Record more than 16 channels (hardware/drivers permitting) + * Improved support for non-mmap ALSA devices such as PulseAudio + * 32-bit float data over 0 dB now handled without clipping + * "Stop" option when importing preserves already imported data + * AMR NB export now supported if the optional FFmpeg library is installed + * Faster waveform drawing and better response in multi-track projects +- obsolete : return_non_void.patch,endian-fix.patch,font-fix.patch, + strict-aliasing.patch,wxGTK_with_stl.patch,modal-help-dialog.patch, + desktop_file.patch,portaudio-non-mmap-alsa.patch,startup_fix.patch +- added gsocket-conflict.patch to fix GSocket conflict +- added taglib-devel to BR + ------------------------------------------------------------------- Fri May 29 11:05:40 CEST 2009 - mseben@suse.cz diff --git a/audacity.spec b/audacity.spec index deb2e69..dab0334 100644 --- a/audacity.spec +++ b/audacity.spec @@ -1,5 +1,5 @@ # -# spec file for package audacity (Version 1.3.7) +# spec file for package audacity (Version 1.3.8) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,9 +24,9 @@ Name: audacity BuildRequires: flac-devel gcc-c++ glib-devel jack-devel libexpat-devel BuildRequires: libid3tag-devel libsamplerate-devel libsndfile-devel BuildRequires: libvorbis-devel soundtouch-devel update-desktop-files -BuildRequires: wxGTK-devel -# Only needed because of internal PortAudio, why aren't we using the system version? -BuildRequires: alsa-devel +BuildRequires: alsa-devel taglib-devel wxGTK-devel +# we use internal PortAudio, because audacity team grab sources +# from Portaudio's svn more frequently than we (e.g. see support for non-mmap devices like pulseaudio) %if %{with ffmpeg} BuildRequires: libffmpeg-devel %endif @@ -37,28 +37,18 @@ BuildRequires: libmad-devel BuildRequires: libtwolame-devel %endif Summary: A Free, Cross-Platform Digital Audio Editor -Version: 1.3.7 -Release: 6 +Version: 1.3.8 +Release: 1 License: GPL v2 or later Group: Productivity/Multimedia/Sound/Editors and Convertors BuildRoot: %{_tmppath}/%{name}-%{version}-build Url: http://audacity.sourceforge.net/ Source: %{name}-minsrc-%{version}.tar.bz2 Source2: %{name}.png -#PATCH-FIX-UPSTREAM return_non_void.patch fixed non-void return value (bnc#477654) -Patch1: %{name}-%{version}-return_non_void.patch -Patch2: %{name}-%{version}-endian-fix.patch -Patch3: %{name}-%{version}-font-fix.patch +#PATCH-FIX-UPSTREAM GSocket from wxGTK conflict with GSocket from glib2 - fix taken from Fedora +Patch1: %{name}-%{version}-gsocket-conflict.patch Patch5: %{name}-%{version}-retval.patch -Patch6: %{name}-%{version}-strict-aliasing.patch -#PATCH-FIX-UPSTREAM fix build issues when linked wxGTK configured with --enable-stl flag -Patch8: %{name}-%{version}-wxGTK_with_stl.patch -Patch9: %{name}-%{version}-modal-help-dialog.patch -Patch10: %{name}-%{version}-desktop_file.patch -Patch11: %{name}-%{version}-portaudio-non-mmap-alsa.patch Patch12: %{name}-%{version}-audiodevdefaults.patch -#PATCH-FIX-UPSTREAM fix startup crash (already in upstream cvs) -Patch13: %{name}-%{version}-startup_fix.patch %description Audacity is a program that manipulates digital audio wave forms. In @@ -87,17 +77,9 @@ Authors: %prep %setup -q -n %{name}-src-%{version} -%patch1 -%patch2 -%patch3 +%patch1 -p1 %patch5 -%patch6 -%patch8 -%patch9 -%patch10 -%patch11 -p1 %patch12 -p1 -%patch13 %build %{?suse_update_config:%{suse_update_config -f . lib-src/*/.}} @@ -122,9 +104,9 @@ export AUTOMAKE="automake --foreign" %endif --with-libsndfile=system \ --with-libflac=system \ + --with-ladspa \ --with-libid3tag=system \ - --with-libsamplerate=system \ - --with-portaudio=v19 + --with-libsamplerate=system make %{?jobs:-j %jobs} %install @@ -132,6 +114,8 @@ make DESTDIR=$RPM_BUILD_ROOT install %suse_update_desktop_file audacity install -d -m755 $RPM_BUILD_ROOT%{_datadir}/pixmaps install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/pixmaps +# fix permission error on startup (help dir couldn't be created, should be fixed in next release) +mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/help/manual # we will add docs later in %files section rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/audacity %find_lang %{name} @@ -150,303 +134,3 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/mime/packages/audacity.xml %changelog -* Fri May 29 2009 mseben@suse.cz -- fix startup crash (startup_fix.patch) -* Thu May 21 2009 cmorve69@yahoo.es -- Got portaudio-non-mmap-alsa.patch and audiodevdefaults.patch from - Fedora to allow it to work with PulseAudio -* Tue May 19 2009 cmorve69@yahoo.es -- Add alsa-devel BR to allow ALSA output -* Mon May 11 2009 cmorve69@yahoo.es -- removed unneeded BuildRequires -- make ffmpeg, mad and twolame support build options -- use upstream .desktop file -- do not force -fno-strict-aliasing since upstream already does -* Wed Apr 08 2009 mseben@suse.cz -- added wxGTK_with_stl.patch to fix build issues when linking wxGTK - configured with --enable-stl flag -* Mon Feb 23 2009 mseben@suse.cz -- added return_non_void.patch to fix non-void return value (bnc#477654) -* Mon Feb 02 2009 mseben@suse.cz -- updated to version 1.3.7 - Bug Fixes: - * Muting/soloing caused incorrect channel results in exported - stereo files - * Nyquist effects: pasted unmodified audio into the result, - no progress bar, truncation of processed audio on cancel - * Noise Removal: pasted unmodified audio into the result, unwanted - filtering tail - * Uncompressed exports: export as WAV could be corrupted if - overwriting to same file, export multiple to uncompressed formats - only produced 16-bit WAV - * Compressed exports: MP3 exports now produce correct bit rate - mode, quality and length, with improved metadata visibility - in player applications, WMA exports containing metadata are now correct - * Restored support for multi-channel recording devices that can - record more than two channels using Audacity - * fixes for spurious clipping, label typing, no shortcuts after - running effects - * project rate now always changes to respect that of first imported file - New Features: - * F11 Full Screen mode, high-quality "Sliding Time Scale/Pitch Shift" - effect, Audio Contrast Analyzer - Other changes: - * As a first step towards improving latency correction, a fixed - rather than variable correction is now applied - * Numerous minor interface fixes and improvements -- obsolete *-compile.patch, *-locale.patch -* Mon Jan 12 2009 mseben@suse.cz -- fixed Khmer translation file (*-locale.patch) -- added array-delete.patch to fix array delete (bnc#442936) -- added transparent desktop icon (audacity.png) -- obsolete *-portaudio-shlib.patch, *-nosse.patch -* Thu Dec 11 2008 mseben@suse.cz -- updated to version 1.3.6 - Interface: - * "Save Compressed Copy of Project" saves in much smaller .OGG - format to facilitate online transmission of projects - * Improved MIDI import and export routines, and clearer color - for selection region - * Default temporary directory on Mac now accessible in Finder - Import / Export: - * Stability improvements in on-demand loading - * FFmpeg: support for latest version of library, improved - version checks and error messages, stability improvements - in custom exporter - Bug Fixes: - * Crash in "Get Noise Profile" step of Noise Removal at project - rates below 20480 Hz. - * Underestimation of peak level in tracks with a small number - of different peaks - * Truncate Silence could result in repeated or lost audio if - applied to the whole of a track - * Other interface, generating, exporting and platform-specific - fixes - Compilation: - * Added autoconf macro archive to CVS, enabling *.nix users - without this archive to build --with -MIDI -- renamed *-modal-help-dialog.diff to *-modal-help-dialog.patch, - also changed for 1.3.6 tarball -- added libexpat-devel to BuildRequires (directory lib-src/expat - in tarball 1.3.6 no longer exists) -* Thu Nov 20 2008 tiwai@suse.de -- fix modal dialog with the help browser (bnc#440032) -* Wed May 28 2008 anosek@suse.cz -- updated to version 1.3.5 - Recording / Playback - * Several bugs fixed so that latency correction should be better, and more devices work correctly. - * Problems with invalid sample rates under Linux should be much rarer. - * Newer version of Portaudio library. - * New feature to record onto the end of an existing track (hold Shift while clicking Record). - Import / Export - * Updated versions of Libogg, Libvorbis, Libflac, Libsndfile and Twolame libraries. - * Handling of unsupported file formats more informative. - * Handling of file names with slashes on OS X improved. - * New dialog allows replacement of illegal file name characters on all platforms. - Interface - * Improved scaling and layout for rulers and VU meters. - * Envelope fixes/improvements including full control of undo/redo. - * New keyboard shortcuts and improved menu navigation. - * Preferences: - o More intuitive tab arrangement. - o New options for mute/solo and Metadata Editor behavior. - o Language can now be changed without restart. - * Expanded Build Information tab. - Effects - * New Vocal Remover plug-in, improvements for Generate effects. -- dropped obsoleted patches (cflags.patch) (CVE-2007-6061.patch) -* Wed May 14 2008 schwab@suse.de -- Remove useless patch. -* Wed Apr 02 2008 anosek@suse.cz -- fixed Insecure symlink handling (bnc#344588) (CVE-2007-6061.patch) - - temp file is now created in users home directory -* Fri Jan 25 2008 adrian@suse.de -- remove mad-devel in BuildRequires to keep the package as part - of Factory -* Fri Jan 18 2008 anosek@suse.cz -- updated to version 1.3.4 - New features - New Welcome Screen with introduction to Audacity. - New keyboard command: 'Mix and Render to New Track' (bound to Ctrl+Shift+M). - New keyboard shortcut: "Shift-A" starts playback when stopped, or performs "Stop and Select" when playing. - Added support for VAMP audio analysis plug-ins. - Solo button solos only one track at a time, and a track cannot be both mute and solo. - Interface - Keyboard shortcuts for making short/long jumps along the timeline. - Added 'Snap To' in the Selection Bar. - Made keyboard navigation easier when multiple menu items with the same first letter exist. - Enhanced interface for label editing. - Layout of OK/Cancel buttons consistency improved. - Preferences: - * "Select all audio in project, if none selected" (on by default). - * "Beep on completion of longer activities" (system bell, not main output). - * Other preferences cleaned up and explanations improved. - Envelopes: Many fixes when copying / pasting / repeating. - Many translation updates. - Track height fixed in several cases. - CleanSpeech mode switching without closing and re-opening fixed. - Opening/Saving Formats - Metadata editor added for OGG, FLAC and WAV/AIFF exports, and general improvements. - Metadata import improved. - Muted tracks are no longer audible in the exported mix. - Effects - Truncate Silence: support for multiple and stereo tracks. - Dtmf Generator: - * Added support for keypad letters. - * Added an amplitude control. - Compressor: variable decay time added. - Equalization: - * Clicks at start / end prevented. - * Improvements to saved curves being found. - * Preview works correctly. - 'Merge' command appears in Undo history. - Clipping detected more reliably. - Nyquist plug-ins reviewed and enhanced. - Better (and more) progress bars. - Cancelling effect always restores previous audio. - Several improvement to effects in batch mode. - Recording/Playback - Improvements to latency correction. - Updated version of portaudio-v19 library. - Note that Help is no longer built in, but accessible on the Web via links in Audacity. -- dropped obsoleted patches: - * flac.patch - already in upstream - * equalization.patch - already in upstream - * build.patch - * hu_update.patch.bz2 -- added patch to fix compilation errors (compile.patch) -* Wed Sep 19 2007 prusnak@suse.cz -- fix broken Equalization effect (equalization.patch) [#326217] -* Thu Aug 02 2007 anosek@suse.cz -- fixed Hungarian translation update [#295657] (hu_update.patch) -* Thu Jun 21 2007 sbrabec@suse.cz -- Build with system soundtouch. -- Build with jack support. -* Wed Jun 06 2007 sbrabec@suse.cz -- Removed invalid desktop Category "Application" (#254654). -* Tue May 29 2007 prusnak@suse.cz -- updated to 1.3.3 - * added collapse/expand tracks - * multiple clips per track - * added selection bar - * improved label tracks - * better performance with large projects - * added transcription toolbar - * improved accessibility for the visually impaired - * added auto-save and automatic crash recovery - * added batch processing - * metadata may be added to OGG files - * EQ effect responsiveness improved - * new Auto Duck effect - * DTMF tone generator -- dropped obsoleted patches: - * ambigous.patch - * overflow-fix.patch (included in update) - * qualification.patch (included in update) - * wx-compat.patch -- added patches: - * flac.patch - adjust for new FLAC 1.1.4 API - * nosse.patch - don't try to use SSE on non-x86 archs -* Fri Apr 20 2007 schwab@suse.de -- Fix quoting in autoconf macros. -* Thu Aug 10 2006 anosek@suse.cz -- fixed build with new version of autotools (audacity-build.patch) -* Sun Feb 19 2006 stbinner@suse.de -- add GenericName to .desktop file -* Wed Feb 15 2006 sbrabec@suse.cz -- Build with portaudio19 (#151210). -* Mon Jan 30 2006 aj@suse.de -- Further fix to BuildRequires. -* Sun Jan 29 2006 aj@suse.de -- Fix buildrequires. -* Wed Jan 25 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Fri Dec 16 2005 sbrabec@suse.cz -- Returned back required wx-compat patch. -* Wed Dec 07 2005 sbrabec@suse.cz -- Updated to version 1.2.4b. -* Wed Nov 09 2005 sbrabec@suse.cz -- Strict aliasing fix. -* Tue Oct 25 2005 sbrabec@suse.cz -- Fixed extra qualification. -- Build with correct CFLAGS. -- Fixed random return values. -* Fri Oct 14 2005 sbrabec@suse.cz -- Disabled mad support. -* Fri Apr 15 2005 mcihar@suse.de -- add SDL-devel-packages because of wxGTK -* Thu Feb 17 2005 hvogel@suse.de -- mark as nosrc -* Tue Nov 23 2004 ro@suse.de -- fix build with current wxGTK -* Mon Nov 22 2004 mcihar@suse.cz -- update to 1.2.3 -* Mon Sep 06 2004 mcihar@suse.cz --fix build on 64-bit arches -* Fri Sep 03 2004 mcihar@suse.cz -- update to 1.2.2 -* Thu Aug 05 2004 tiwai@suse.de -- updated to version 1.2.1. -- using wxGTK-compat library. -* Sun Mar 28 2004 tiwai@suse.de -- fixed the segfault at the start up (bug #34313) -- fixed the size of fonts for wxGTK with GTK-2. -- fixed possible buffer overflows. -- build with portaudio-v18, v19 seems problematic. -* Fri Mar 05 2004 tiwai@suse.de -- updated to version 1.2.0 final. -* Mon Feb 16 2004 tiwai@suse.de -- updated to version 1.2.0-pre4. -* Thu Jan 22 2004 tiwai@suse.de -- fixed the build with the latest autoconf. -* Wed Jan 14 2004 tiwai@suse.de -- updated to version 1.2.0-pre3. -- use portaudio v19 (shared lib). -* Tue Jan 13 2004 tiwai@suse.de -- fixed the neededforbuild for the latest wxGTK with gtk2. -* Sat Jan 10 2004 adrian@suse.de -- build as user -* Mon Sep 15 2003 tiwai@suse.de -- added desktop icon. -* Sun Sep 14 2003 adrian@suse.de -- add AudioVideoEditing Category -* Fri Aug 29 2003 tiwai@suse.de -- fixed the bug of WAVE display. -* Thu Aug 14 2003 tiwai@suse.de -- added desktop file. -* Mon Aug 11 2003 tiwai@suse.de -- updated to version 1.2.0-pre1. -- help file is installed under /usr/share/audacity. -* Thu Jul 03 2003 tiwai@suse.de -- fixed neededforbuild for the recent update of mad. -* Tue May 27 2003 ro@suse.de -- removed unpackaged files from buildroot -* Thu Mar 27 2003 tiwai@suse.de -- updated to version 1.1.3. - linked with libFLAC and libsamplerate. -* Tue Nov 26 2002 tiwai@suse.de -- updated to version 1.1.1. -- build with the system libsndfile since now audacity supports - libsndfile 1.0. -- enabled nyquist support. -* Fri Aug 30 2002 tiwai@suse.de -- updated to version 1.1.0 cvs 2002.08.30. - the 1.1.0 tarball version has a major bug regarding to project - file management (bug #18662). this version fixes the problem. - also, this one includes a help text, which wasn't there. -* Wed Jul 24 2002 tiwai@suse.de -- updated to version 1.1.0. -* Mon Jul 01 2002 tiwai@suse.de -- updated to the stable version 1.0.0-2. -* Wed Apr 17 2002 tiwai@suse.de -- fixed build with gcc-3.1. -* Wed Apr 10 2002 ro@suse.de -- work around autoconf problem: first AC_CHECK_HEADER - apparently has to be outside of an if ... fi block -* Fri Feb 01 2002 ro@suse.de -- changed neededforbuild to -* Fri Jan 25 2002 ro@suse.de -- added libpng,libjpeg,libtiff to neededforbuild -* Thu Jan 24 2002 tiwai@suse.de -- initial package version: 0.98. -- built with the shared id3lib.