26#include <wx/textctrl.h>
45:
PrefsPanel(parent, winid,
XC("Recording", "preference"))
47 gPrefs->
Read(
wxT(
"/GUI/TrackNames/RecordingNameCustom"), &mUseCustomTrackName,
false);
48 mOldNameChoice = mUseCustomTrackName;
63 return XO(
"Preferences for Recording");
68 return "Recording_Preferences";
87 S.StartStatic(
XO(
"Options"));
90 S.TieCheckBox(
XXO(
"Hear &other tracks while recording (overdub)"),
91 {
wxT(
"/AudioIO/Duplex"),
102 S.TieCheckBox(
XO(
"Use &hardware to play other tracks"),
103 {
wxT(
"/AudioIO/Playthrough"),
106 S.TieCheckBox(
XXO(
"Audible input &monitoring"),
107 {
wxT(
"/AudioIO/SWPlaythrough"),
109#if !defined(__WXMAC__)
113 S.TieCheckBox(
XXO(
"Record on a new track"),
114 {
wxT(
"/GUI/PreferNewTrackRecord"),
118 S.TieCheckBox(
XXO(
"Detect dropouts"),
126 S.StartStatic(
XO(
"Sound Activated Recording"));
130 S.StartMultiColumn(2, wxEXPAND);
134 S.TieSlider(
XXO(
"Le&vel (dB):"),
135 {
wxT(
"/AudioIO/SilenceLevel"),
145 S.StartStatic(
XO(
"Name newly recorded tracks"));
150 S.StartMultiColumn( 2 );
153 S.AddFixedText(
XO(
"With:")) ;
154 S.StartMultiColumn(3);
157 {
wxT(
"/GUI/TrackNames/RecordingNameCustom"),
161 .Name(
XO(
"Custom name text"))
164 {
wxT(
"/GUI/TrackNames/RecodingTrackName"),
165 _(
"Recorded_Audio")},
171 S.AddFixedText( {} );
172 S.StartMultiColumn(3);
174 S.TieCheckBox(
XXO(
"&Track Number"),
175 {
wxT(
"/GUI/TrackNames/TrackNumber"),
178 S.TieCheckBox(
XXO(
"System &Date"),
179 {
wxT(
"/GUI/TrackNames/DateStamp"),
182 S.TieCheckBox(
XXO(
"System T&ime"),
183 {
wxT(
"/GUI/TrackNames/TimeStamp"),
192 #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
193 S.StartStatic(
XO(
"Automated Recording Level Adjustment"));
195 S.TieCheckBox(
XXO(
"Enable Automated Recording Level Adjustment."),
196 {
wxT(
"/AudioIO/AutomatedInputLevelAdjustment"),
199 S.StartMultiColumn(2, wxEXPAND);
204 S.TieSlider(
XXO(
"Target Peak:"),
205 {
wxT(
"/AudioIO/TargetPeak"),
206 AILA_DEF_TARGET_PEAK},
210 S.TieSlider(
XXO(
"Within:"),
211 {
wxT(
"/AudioIO/DeltaPeakVolume"),
212 AILA_DEF_DELTA_PEAK},
218 S.StartThreeColumn();
220 S.TieIntegerTextBox(
XXO(
"Analysis Time:"),
221 {
wxT(
"/AudioIO/AnalysisTime"),
222 AILA_DEF_ANALYSIS_TIME},
224 S.AddUnits(
XO(
"milliseconds (time of one analysis)"));
226 S.TieIntegerTextBox(
XXO(
"Number of consecutive analysis:"),
227 {
wxT(
"/AudioIO/NumberAnalysis"),
228 AILA_DEF_NUMBER_ANALYSIS},
230 S.AddUnits(
XO(
"0 means endless"));
237#ifdef EXPERIMENTAL_PUNCH_AND_ROLL
238 S.StartStatic(
XO(
"Punch and Roll Recording"));
240 S.StartThreeColumn();
243 .NameSuffix(
XO(
"seconds"))
244 .TieNumericTextBox(
XXO(
"Pre-ro&ll:"),
248 S.AddUnits(
XO(
"seconds"));
252 .NameSuffix(
XO(
"milliseconds"))
253 .TieNumericTextBox(
XXO(
"Cross&fade:"),
257 S.AddUnits(
XO(
"milliseconds"));
277 #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
278 double targetpeak, deltapeak;
281 if (targetpeak + deltapeak > 100.0 || targetpeak - deltapeak < 0.0)
283 gPrefs->
Write(
wxT(
"/AudioIO/DeltaPeakVolume"),
min(100.0 - targetpeak, targetpeak));
289 gPrefs->
Write(
wxT(
"/AudioIO/AnalysisTime"), AILA_DEF_ANALYSIS_TIME);
293 gPrefs->
Write(
wxT(
"/AudioIO/NumberAnalysis"), AILA_DEF_NUMBER_ANALYSIS);
BoolSetting SoundActivatedRecord
DoubleSetting AudioIOLatencyDuration
IntSetting DecibelScaleCutoff
Negation of this value is the lowest dB level that should be shown in dB scales.
XXO("&Cut/Copy/Paste Toolbar")
audacity::BasicSettings * gPrefs
wxString WarningDialogKey(const wxString &internalDialogName)
#define AUDIO_PRE_ROLL_KEY
#define DEFAULT_PRE_ROLL_SECONDS
#define DEFAULT_ROLL_CROSSFADE_MS
#define RECORDING_PREFS_PLUGIN_SYMBOL
#define AUDIO_ROLL_CROSSFADE_KEY
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
Base class for a panel in the PrefsDialog. Classes derived from this class include BatchPrefs,...
A PrefsPanel used to select recording options.
ManualPageID HelpPageName() override
If not empty string, the Help button is added below the panel.
TranslatableString GetDescription() const override
wxTextCtrl * mToggleCustomName
void PopulateOrExchange(ShuttleGui &S) override
ComponentInterfaceSymbol GetSymbol() const override
void OnToggleCustomName(wxCommandEvent &)
virtual ~RecordingPrefs()
void Invalidate() override
bool Reset()
Reset to the default value.
bool Read(T *pVar) const
overload of Read returning a boolean that is true if the value was previously defined */
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Holds a msgid for the translation catalog; may also bind format arguments.
virtual bool Write(const wxString &key, bool value)=0
virtual bool Read(const wxString &key, bool *value) const =0
PrefsPanel::Registration sAttachment