diff --git a/lib-src/portaudio-v19/src/common/pa_front.c b/lib-src/portaudio-v19/src/common/pa_front.c index d357a1514..0176398a6 100644 --- a/lib-src/portaudio-v19/src/common/pa_front.c +++ b/lib-src/portaudio-v19/src/common/pa_front.c @@ -960,7 +960,7 @@ static PaError ValidateOpenStreamParameters( /* Check for absurd sample rates. */ - if( (sampleRate < 1000.0) || (sampleRate > 200000.0) ) + if( (sampleRate < 1000.0) || (sampleRate > 384000.0) ) return paInvalidSampleRate; if( ((streamFlags & ~paPlatformSpecificFlags) & ~(paClipOff | paDitherOff | paNeverDropInput | paPrimeOutputBuffersUsingStreamCallback ) ) != 0 ) diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index 7fa1d0266..59c219a61 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -342,7 +342,12 @@ const int AudioIO::StandardRates[] = { 32000, 44100, 48000, - 96000 + 88200, + 96000, + 176400, + 192000, + 352800, + 384000 }; const int AudioIO::NumStandardRates = sizeof(AudioIO::StandardRates) / sizeof(AudioIO::StandardRates[0]); @@ -360,7 +365,10 @@ const int AudioIO::RatesToTry[] = { 48000, 88200, 96000, - 192000 + 176400, + 192000, + 352800, + 384000 }; const int AudioIO::NumRatesToTry = sizeof(AudioIO::RatesToTry) / sizeof(AudioIO::RatesToTry[0]); diff --git a/src/Menus.cpp b/src/Menus.cpp index d30df74a7..d69750664 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -6451,7 +6451,12 @@ void AudacityProject::OnResample() rates.Add(wxT("32000")); rates.Add(wxT("44100")); rates.Add(wxT("48000")); + rates.Add(wxT("88200")); rates.Add(wxT("96000")); + rates.Add(wxT("176400")); + rates.Add(wxT("192000")); + rates.Add(wxT("352800")); + rates.Add(wxT("384000")); S.StartVerticalLay(true); { diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index c83fbb960..1eba19905 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -292,7 +292,12 @@ enum { OnRate22ID, // | OnRate44ID, // | OnRate48ID, // | Leave these in order - OnRate96ID, // | see OnTrackMenu() + OnRate88ID, // | + OnRate96ID, // | + OnRate176ID, // | see OnTrackMenu() + OnRate192ID, // | + OnRate352ID, // | + OnRate384ID, // | OnRateOtherID, // | // | On16BitID, // | @@ -336,7 +341,7 @@ BEGIN_EVENT_TABLE(TrackPanel, wxWindow) EVT_MENU_RANGE(OnChannelLeftID, OnChannelMonoID, TrackPanel::OnChannelChange) EVT_MENU_RANGE(OnWaveformID, OnPitchID, TrackPanel::OnSetDisplay) - EVT_MENU_RANGE(OnRate8ID, OnRate96ID, TrackPanel::OnRateChange) + EVT_MENU_RANGE(OnRate8ID, OnRate384ID, TrackPanel::OnRateChange) EVT_MENU_RANGE(On16BitID, OnFloatID, TrackPanel::OnFormatChange) EVT_MENU(OnRateOtherID, TrackPanel::OnRateOther) EVT_MENU(OnSplitStereoID, TrackPanel::OnSplitStereo) @@ -619,7 +624,12 @@ void TrackPanel::BuildMenus(void) mRateMenu->AppendCheckItem(OnRate22ID, wxT("22050 Hz")); mRateMenu->AppendCheckItem(OnRate44ID, wxT("44100 Hz")); mRateMenu->AppendCheckItem(OnRate48ID, wxT("48000 Hz")); + mRateMenu->AppendCheckItem(OnRate88ID, wxT("88200 Hz")); mRateMenu->AppendCheckItem(OnRate96ID, wxT("96000 Hz")); + mRateMenu->AppendCheckItem(OnRate176ID, wxT("176400 Hz")); + mRateMenu->AppendCheckItem(OnRate192ID, wxT("192000 Hz")); + mRateMenu->AppendCheckItem(OnRate352ID, wxT("352800 Hz")); + mRateMenu->AppendCheckItem(OnRate384ID, wxT("384000 Hz")); mRateMenu->AppendCheckItem(OnRateOtherID, _("&Other...")); mFormatMenu = new wxMenu(); @@ -7244,18 +7254,19 @@ void TrackPanel::SetMenuCheck( wxMenu & menu, int newId ) } } -const int nRates=7; +const int nRates=12; /// gRates MUST CORRESPOND DIRECTLY TO THE RATES AS LISTED IN THE MENU!! /// IN THE SAME ORDER!! -int gRates[nRates] = { 8000, 11025, 16000, 22050, 44100, 48000, 96000 }; +int gRates[nRates] = { 8000, 11025, 16000, 22050, 44100, 48000, 88200, 96000, + 176400, 192000, 352800, 384000 }; /// This method handles the selection from the Rate /// submenu of the track menu, except for "Other" (/see OnRateOther). void TrackPanel::OnRateChange(wxCommandEvent & event) { int id = event.GetId(); - wxASSERT(id >= OnRate8ID && id <= OnRate96ID); + wxASSERT(id >= OnRate8ID && id <= OnRate384ID); wxASSERT(mPopupMenuTarget && mPopupMenuTarget->GetKind() == Track::Wave); @@ -7303,7 +7314,12 @@ void TrackPanel::OnRateOther(wxCommandEvent &event) rates.Add(wxT("22050")); rates.Add(wxT("44100")); rates.Add(wxT("48000")); + rates.Add(wxT("88200")); rates.Add(wxT("96000")); + rates.Add(wxT("176400")); + rates.Add(wxT("192000")); + rates.Add(wxT("352800")); + rates.Add(wxT("384000")); S.StartVerticalLay(true); {