mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-25 08:38:39 +02:00
Add custom track name defaults to preferences
This commit is contained in:
parent
1d6d08c47d
commit
8a6edf3623
@ -103,7 +103,7 @@ WaveTrack::WaveTrack(DirManager *projDirManager, sampleFormat format, double rat
|
|||||||
mRate = (int) rate;
|
mRate = (int) rate;
|
||||||
mGain = 1.0;
|
mGain = 1.0;
|
||||||
mPan = 0.0;
|
mPan = 0.0;
|
||||||
SetDefaultName(_("Audio Track"));
|
SetDefaultName(gPrefs->Read(wxT("/GUI/TrackNames/DefaultTrackName"), _("Audio Track")));
|
||||||
SetName(GetDefaultName());
|
SetName(GetDefaultName());
|
||||||
mDisplayMin = -1.0;
|
mDisplayMin = -1.0;
|
||||||
mDisplayMax = 1.0;
|
mDisplayMax = 1.0;
|
||||||
|
@ -146,9 +146,6 @@ void GUIPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||||||
S.TieCheckBox(_("&Beep on completion of longer activities"),
|
S.TieCheckBox(_("&Beep on completion of longer activities"),
|
||||||
wxT("/GUI/BeepOnCompletion"),
|
wxT("/GUI/BeepOnCompletion"),
|
||||||
false);
|
false);
|
||||||
S.TieCheckBox(_("&Show track name in waveform display"),
|
|
||||||
wxT("/GUI/ShowTrackNameInWaveform"),
|
|
||||||
false);
|
|
||||||
S.TieCheckBox(_("Re&tain labels if selection snaps to a label edge"),
|
S.TieCheckBox(_("Re&tain labels if selection snaps to a label edge"),
|
||||||
wxT("/GUI/RetainLabels"),
|
wxT("/GUI/RetainLabels"),
|
||||||
false);
|
false);
|
||||||
|
@ -34,9 +34,19 @@
|
|||||||
|
|
||||||
using std::min;
|
using std::min;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
UseCustomTrackNameID = 1000,
|
||||||
|
};
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(RecordingPrefs, PrefsPanel)
|
||||||
|
EVT_CHECKBOX(UseCustomTrackNameID, RecordingPrefs::OnToggleCustomName)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
RecordingPrefs::RecordingPrefs(wxWindow * parent)
|
RecordingPrefs::RecordingPrefs(wxWindow * parent)
|
||||||
: PrefsPanel(parent, _("Recording"))
|
: PrefsPanel(parent, _("Recording"))
|
||||||
{
|
{
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/RecordingNameCustom"), &mUseCustomTrackName, false);
|
||||||
|
mOldNameChoice = mUseCustomTrackName;
|
||||||
Populate();
|
Populate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,6 +135,37 @@ void RecordingPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||||||
}
|
}
|
||||||
S.EndStatic();
|
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
|
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
|
||||||
S.StartStatic(_("Automated Recording Level Adjustment"));
|
S.StartStatic(_("Automated Recording Level Adjustment"));
|
||||||
{
|
{
|
||||||
@ -203,6 +244,12 @@ bool RecordingPrefs::Apply()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RecordingPrefs::OnToggleCustomName(wxCommandEvent & Evt)
|
||||||
|
{
|
||||||
|
mUseCustomTrackName = !mUseCustomTrackName;
|
||||||
|
mToggleCustomName->Enable(mUseCustomTrackName);
|
||||||
|
}
|
||||||
|
|
||||||
PrefsPanel *RecordingPrefsFactory::Create(wxWindow *parent)
|
PrefsPanel *RecordingPrefsFactory::Create(wxWindow *parent)
|
||||||
{
|
{
|
||||||
return new RecordingPrefs(parent);
|
return new RecordingPrefs(parent);
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#define __AUDACITY_RECORDING_PREFS__
|
#define __AUDACITY_RECORDING_PREFS__
|
||||||
|
|
||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
|
|
||||||
#include <wx/window.h>
|
#include <wx/window.h>
|
||||||
|
|
||||||
@ -30,6 +31,13 @@ class RecordingPrefs :public PrefsPanel
|
|||||||
private:
|
private:
|
||||||
void Populate();
|
void Populate();
|
||||||
void PopulateOrExchange(ShuttleGui & S);
|
void PopulateOrExchange(ShuttleGui & S);
|
||||||
|
void OnToggleCustomName(wxCommandEvent & Evt);
|
||||||
|
|
||||||
|
wxTextCtrl *mToggleCustomName;
|
||||||
|
bool mUseCustomTrackName;
|
||||||
|
bool mOldNameChoice;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE();
|
||||||
};
|
};
|
||||||
|
|
||||||
class RecordingPrefsFactory : public PrefsPanelFactory
|
class RecordingPrefsFactory : public PrefsPanelFactory
|
||||||
|
@ -30,8 +30,6 @@
|
|||||||
|
|
||||||
#include "../Experimental.h"
|
#include "../Experimental.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
TracksPrefs::TracksPrefs(wxWindow * parent)
|
TracksPrefs::TracksPrefs(wxWindow * parent)
|
||||||
: PrefsPanel(parent, _("Tracks"))
|
: PrefsPanel(parent, _("Tracks"))
|
||||||
{
|
{
|
||||||
@ -96,15 +94,23 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S)
|
|||||||
|
|
||||||
S.StartMultiColumn(2);
|
S.StartMultiColumn(2);
|
||||||
{
|
{
|
||||||
|
S.TieChoice(_("Default &view mode:"),
|
||||||
S.TieChoice(_("Default &View Mode:"),
|
|
||||||
wxT("/GUI/DefaultViewModeNew"),
|
wxT("/GUI/DefaultViewModeNew"),
|
||||||
0,
|
0,
|
||||||
mViewChoices,
|
mViewChoices,
|
||||||
mViewCodes);
|
mViewCodes);
|
||||||
S.SetSizeHints(mViewChoices);
|
S.SetSizeHints(mViewChoices);
|
||||||
|
|
||||||
|
S.TieTextBox(_("Default audio track &name:"),
|
||||||
|
wxT("/GUI/TrackNames/DefaultTrackName"),
|
||||||
|
_("Audio Track"),
|
||||||
|
30);
|
||||||
}
|
}
|
||||||
S.EndMultiColumn();
|
S.EndMultiColumn();
|
||||||
|
|
||||||
|
S.TieCheckBox(_("Sho&w track name in waveform display"),
|
||||||
|
wxT("/GUI/ShowTrackNameInWaveform"),
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
S.EndStatic();
|
S.EndStatic();
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#include <wx/timer.h>
|
#include <wx/timer.h>
|
||||||
#endif
|
#endif
|
||||||
#include <wx/tooltip.h>
|
#include <wx/tooltip.h>
|
||||||
|
#include <wx/datetime.h>
|
||||||
|
|
||||||
#include "TranscriptionToolBar.h"
|
#include "TranscriptionToolBar.h"
|
||||||
#include "MeterToolBar.h"
|
#include "MeterToolBar.h"
|
||||||
@ -896,11 +897,64 @@ void ControlToolBar::OnRecord(wxCommandEvent &evt)
|
|||||||
t1 = 1000000000.0; // record for a long, long time (tens of years)
|
t1 = 1000000000.0; // record for a long, long time (tens of years)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
bool recordingNameCustom, useTrackNumber, useDateStamp, useTimeStamp;
|
||||||
|
wxString defaultTrackName, defaultRecordingTrackName;
|
||||||
|
int numTracks = 0;
|
||||||
|
|
||||||
|
for (Track *tt = it.First(); tt; tt = it.Next()) {
|
||||||
|
if (tt->GetKind() == Track::Wave && !tt->GetLinked())
|
||||||
|
numTracks++;
|
||||||
|
}
|
||||||
|
numTracks++;
|
||||||
|
|
||||||
recordingChannels = gPrefs->Read(wxT("/AudioIO/RecordChannels"), 2);
|
recordingChannels = gPrefs->Read(wxT("/AudioIO/RecordChannels"), 2);
|
||||||
|
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/RecordingNameCustom"), &recordingNameCustom, false);
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/TrackNumber"), &useTrackNumber, false);
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/DateStamp"), &useDateStamp, false);
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/TimeStamp"), &useTimeStamp, false);
|
||||||
|
/* i18n-hint: The default name for an audio track. */
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/DefaultTrackName"),&defaultTrackName, _("Audio Track"));
|
||||||
|
gPrefs->Read(wxT("/GUI/TrackNames/RecodingTrackName"), &defaultRecordingTrackName, defaultTrackName);
|
||||||
|
|
||||||
|
wxString baseTrackName = recordingNameCustom? defaultRecordingTrackName : defaultTrackName;
|
||||||
|
|
||||||
for (int c = 0; c < recordingChannels; c++) {
|
for (int c = 0; c < recordingChannels; c++) {
|
||||||
WaveTrack *newTrack = p->GetTrackFactory()->NewWaveTrack();
|
WaveTrack *newTrack = p->GetTrackFactory()->NewWaveTrack();
|
||||||
|
|
||||||
newTrack->SetOffset(t0);
|
newTrack->SetOffset(t0);
|
||||||
|
wxString nameSuffix = wxString(wxT(""));
|
||||||
|
|
||||||
|
if (useTrackNumber) {
|
||||||
|
nameSuffix += wxString::Format(wxT("%d"), numTracks + c);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useDateStamp) {
|
||||||
|
if (!nameSuffix.IsEmpty()) {
|
||||||
|
nameSuffix += wxT("_");
|
||||||
|
}
|
||||||
|
nameSuffix += wxDateTime::Now().FormatISODate();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useTimeStamp) {
|
||||||
|
if (!nameSuffix.IsEmpty()) {
|
||||||
|
nameSuffix += wxT("_");
|
||||||
|
}
|
||||||
|
nameSuffix += wxDateTime::Now().FormatISOTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ISO standard would be nice, but ":" is unsafe for file name.
|
||||||
|
nameSuffix.Replace(wxT(":"), wxT("-"));
|
||||||
|
|
||||||
|
if (baseTrackName.IsEmpty()) {
|
||||||
|
newTrack->SetName(nameSuffix);
|
||||||
|
}
|
||||||
|
else if (nameSuffix.IsEmpty()) {
|
||||||
|
newTrack->SetName(baseTrackName);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
newTrack->SetName(baseTrackName + wxT("_") + nameSuffix);
|
||||||
|
}
|
||||||
|
|
||||||
if (recordingChannels > 2)
|
if (recordingChannels > 2)
|
||||||
newTrack->SetMinimized(true);
|
newTrack->SetMinimized(true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user