1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-04 14:19:30 +02:00

Bug2304: complete the fix...

... which was begun at 02dd7dc96bde4defe48b2cc332b8db7025b04bcf
This commit is contained in:
Paul Licameli 2020-02-25 15:30:21 -05:00
parent 5a2eaf9a52
commit 58bc0a76e5

View File

@ -334,35 +334,6 @@ void ExportMP3Options::PopulateOrExchange(ShuttleGui & S)
bool enable;
int defrate;
switch( MP3RateModeSetting.ReadEnum() ) {
case MODE_SET:
choices = &setRateNames;
enable = true;
defrate = mSetRate;
break;
case MODE_VBR:
choices = &varRateNames;
enable = true;
defrate = mVbrRate;
break;
case MODE_ABR:
choices = &fixRateNames;
codes = &fixRateValues;
enable = false;
defrate = mAbrRate;
break;
case MODE_CBR:
default:
choices = &fixRateNames;
codes = &fixRateValues;
enable = false;
defrate = mCbrRate;
break;
}
S.StartVerticalLay();
{
S.StartHorizontalLay(wxCENTER);
@ -386,6 +357,41 @@ void ExportMP3Options::PopulateOrExchange(ShuttleGui & S)
}
S.EndHorizontalLay();
/* PRL: unfortunately this bit of procedural code must
interrupt the mostly-declarative dialog description, until
we find a better solution. Because when shuttling values
from the dialog, we must shuttle out the MP3RateModeSetting
first. */
switch( MP3RateModeSetting.ReadEnum() ) {
case MODE_SET:
choices = &setRateNames;
enable = true;
defrate = mSetRate;
break;
case MODE_VBR:
choices = &varRateNames;
enable = true;
defrate = mVbrRate;
break;
case MODE_ABR:
choices = &fixRateNames;
codes = &fixRateValues;
enable = false;
defrate = mAbrRate;
break;
case MODE_CBR:
default:
choices = &fixRateNames;
codes = &fixRateValues;
enable = false;
defrate = mCbrRate;
break;
}
mRate = S.Id(ID_QUALITY).TieNumberAsChoice(
XO("Quality"),
{ wxT("/FileFormats/MP3Bitrate"), defrate },
@ -1814,7 +1820,8 @@ ProgressResult ExportMP3::Export(AudacityProject *project,
exporter.SetQuality(brate, r);
}
else if (rmode == MODE_ABR) {
bitrate = brate = ValidateValue(fixRateValues, brate, 128);
brate = ValidateIndex( fixRateValues, brate, 6 /* 128 kbps */ );
bitrate = fixRateValues[ brate ];
exporter.SetMode(MODE_ABR);
exporter.SetBitrate(bitrate);
@ -1826,7 +1833,8 @@ ProgressResult ExportMP3::Export(AudacityProject *project,
}
}
else {
bitrate = brate = ValidateValue(fixRateValues, brate, 128);
brate = ValidateIndex( fixRateValues, brate, 6 /* 128 kbps */ );
bitrate = fixRateValues[ brate ];
exporter.SetMode(MODE_CBR);
exporter.SetBitrate(bitrate);
@ -1923,7 +1931,7 @@ ProgressResult ExportMP3::Export(AudacityProject *project,
title = (selectionOnly ?
XO("Exporting selected audio at %d Kbps") :
XO("Exporting the audio at %d Kbps"))
.Format( brate );
.Format( bitrate );
}
InitProgress( pDialog, fName, title );