void FindClippingDialog::PopulateOrExchange(ShuttleGui & S) { S.StartHorizontalLay(wxCENTER, false); { S.AddTitle(_("by Leland Lucius")); } S.EndHorizontalLay(); S.StartHorizontalLay(wxCENTER, false); { // Add a little space } S.EndHorizontalLay(); S.StartMultiColumn(2, wxALIGN_CENTER); { S.TieTextBox(_("Start threshold (samples):"), mEffect->mStart, 10)->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); S.TieTextBox(_("Stop threshold (samples):"), mEffect->mStop, 10)->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); } S.EndMultiColumn(); }
/// Populates more complex dialog that has a chirp. void ToneGenDialog::PopulateOrExchangeExtended( ShuttleGui & S ) { S.StartMultiColumn(2, wxCENTER); { S.TieChoice( _("Waveform:"), waveform, waveforms); S.SetSizeHints(-1,-1); } S.EndMultiColumn(); S.StartMultiColumn(3, wxCENTER); { S.AddFixedText(wxT("")); S.AddTitle( _("Start")); S.AddTitle( _("End") ); S.TieTextBox( _("Frequency / Hz"),frequency[0], 10); S.TieTextBox( wxT(""),frequency[1], 10); S.TieTextBox( _("Amplitude (0-1)"),amplitude[0], 10); S.TieTextBox( wxT(""),amplitude[1], 10); } S.EndMultiColumn(); S.StartMultiColumn(2, wxCENTER); { S.TieTextBox( _("Length (seconds)"),length, 10 ); } S.EndMultiColumn(); }
/// Populates simple dialog that has a single tone. void ToneGenDialog::PopulateOrExchangeStandard( ShuttleGui & S ) { S.StartMultiColumn(2, wxCENTER); { S.TieChoice( _("Waveform:"), waveform, waveforms); S.SetSizeHints(-1,-1); S.TieTextBox( _("Frequency / Hz"),frequency[0], 5); S.TieTextBox( _("Amplitude (0-1)"),amplitude[0], 5); S.TieTextBox( _("Length (seconds)"),length, 5 ); } S.EndMultiColumn(); }
void FindClippingDialog::PopulateOrExchange(ShuttleGui & S) { S.StartMultiColumn(2, wxALIGN_CENTER); { S.TieTextBox(_("Start threshold (samples):"), mEffect->mStart, 10)->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); S.TieTextBox(_("Stop threshold (samples):"), mEffect->mStop, 10)->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); } S.EndMultiColumn(); }
/// Add a compound control made up from a choice and an edit /// box. void QualityPrefs::DefineSampleRateControl( ShuttleGui & S ) { // We use a sizer within a sizer to get the effect we want. // We also use the SetIfCreated idiom to get pointers to // the controls, so that we can drive them from // our own code. S.SetBorder(2); S.StartHorizontalLay(wxALIGN_LEFT ); // If the value in Prefs isn't in the list, then we want // the last item, 'Other...' to be shown. S.SetNoMatchSelector( mmSampleRateNames.GetCount()-1 ); // First the choice... // We make sure it uses the ID we want, so that we get changes S.Id( ID_SAMPLE_RATE_CHOICE ); // We make sure we have a pointer to it, so that we can drive it. mSampleRates = S.TieChoice( wxT(""), wxT("/SamplingRate/DefaultProjectSampleRate"), AudioIO::GetOptimalSupportedSampleRate(), mmSampleRateNames, mmSampleRateLabels ); // Now do the edit box... mOtherSampleRate = S.TieTextBox(wxT(""), mOtherSampleRateValue, 9); S.EndHorizontalLay(); }
void NoiseDialog::PopulateOrExchange( ShuttleGui & S ) { S.StartMultiColumn(2, wxCENTER); { S.AddFixedText(_("Duration"), false); if (mNoiseDurationT == NULL) { mNoiseDurationT = new TimeTextCtrl(this, wxID_ANY, wxT(""), nDuration, 44100, wxDefaultPosition, wxDefaultSize, true); /* use this instead of "seconds" because if a selection is passed to * the effect, I want it (nDuration) to be used as the duration, and * with "seconds" this does not always work properly. For example, * it rounds down to zero... */ mNoiseDurationT->SetFormatString(mNoiseDurationT->GetBuiltinFormat(nIsSelection==true?(wxT("hh:mm:ss + samples")):(wxT("seconds")))); mNoiseDurationT->EnableMenu(); } S.AddWindow(mNoiseDurationT); S.TieTextBox(_("Amplitude (0-1)"), nAmplitude, 10); S.TieChoice(_("Noise type"), nType, nTypeList); S.SetSizeHints(-1, -1); } S.EndMultiColumn(); }
void NoiseDialog::PopulateOrExchange( ShuttleGui & S ) { S.StartMultiColumn(2, wxCENTER); { // The added colon to improve visual consistency was placed outside // the translatable strings to avoid breaking translations close to 2.0. // TODO: Make colon part of the translatable string after 2.0. S.TieChoice(_("Noise type") + wxString(wxT(":")), nType, nTypeList); S.TieTextBox(_("Amplitude (0-1)") + wxString(wxT(":")), nAmplitude, 10); S.AddPrompt(_("Duration") + wxString(wxT(":"))); if (mNoiseDurationT == NULL) { mNoiseDurationT = new TimeTextCtrl(this, wxID_ANY, wxT(""), nDuration, mEffect->mProjectRate, wxDefaultPosition, wxDefaultSize, true); /* use this instead of "seconds" because if a selection is passed to * the effect, I want it (nDuration) to be used as the duration, and * with "seconds" this does not always work properly. For example, * it rounds down to zero... */ mNoiseDurationT->SetName(_("Duration")); mNoiseDurationT->SetFormatString(mNoiseDurationT->GetBuiltinFormat(nIsSelection==true?(_("hh:mm:ss + samples")):(_("seconds")))); mNoiseDurationT->EnableMenu(); } S.AddWindow(mNoiseDurationT, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL); } S.EndMultiColumn(); }
void DirectoriesPrefs::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(2); S.StartStatic(_("Temporary files directory")); { S.StartMultiColumn(3, wxEXPAND); { S.SetStretchyCol(1); S.Id(TempDirID); mTempDir = S.TieTextBox(_("Location:"), wxT("/Directories/TempDir"), wxT(""), 30); S.Id(ChooseButtonID); S.AddButton(_("Choose...")); S.AddFixedText(_("Free Space:")); mFreeSpace = S.AddVariableText(wxT("")); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Audio cache")); { S.TieCheckBox(_("Play and/or record using RAM (useful for slow drives)"), wxT("/Directories/CacheBlockFiles"), false); S.StartTwoColumn(); { S.TieTextBox(_("Minimum Free Memory (MB):"), wxT("/Directories/CacheLowMem"), 16, 9); } S.EndTwoColumn(); S.AddVariableText(_("If the available system memory falls below this value, audio will no longer\nbe cached in memory and will be written to disk."))->Wrap(600); } S.EndStatic(); }
void DtmfDialog::PopulateOrExchange( ShuttleGui & S ) { wxTextValidator vldDtmf(wxFILTER_INCLUDE_CHAR_LIST); vldDtmf.SetIncludes(wxArrayString(42, dtmfSymbols)); S.AddTitle(_("by Salvo Ventura (2006)")); S.StartMultiColumn(2, wxEXPAND); { mDtmfStringT = S.Id(ID_DTMF_STRING_TEXT).AddTextBox(_("DTMF sequence:"), wxT(""), 10); mDtmfStringT->SetValidator(vldDtmf); S.TieTextBox(_("Amplitude (0-1)"), dAmplitude, 10); S.AddPrompt(_("Duration:")); if (mDtmfDurationT == NULL) { mDtmfDurationT = new TimeTextCtrl(this, ID_DTMF_DURATION_TEXT, wxT(""), dDuration, mEffect->mProjectRate, wxDefaultPosition, wxDefaultSize, true); /* use this instead of "seconds" because if a selection is passed to the * effect, I want it (dDuration) to be used as the duration, and with * "seconds" this does not always work properly. For example, it rounds * down to zero... */ mDtmfDurationT->SetName(_("Duration")); mDtmfDurationT->SetFormatString(mDtmfDurationT->GetBuiltinFormat(dIsSelection==true?(wxT("hh:mm:ss + samples")):(wxT("seconds")))); mDtmfDurationT->EnableMenu(); } S.AddWindow(mDtmfDurationT); S.AddFixedText(_("Tone/silence ratio:"), false); S.SetStyle(wxSL_HORIZONTAL | wxEXPAND); mDtmfDutyS = S.Id(ID_DTMF_DUTYCYCLE_SLIDER).AddSlider(wxT(""), (int)dDutyCycle, DUTY_MAX, DUTY_MIN); S.SetSizeHints(-1,-1); } S.EndMultiColumn(); S.StartMultiColumn(2, wxCENTER); { S.AddFixedText(_("Duty cycle:"), false); mDtmfDutyT = S.Id(ID_DTMF_DUTYCYCLE_TEXT).AddVariableText(wxString::Format(wxT("%.1f %%"), (float) dDutyCycle/DUTY_SCALE), false); S.AddFixedText(_("Tone duration:"), false); mDtmfSilenceT = S.Id(ID_DTMF_TONELEN_TEXT).AddVariableText(wxString::Format(wxString(wxT("%d ")) + _("ms"), (int) dTone * 1000), false); S.AddFixedText(_("Silence duration:"), false); mDtmfToneT = S.Id(ID_DTMF_SILENCE_TEXT).AddVariableText(wxString::Format(wxString(wxT("%d ")) + _("ms"), (int) dSilence * 1000), false); } S.EndMultiColumn(); }
void DirectoriesPrefs::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(2); S.StartStatic(_("Temporary files directory")); { S.StartMultiColumn(3, wxEXPAND); { S.SetStretchyCol(1); S.Id(TempDirID); mTempDir = S.TieTextBox(_("&Location:"), wxT("/Directories/TempDir"), wxT(""), 30); S.Id(ChooseButtonID); S.AddButton(_("C&hoose...")); S.AddFixedText(_("Free Space:")); mFreeSpace = S.AddVariableText(wxT("")); } S.EndMultiColumn(); } S.EndStatic(); #ifdef DEPRECATED_AUDIO_CACHE // See http://bugzilla.audacityteam.org/show_bug.cgi?id=545. S.StartStatic(_("Audio cache")); { S.TieCheckBox(_("Play and/or record using &RAM (useful for slow drives)"), wxT("/Directories/CacheBlockFiles"), false); S.StartTwoColumn(); { S.TieNumericTextBox(_("Mi&nimum Free Memory (MB):"), wxT("/Directories/CacheLowMem"), 16, 9); } S.EndTwoColumn(); S.AddVariableText(_("If the available system memory falls below this value, audio will no longer\nbe cached in memory and will be written to disk."))->Wrap(600); } S.EndStatic(); #endif // DEPRECATED_AUDIO_CACHE }
void TracksPrefs::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(2); S.StartStatic(_("Display")); { S.TieCheckBox(_("&Update display while playing"), wxT("/GUI/AutoScroll"), true); S.TieCheckBox(_("Automatically &fit tracks vertically zoomed"), wxT("/GUI/TracksFitVerticallyZoomed"), false); S.AddSpace(10); S.StartMultiColumn(2); { S.TieChoice(_("Default &view mode:"), wxT("/GUI/DefaultViewModeNew"), 0, mViewChoices, mViewCodes); S.SetSizeHints(mViewChoices); S.TieTextBox(_("Default audio track &name:"), wxT("/GUI/TrackNames/DefaultTrackName"), _("Audio Track"), 30); } S.EndMultiColumn(); S.TieCheckBox(_("Sho&w audio track name as overlay"), wxT("/GUI/ShowTrackNameInWaveform"), false); } S.EndStatic(); S.StartStatic(_("Behaviors")); { S.TieCheckBox(_("&Select all audio in project, if none selected"), wxT("/GUI/SelectAllOnNone"), true); /* i18n-hint: cut-lines are a lines indicating where to cut.*/ S.TieCheckBox(_("Enable cu&t lines"), wxT("/GUI/EnableCutLines"), false); S.TieCheckBox(_("Enable &dragging of left and right selection edges"), wxT("/GUI/AdjustSelectionEdges"), true); S.TieCheckBox(_("\"Move track focus\" c&ycles repeatedly through tracks"), wxT("/GUI/CircularTrackNavigation"), false); S.TieCheckBox(_("Editing a clip can &move other clips"), wxT("/GUI/EditClipCanMove"), true); #ifdef EXPERIMENTAL_SCROLLING_LIMITS S.TieCheckBox(_("Enable scrolling left of &zero"), wxT("/GUI/ScrollBeyondZero"), false); #endif S.AddSpace(10); S.StartMultiColumn(2); { S.TieChoice(_("Solo &Button:"), wxT("/GUI/Solo"), wxT("Standard"), mSoloChoices, mSoloCodes); S.SetSizeHints(mSoloChoices); } S.EndMultiColumn(); } S.EndStatic(); }
void AudioIOPrefs::PopulateOrExchange( ShuttleGui & S ) { /// \todo /// JKC: I think setting paths in gPrefs is bad practice. /// Suppose we are using gPrefs from elsewhere at the same time? /// Change these all to full paths? gPrefs->SetPath(wxT("/AudioIO")); S.SetBorder( 2 ); S.StartHorizontalLay(wxEXPAND, 0 ); S.StartStatic( _("Playback"),1 ); { S.StartMultiColumn(2, wxEXPAND); S.SetStretchyCol(1); S.TieChoice( _("Device") + wxString(wxT(":")), wxT("PlaybackDevice"), wxT(""), mmPlayNames, mmPlayLabels ); S.AddPrompt( _("Using:") ); wxString ver = _("Portaudio v"); #if USE_PORTAUDIO_V19 ver += wxT("19"); #else ver += wxT("18"); #endif S.AddFixedText( ver ); S.EndMultiColumn(); } S.EndStatic(); S.StartStatic( _("Recording"), 1 ); { S.StartMultiColumn(2, wxEXPAND); S.SetStretchyCol(1); S.TieChoice( _("Device") + wxString(wxT(":")), wxT("RecordingDevice"), wxT(""), mmRecordNames, mmRecordLabels ); S.TieChoice( _("Channels") + wxString(wxT(":")), wxT("RecordChannels"), 2, mmChannelNames, mmChannelLabels ); S.EndMultiColumn(); } S.EndStatic(); S.EndHorizontalLay(); S.StartStatic( _("Playthrough") ); { S.TieCheckBox( _("&Play other tracks while recording new one"), wxT("Duplex"),true); #ifdef __MACOSX__ S.TieCheckBox( _("&Hardware Playthrough (Play new track while recording it)"), wxT("Playthrough"),false); #endif S.TieCheckBox( _("&Software Playthrough (Play new track while recording it)"), wxT("SWPlaythrough"),false); } S.EndStatic(); S.StartHorizontalLay( wxEXPAND, 0 ); S.StartStatic( _("Cut Preview"),1 ); { S.StartThreeColumn(); S.TieTextBox( _("Play before cut region:"), wxT("CutPreviewBeforeLen"),1.0,9); S.AddUnits( _("seconds") ); S.TieTextBox( _("Play after cut region:"),wxT("CutPreviewAfterLen"), 1.0,9); S.AddUnits( _("seconds") ); S.EndThreeColumn(); } S.EndStatic(); S.StartStatic( _("Latency"),1 ); { S.StartThreeColumn(); #if USE_PORTAUDIO_V19 // only show the following controls if we use Portaudio v19, because // for Portaudio v19 we always use default buffer sizes S.TieTextBox( _("Audio to buffer:"),wxT("LatencyDuration"),100.0,9); S.AddUnits( _("milliseconds") ); #endif S.TieTextBox( _("Latency correction:"),wxT("LatencyCorrection"),0.0,9); S.AddUnits( _("milliseconds") ); S.EndThreeColumn(); } S.EndStatic(); S.EndHorizontalLay(); S.StartHorizontalLay( wxEXPAND, 0 ); S.StartStatic( _("Seek Time"),1 ); { S.StartThreeColumn(); S.TieTextBox( _("Short period:"), wxT("SeekShortPeriod"),1.0,9); S.AddUnits( _("seconds") ); S.TieTextBox( _("Long period:"),wxT("SeekLongPeriod"), 15.0,9); S.AddUnits( _("seconds") ); S.EndThreeColumn(); } S.EndStatic(); S.StartStatic( _("Effects Preview"),1 ); { S.StartThreeColumn(); S.TieTextBox( _("Play when previewing:"), wxT("EffectsPreviewLen"), 3.0,9); S.AddUnits( _("seconds") ); S.EndThreeColumn(); } gPrefs->SetPath(wxT("/")); }
void SpectrumPrefs::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(2); S.StartStatic(_("FFT Window")); { S.StartMultiColumn(2); { S.TieChoice(_("Window size") + wxString(wxT(":")), wxT("/Spectrum/FFTSize"), 256, mSizeChoices, mSizeCodes); S.SetSizeHints(mSizeChoices); S.TieChoice(_("Window type") + wxString(wxT(":")), wxT("/Spectrum/WindowType"), 3, mTypeChoices, mTypeCodes); S.SetSizeHints(mTypeChoices); } S.EndMultiColumn(); } S.EndStatic(); #ifdef EXPERIMENTAL_FFT_SKIP_POINTS wxArrayString wskipn; wxArrayInt wskipv; for (size_t i = 0; i < 7; i++) { wskipn.Add(wxString::Format(wxT("%d"), (1 << i) - 1)); wskipv.Add((1 << i) - 1); } S.StartStatic(_("FFT Skip Points")); { S.StartMultiColumn(2); { S.TieChoice(_("Skip Points") + wxString(wxT(":")), wxT("/Spectrum/FFTSkipPoints"), 0, wskipn, wskipv); S.SetSizeHints(wskipn); } S.EndMultiColumn(); } S.EndStatic(); #endif //EXPERIMENTAL_FFT_SKIP_POINTS S.StartStatic(_("Display")); { S.StartTwoColumn(); { mMinFreq = S.TieTextBox(_("Minimum Frequency (Hz):"), wxT("/Spectrum/MinFreq"), 0, 12); mMaxFreq = S.TieTextBox(_("Maximum Frequency (Hz):"), wxT("/Spectrum/MaxFreq"), 8000, 12); mGain = S.TieTextBox(_("Gain (dB):"), wxT("/Spectrum/Gain"), 20, 8); mRange = S.TieTextBox(_("Range (dB):"), wxT("/Spectrum/Range"), 80, 8); mFrequencyGain = S.TieTextBox(_("Frequency gain: (dB/dec)"), wxT("/Spectrum/FrequencyGain"), 0, 4); } S.EndTwoColumn(); S.TieCheckBox(_("Show the spectrum using &grayscale colors"), wxT("/Spectrum/Grayscale"), false); #ifdef EXPERIMENTAL_FFT_Y_GRID S.TieCheckBox(_("Show a grid along the &Y-axis"), wxT("/Spectrum/FFTYGrid"), false); #endif //EXPERIMENTAL_FFT_Y_GRID } S.EndStatic(); #ifdef EXPERIMENTAL_FIND_NOTES S.StartStatic(_("FFT Find Notes")); { S.StartTwoColumn(); { mFindNotesMinA = S.TieTextBox(_("Minimum Amplitude (dB):"), wxT("/Spectrum/FindNotesMinA"), -30L, 8); mFindNotesN = S.TieTextBox(_("Max. Number of Notes (1..128):"), wxT("/Spectrum/FindNotesN"), 5L, 8); } S.EndTwoColumn(); S.TieCheckBox(_("&Find Notes"), wxT("/Spectrum/FFTFindNotes"), false); S.TieCheckBox(_("&Quantize Notes"), wxT("/Spectrum/FindNotesQuantize"), false); } S.EndStatic(); #endif //EXPERIMENTAL_FIND_NOTES }
void QualityPrefs::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(2); S.StartStatic(_("Sampling")); { S.StartMultiColumn(2); { S.AddPrompt(_("Default Sample Rate:")); S.StartMultiColumn(2); { // If the value in Prefs isn't in the list, then we want // the last item, 'Other...' to be shown. S.SetNoMatchSelector(mSampleRateNames.GetCount() - 1); // First the choice... // We make sure it uses the ID we want, so that we get changes S.Id(ID_SAMPLE_RATE_CHOICE); // We make sure we have a pointer to it, so that we can drive it. mSampleRates = S.TieChoice(wxT(""), wxT("/SamplingRate/DefaultProjectSampleRate"), AudioIO::GetOptimalSupportedSampleRate(), mSampleRateNames, mSampleRateLabels); S.SetSizeHints(mSampleRateNames); // Now do the edit box... mOtherSampleRate = S.TieTextBox(wxT(""), mOtherSampleRateValue, 15); } S.EndHorizontalLay(); S.TieChoice(_("Default Sample Format:"), wxT("/SamplingRate/DefaultProjectSampleFormat"), floatSample, mSampleFormatNames, mSampleFormatLabels); S.SetSizeHints(mSampleFormatNames); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Real-time Conversion")); { S.StartMultiColumn(2, wxEXPAND); { S.SetStretchyCol(2); S.TieChoice(_("Sample Rate Converter:"), Resample::GetFastMethodKey(), Resample::GetFastMethodDefault(), mConverterNames, mConverterLabels), S.SetSizeHints(mConverterNames); S.TieChoice(_("Dither"), wxT("/Quality/DitherAlgorithm"), Dither::none, mDitherNames, mDitherLabels); S.SetSizeHints(mDitherNames); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("High-quality Conversion")); { S.StartMultiColumn(2); { S.TieChoice(_("Sample Rate Converter:"), Resample::GetBestMethodKey(), Resample::GetBestMethodDefault(), mConverterNames, mConverterLabels), S.SetSizeHints(mConverterNames); S.TieChoice(_("Dither"), wxT("/Quality/HQDitherAlgorithm"), Dither::shaped, mDitherNames, mDitherLabels); S.SetSizeHints(mDitherNames); } S.EndMultiColumn(); } S.EndStatic(); }
void RecordingPrefs::PopulateOrExchange(ShuttleGui & S) { wxTextCtrl *w; S.SetBorder(2); S.StartStatic(_("Playthrough")); { S.TieCheckBox(_("Overdub: &Play other tracks while recording new one"), wxT("/AudioIO/Duplex"), true); #if defined(__WXMAC__) S.TieCheckBox(_("&Hardware Playthrough: Listen while recording or monitoring new track"), wxT("/AudioIO/Playthrough"), false); #endif S.TieCheckBox(_("&Software Playthrough: Listen while recording or monitoring new track"), wxT("/AudioIO/SWPlaythrough"), false); #if !defined(__WXMAC__) S.AddUnits(wxString(wxT(" ")) + _("(uncheck when recording \"stereo mix\")")); #endif } S.EndStatic(); S.StartStatic( _("Latency")); { S.StartThreeColumn(); { // only show the following controls if we use Portaudio v19, because // for Portaudio v18 we always use default buffer sizes w = S.TieNumericTextBox(_("Audio to &buffer:"), wxT("/AudioIO/LatencyDuration"), DEFAULT_LATENCY_DURATION, 9); S.AddUnits(_("milliseconds (higher = more latency)")); w->SetName(w->GetName() + wxT(" ") + _("milliseconds (higher = more latency)")); w = S.TieNumericTextBox(_("L&atency correction:"), wxT("/AudioIO/LatencyCorrection"), DEFAULT_LATENCY_CORRECTION, 9); S.AddUnits(_("milliseconds (negative = backwards)")); w->SetName(w->GetName() + wxT(" ") + _("milliseconds (negative = backwards)")); } S.EndThreeColumn(); } S.EndStatic(); S.StartStatic(_("Sound Activated Recording")); { S.TieCheckBox(_("Sound Activated &Recording"), wxT("/AudioIO/SoundActivatedRecord"), false); S.StartMultiColumn(2, wxEXPAND); { S.SetStretchyCol(1); int dBRange = gPrefs->Read(ENV_DB_KEY, ENV_DB_RANGE); S.TieSlider(_("Sound Activation Le&vel (dB):"), wxT("/AudioIO/SilenceLevel"), -50, 0, -dBRange); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Naming newly recorded tracks")); { S.StartMultiColumn(3); { S.Id(UseCustomTrackNameID).TieCheckBox(_("Use Custom Track &Name"), wxT("/GUI/TrackNames/RecordingNameCustom"), mUseCustomTrackName ? true : false); mToggleCustomName = S.TieTextBox(wxT(""), wxT("/GUI/TrackNames/RecodingTrackName"), _("Recorded_Audio"), 30); mToggleCustomName->SetName(_("Custom name text")); mToggleCustomName->Enable(mUseCustomTrackName); } S.EndMultiColumn(); S.TieCheckBox(_("Add &Track Number"), wxT("/GUI/TrackNames/TrackNumber"), false); S.TieCheckBox(_("Add System &Date"), wxT("/GUI/TrackNames/DateStamp"), false); S.TieCheckBox(_("Add System T&ime"), wxT("/GUI/TrackNames/TimeStamp"), false); } S.EndStatic(); #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT S.StartStatic(_("Automated Recording Level Adjustment")); { S.TieCheckBox(_("Enable Automated Recording Level Adjustment."), wxT("/AudioIO/AutomatedInputLevelAdjustment"), false); S.StartMultiColumn(2, wxEXPAND); { S.SetStretchyCol(1); /* i18n-hint: Desired maximum (peak) volume for sound */ S.TieSlider(_("Target Peak:"), wxT("/AudioIO/TargetPeak"), AILA_DEF_TARGET_PEAK, 100, 0); S.TieSlider(_("Within:"), wxT("/AudioIO/DeltaPeakVolume"), AILA_DEF_DELTA_PEAK, 100, 0); } S.EndMultiColumn(); S.StartThreeColumn(); { S.TieNumericTextBox(_("Analysis Time:"), wxT("/AudioIO/AnalysisTime"), AILA_DEF_ANALYSIS_TIME, 9); S.AddUnits(_("milliseconds (time of one analysis)")); S.TieNumericTextBox(_("Number of consecutive analysis:"), wxT("/AudioIO/NumberAnalysis"), AILA_DEF_NUMBER_ANALYSIS, 2); S.AddUnits(_("0 means endless")); } S.EndThreeColumn(); } S.EndStatic(); #endif }