Shorter command names. General tidying.

-More commands now have shorter names for parameters.
-New scripts for generating images.
-Several old-style commands retired.
This commit is contained in:
James Crook 2018-02-24 12:56:58 +00:00 committed by Paul Licameli
parent 62ca1cce26
commit 5d36890cb0
13 changed files with 215 additions and 160 deletions

View File

@ -66,141 +66,163 @@ def quickTest() :
def setup() :
global path
global sample
path = '\"C:/Users/James Crook/\"'
sample ='\"C:\\Users\\Public\\Music\\Sample Music\\Concerto.mp3\"'
do( 'SetProject: X=10 Y=10 Width=850 Height=800' )
def makeWayForTracks( ) :
do( 'SelectTracks: FirstTrack=0 LastTrack=20' )
do( 'Select: First=0 Last=20' )
do( 'RemoveTracks' )
def capture( what ) :
def capture( name, what ) :
global path
do( 'Screenshot: Path='+path+' CaptureWhat=' + what )
do( 'Screenshot: Path='+path+name+' CaptureWhat=' + what )
def makeMonoTracks( num ) :
makeWayForTracks( )
for i in range( 0, num ):
do( 'NewMonoTrack' )
do( 'SetTrack: TrackIndex=0 Name="Foxy Lady"')
do( 'SelectTime: StartTime=0 EndTime=30' )
do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num-1) )
do( 'SetTrack: Track=0 Name="Foxy Lady"')
do( 'Select: Start=0 End=30 First=0 Last=' + str(num-1) )
do( 'Chirp: StartAmp=0.5' )
do( 'Wahwah' )
do( 'FitInWindow' )
do( 'SelectTime: StartTime=11 EndTime=14')
do( 'Select: Start=11 End=14')
def loadStereoTrack():
global sample
makeWayForTracks( )
do( 'Import2: Filename='+sample )
do( 'Select: Start=0 End=150')
do( 'ZoomSel' )
do( 'SetTrack: Track=0 Name="The Poodle Podcast"')
def makeStereoTracks( num ) :
makeWayForTracks( )
if( num == 1 ):
loadStereoTrack()
return
for i in range( 0, num ):
do( 'NewStereoTrack' )
do( 'SetTrack: TrackIndex=0 Name="Voodoo Children IN STEREO"')
do( 'SelectTime: StartTime=0 EndTime=30' )
do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num*2-1) )
do( 'SetTrack: Track=0 Name="Voodoo Children IN STEREO"')
do( 'Select: Start=0 End=30 First=0 Last=' + str(num*2-1) )
do( 'Chirp: StartAmp=0.5' )
do( 'Wahwah' )
do( 'FitInWindow' )
do( 'SelectTime: StartTime=11 EndTime=14')
do( 'Select: Start=55 End=70')
def addLabels():
do( 'SelectTime: StartTime=0 EndTime=1' )
do( 'Select: Start=0 End=1' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'SetLabel: LabelIndex=0 Text="Homweward Bound" Start=1 End=1 ')
do( 'SetLabel: LabelIndex=1 Text="Silver Dagger" Start=7 End=7 ')
do( 'SetLabel: LabelIndex=2 Selected=1 Text="NOISE" Start=9 End=12 ')
do( 'SetLabel: LabelIndex=3 Text="Blood in These Veins" Start=16 End=16 ')
do( 'SelectTime: StartTime=9 EndTime=12' )
do( 'SetLabel: Label=0 Text="Homweward Bound" Start=1 End=1 ')
do( 'SetLabel: Label=1 Text="Silver Dagger" Start=35 End=35 ')
do( 'SetLabel: Label=2 Selected=1 Text="NOISE" Start=45 End=60 ')
do( 'SetLabel: Label=3 Text="Blood in These Veins" Start=80 End=80 ')
do( 'Select: Start=45 End=60' )
def addLabels2():
do( 'SelectTime: StartTime=0 EndTime=1' )
do( 'Select: Start=0 End=1' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'NewLabelTrack' )
#do( 'SelectTracks: FirstTrack=2 LastTrack=2' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'AddLabel' )
do( 'SetLabel: LabelIndex=0 Selected=0 Text="intro" Start=0.1 End=0.1 ')
do( 'SetLabel: LabelIndex=1 Text="thoughtpiece" Start=3 End=3 ')
do( 'SetLabel: LabelIndex=2 Text="discussion" Start=12 End=12 ')
do( 'SetLabel: LabelIndex=3 Text="summary" Start=20 End=20 ')
do( 'SetLabel: LabelIndex=4 Text="credits" Start=25 End=25 ')
do( 'SetLabel: LabelIndex=5 Selected=0 Text="Bach" Start=0.1 End=0.1 ')
do( 'SetLabel: LabelIndex=6 Text="Vivaldi" Start=6 End=6 ')
do( 'SetLabel: LabelIndex=7 Text="Mozart" Start=12 End=12 ')
do( 'SetLabel: LabelIndex=8 Text="Satie" Start=18 End=18 ')
do( 'SetLabel: LabelIndex=9 Text="Chopin" Start=24 End=24 ')
do( 'SelectTracks: FirstTrack=3 LastTrack=3' )
do( 'SetLabel: Label=0 Selected=0 Text="intro" Start=0.5 End=0.5 ')
do( 'SetLabel: Label=1 Text="thought piece" Start=15 End=15 ')
do( 'SetLabel: Label=2 Text="discussion" Start=60 End=60 ')
do( 'SetLabel: Label=3 Text="summary" Start=100 End=100 ')
do( 'SetLabel: Label=4 Text="credits" Start=125 End=125 ')
do( 'SetLabel: Label=5 Selected=0 Text="Bach" Start=0.5 End=0.5 ')
do( 'SetLabel: Label=6 Text="Vivaldi" Start=30 End=30 ')
do( 'SetLabel: Label=7 Text="Mozart" Start=60 End=60 ')
do( 'SetLabel: Label=8 Text="Satie" Start=90 End=90 ')
do( 'SetLabel: Label=9 Text="Chopin" Start=120 End=120 ')
do( 'Select: First=3 Last=3' )
# A stero track with four labels.
def image1() :
makeStereoTracks(1)
addLabels()
capture( 'First_Two_Tracks' )
do( "Select: Start=0 End=0" )
capture( 'AutoLabels001.png', 'First_Two_Tracks' )
# Removing a label with delete (fraud - we used split delete)
def image2() :
makeStereoTracks(1)
addLabels()
do( "SelectTime: StartTime=8.9 EndTime=12.1" )
do( "SelectTracks: FirstTrack=2 LastTrack=2" )
do( "Select: Start=44.5 End=60.5 First=2 Last=2" )
do( "SplitDelete" )
do( "SelectTime: StartTime=0 EndTime=0" )
do( "SelectTracks: FirstTrack=0 LastTrack=2" )
capture( 'First_Two_Tracks' )
do( "Select: Start=0 End=0 First=0 Last=2" )
capture( 'AutoLabels002.png','First_Two_Tracks' )
# Removing a label with split-delete step 1
def image3() :
makeStereoTracks(1)
addLabels()
do( "SelectTime: StartTime=8.9 EndTime=12.1" )
do( "SelectTracks: FirstTrack=2 LastTrack=2" )
capture( 'First_Two_Tracks' )
do( "Select: Start=44.5 End=60.5 First=2 Last=2" )
capture( 'AutoLabels003.png','First_Two_Tracks' )
# Removing a label with split-delete step 1
def image4() :
makeStereoTracks(1)
addLabels()
do( "SelectTime: StartTime=8.9 EndTime=12.1" )
do( "SelectTracks: FirstTrack=2 LastTrack=2" )
do( "Select: Start=44.5 End=60.5 First=2 Last=2" )
do( "SplitDelete" )
capture( 'First_Two_Tracks' )
capture( 'AutoLabels004.png','First_Two_Tracks' )
def image5() :
makeStereoTracks(1)
addLabels2()
do( "SelectTime: StartTime=0 EndTime=0" )
capture( 'First_Three_Tracks' )
do( "Select: Start=0 End=0" )
capture( 'AutoLabels005.png','First_Three_Tracks' )
def image6() :
makeStereoTracks(1)
addLabels2()
do( "SelectTime: StartTime=5.7 EndTime=11.7" )
capture( 'First_Three_Tracks' )
do( "Select: Start=28.5 End=58.5" )
capture( 'AutoLabels006.png','First_Three_Tracks' )
def image7() :
makeStereoTracks(1)
addLabels2()
do( "SelectTime: StartTime=5.7 EndTime=11.7" )
do( "Select: Start=28.5 End=58.5" )
do( "Delete" )
do( "SelectTime: StartTime=0 EndTime=0" )
capture( 'First_Three_Tracks' )
do( "Select: Start=0 End=0" )
capture( 'AutoLabels007.png','First_Three_Tracks' )
def image8to10() :
makeStereoTracks(1)
addLabels2()
do( "Select: First=2 Last=2 Start=100 End=125" )
do( "AddLabel" )
do( 'SetLabel: Label=9 Text="Clap" selected=0 Start=110 End=118 ')
do( 'Select: First=0 Last=3 Start=0 End=0')
capture( 'AutoLabels008.png','First_Three_Tracks' )
do( 'SetLabel: Label=9 Text="Clap" selected=1 Start=110 End=118 ')
do( 'Select: First=0 Last=3 Start=110 End=118')
capture( 'AutoLabels009.png','First_Three_Tracks' )
do( 'Delete' )
capture( 'AutoLabels010.png','First_Three_Tracks' )
#quickTest()
setup()
image1()
image2()
image3()
image4()
image5()
image6()
image7()
#image1()
#image2()
#image3()
#image4()
#image5()
#image6()
#image7()
image8to10()

View File

@ -66,119 +66,130 @@ def quickTest() :
def setup() :
global path
path = '\"C:/Users/James Crook/\"'
global sample
path = 'C:\\Users\\James Crook\\'
sample ='C:\\Users\\James Crook\\Music\\The Poodle Podcast.wav'
do( 'SetProject: X=10 Y=10 Width=850 Height=800' )
def makeWayForTracks( ) :
do( 'SelectTracks: FirstTrack=0 LastTrack=20' )
do( 'SelectTracks: First=0 Last=20' )
do( 'RemoveTracks' )
def capture( name, what ) :
global path
do( 'Screenshot: Path="'+path+name+'" CaptureWhat=' + what )
def loadMonoTrack():
global sample
makeWayForTracks( )
do( 'Import2: Filename="'+sample+'"' )
do( 'Select: First=0 Last=0 Start=0 End=150')
do( 'Trim')
do( 'ZoomSel' )
def loadMonoTracks( num ) :
makeWayForTracks( )
loadMonoTrack()
do( 'SetTrack: Track=0 Name="Foxy Lady"')
for i in range( 0, num-1 ):
do( 'Duplicate' )
do( 'FitInWindow' )
do( 'Select: Start=55 End=70')
def makeMonoTracks( num ) :
makeWayForTracks( )
for i in range( 0, num ):
do( 'NewMonoTrack' )
do( 'SetTrack: TrackIndex=0 Name="Foxy Lady"')
do( 'SelectTime: StartTime=0 EndTime=30' )
do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num-1) )
do( 'SetTrack: Track=0 Name="Foxy Lady"')
do( 'Select: Start=0 End=150 First=0 Last=' + str(num-1) )
do( 'Chirp: StartAmp=0.5' )
do( 'Wahwah' )
do( 'FitInWindow' )
do( 'SelectTime: StartTime=11 EndTime=14')
do( 'Select: Start=55 End=70')
def makeStereoTracks( num ) :
makeWayForTracks( )
for i in range( 0, num ):
do( 'NewStereoTrack' )
do( 'SetTrack: TrackIndex=0 Name="Voodoo Children IN STEREO"')
do( 'SelectTime: StartTime=0 EndTime=30' )
do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num*2-1) )
do( 'SetTrack: Track=0 Name="Voodoo Children IN STEREO"')
do( 'Select: Start=0 End=150 First=0 Last=' + str(num*2-1) )
do( 'Chirp: StartAmp=0.5' )
do( 'Wahwah' )
do( 'FitInWindow' )
do( 'SelectTime: StartTime=11 EndTime=14')
do( 'Select: Start=55 End=70')
# A mono track complete with ruler
def image1() :
global path
makeMonoTracks(1)
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track_Plus' )
loadMonoTracks(1)
capture( 'AutoTracks001.png', 'First_Track_Plus' )
# A stereo track, with its name on the track
def image2() :
global path
makeStereoTracks(1)
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
capture( 'AutoTracks002.png', 'First_Track' )
# Four colours of track
def image3() :
global path
makeMonoTracks( 4 )
do( 'SetTrack: TrackIndex=0 Name="Instrument 1" Height=122 Color=Color0')
do( 'SetTrack: TrackIndex=1 Name="Instrument 2" Height=122 Color=Color1')
do( 'SetTrack: TrackIndex=2 Name="Instrument 3" Height=122 Color=Color2')
do( 'SetTrack: TrackIndex=3 Name="Instrument 4" Height=122 Color=Color3')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Four_Tracks' )
loadMonoTracks( 4 )
do( 'SetTrack: Track=0 Name="Instrument 1" Height=122 Color=Color0')
do( 'SetTrack: Track=1 Name="Instrument 2" Height=122 Color=Color1')
do( 'SetTrack: Track=2 Name="Instrument 3" Height=122 Color=Color2')
do( 'SetTrack: Track=3 Name="Instrument 4" Height=122 Color=Color3')
capture( 'AutoTracks003.png', 'First_Four_Tracks' )
# Two Tracks, ready to make stereo
def image4():
global path
makeMonoTracks(2)
do( 'SetTrack: TrackIndex=0 Name="Left Track" Height=80')
do( 'SetTrack: TrackIndex=1 Name="Right Track" Height=80')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Two_Tracks' )
loadMonoTracks(2)
do( 'SetTrack: Track=0 Name="Left Track" Height=80')
do( 'SetTrack: Track=1 Name="Right Track" Height=80')
capture( 'AutoTracks004.png', 'First_Two_Tracks' )
# Mono tracks made stereo
def image5():
global path
makeMonoTracks(2)
do( 'SetTrack: TrackIndex=0 Pan=-1 Height=80')
do( 'SetTrack: TrackIndex=1 Pan=1 Height=80')
loadMonoTracks(2)
do( 'SetTrack: Track=0 Pan=-1 Height=80')
do( 'SetTrack: Track=1 Pan=1 Height=80')
do( 'MixAndRender' )
do( 'SetTrack: TrackIndex=0 Name="Combined" Height=80')
do( 'SetTrack: TrackIndex=1 Height=80')
do( 'SelectTracks: FirstTrack=0 LastTrack=1' )
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
do( 'SetTrack: Track=0 Name="Combined" Height=80')
do( 'SetTrack: Track=1 Height=80')
do( 'Select: First=0 Last=1' )
capture( 'AutoTracks005.png', 'First_Track' )
# A stereo track, with different sized channels
def image6() :
global path
makeStereoTracks(1)
do( 'SetTrack: TrackIndex=0 Height=80')
do( 'SetTrack: TrackIndex=1 Height=180')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
do( 'SetTrack: Track=0 Height=80')
do( 'SetTrack: Track=1 Height=180')
capture( 'AutoTracks006.png', 'First_Track' )
# Two mono tracks of different sizes
def image7() :
global path
makeMonoTracks(2)
do( 'SetTrack: TrackIndex=0 Height=80')
do( 'SetTrack: TrackIndex=1 Height=180')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Two_Tracks' )
loadMonoTracks(2)
do( 'SetTrack: Track=0 Height=180')
do( 'SetTrack: Track=1 Height=80')
capture( 'AutoTracks007.png', 'First_Two_Tracks' )
# Mono with arrow at start.
def image8() :
global path
makeMonoTracks(1)
do( 'SetClip: ClipIndex=0 Start=-4.0')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
loadMonoTracks(1)
do( 'SetClip: Clip=0 Start=-4.0')
capture( 'AutoTracks008.png', 'First_Track' )
# Zoomed in to show points stem-plot
def image9() :
global path
#make rather than load. We want an artificial track.
makeMonoTracks(1)
do( 'SelectTime: StartTime=0 EndTime=0.003' )
do( 'Select: Start=0 End=0.003' )
do( 'ZoomSel' );
do( 'Amplify: Ratio=3.0' )
do( 'SetPreference: Name=/GUI/SampleView Value=1 Reload=1')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
capture( 'AutoTracks009.png', 'First_Track' )
# Zoomed in to show points stem-plot and then no stem plot
def image9and10() :
global path
image9()
do( 'SetPreference: Name=/GUI/SampleView Value=0 Reload=1')
do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' )
capture( 'AutoTracks010.png', 'First_Track' )
#quickTest()
setup()

View File

@ -1594,22 +1594,27 @@ void AudacityProject::CreateMenusAndCommands()
// whereas the short-form used here must not.
// (If you did write "CompareAudio" for the PLUGIN_SYMBOL name, then
// you would have to use "Compareaudio" here.)
c->AddItem(wxT("Demo"), _("Just a Demo..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
// c->AddItem(wxT("Demo"), _("Just a Demo..."), FN(OnAudacityCommand),
// AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("Screenshot"), _("Screenshot (Vanilla)..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("Select"), _("Select..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
// Menu items not needed, since they are part of Select,
// c->AddItem(wxT("SelectTime"), _("Select Time..."), FN(OnAudacityCommand),
// AudioIONotBusyFlag, AudioIONotBusyFlag);
// c->AddItem(wxT("SelectTracks"), _("Select Tracks..."), FN(OnAudacityCommand),
// AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("Import2"), _("Import..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("Export2"), _("Export..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("CompareAudio"), _("Compare Audio..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("GetPreference"), _("Get Preference..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("GetInfo"), _("Get Info..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SelectTime"), _("Select Time..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SelectTracks"), _("Select Tracks..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("Select"), _("Select..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SetPreference"), _("Set Preference..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SetClip"), _("Set Clip..."), FN(OnAudacityCommand),
@ -1620,8 +1625,9 @@ void AudacityProject::CreateMenusAndCommands()
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SetTrack"), _("Set Track..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("ReloadPreferences"), _("&Reload Preferences..."), FN(OnReloadPreferences),
AudioIONotBusyFlag, AudioIONotBusyFlag);
// Menu item not needed, since it is part of SetPreference,
// c->AddItem(wxT("ReloadPreferences"), _("&Reload Preferences..."), FN(OnReloadPreferences),
// AudioIONotBusyFlag, AudioIONotBusyFlag);
c->EndSubMenu();

View File

@ -94,7 +94,7 @@ void LispyCommandMessageTarget::StartArray()
{
wxString Padding;
Padding.Pad( mCounts.GetCount() *2 -2);
Update( wxString::Format( "%s%s( ", ( mCounts.Last() > 0 ) ? ",\n" : "\n", Padding ));
Update( wxString::Format( "\n%s(", Padding ));
mCounts.Last() += 1;
mCounts.push_back( 0 );
}
@ -103,12 +103,12 @@ void LispyCommandMessageTarget::EndArray(){
if( mCounts.GetCount() > 1 ){
mCounts.pop_back();
}
Update( " )" );
Update( ")" );
}
void LispyCommandMessageTarget::StartStruct(){
wxString Padding;
Padding.Pad( mCounts.GetCount() *2 -2);
Update( wxString::Format( "%s%s( ", ( mCounts.Last() > 0 ) ? ",\n" : "\n", Padding ));
Update( wxString::Format( "\n%s(", Padding ));
mCounts.Last() += 1;
mCounts.push_back( 0 );
}
@ -116,36 +116,33 @@ void LispyCommandMessageTarget::EndStruct(){
if( mCounts.GetCount() > 1 ){
mCounts.pop_back();
}
Update( " )" );
Update( ")" );
}
void LispyCommandMessageTarget::AddItem(const wxString &value, const wxString &name){
wxString Padding;
Padding.Pad( mCounts.GetCount() *2 -2);
Padding = (( value.length() < 15 ) || (mCounts.Last()<=0)) ? "" : wxString("\n") + Padding;
wxString Padding = "";
if( name.IsEmpty() )
Update( wxString::Format( "%s%s\"%s\"", (mCounts.Last()>0)?", ":"", Padding, value));
Update( wxString::Format( "%s%s\"%s\"", (mCounts.Last()>0)?" ":"", Padding, value));
else
Update( wxString::Format( "%s%s( %s, \"%s\" )", (mCounts.Last()>0)?", ":"", Padding, name, value));
Update( wxString::Format( "%s%s(%s \"%s\")", (mCounts.Last()>0)?" ":"", Padding, name, value));
mCounts.Last() += 1;
}
void LispyCommandMessageTarget::AddBool(const bool value, const wxString &name){
if( name.IsEmpty() )
Update( wxString::Format( "%s%s", (mCounts.Last()>0)?", ":"",value?"True":"False"));
Update( wxString::Format( "%s%s", (mCounts.Last()>0)?" ":"",value?"True":"False"));
else
Update( wxString::Format( "%s( %s, %s )", (mCounts.Last()>0)?", ":"", name,value?"True":"False"));
Update( wxString::Format( "%s(%s %s)", (mCounts.Last()>0)?" ":"", name,value?"True":"False"));
mCounts.Last() += 1;
}
void LispyCommandMessageTarget::AddItem(const double value, const wxString &name){
if( name.IsEmpty() )
Update( wxString::Format( "%s%g", (mCounts.Last()>0)?", ":"", value));
Update( wxString::Format( "%s%g", (mCounts.Last()>0)?" ":"", value));
else
Update( wxString::Format( "%s( %s, %g )", (mCounts.Last()>0)?", ":"", name,value));
Update( wxString::Format( "%s(%s %g)", (mCounts.Last()>0)?" ":"", name,value));
mCounts.Last() += 1;
}
void LispyCommandMessageTarget::StartField(const wxString &name){
Update( wxString::Format( "%s( %s, ", (mCounts.Last()>0)?", ":"", name ));
Update( wxString::Format( "%s(%s", (mCounts.Last()>0)?" ":"", name ));
mCounts.Last() += 1;
mCounts.push_back( 0 );
}
@ -154,7 +151,7 @@ void LispyCommandMessageTarget::EndField(){
if( mCounts.GetCount() > 1 ){
mCounts.pop_back();
}
Update( " )" );
Update( ")" );
}

View File

@ -22,7 +22,7 @@
// Import
#define IMPORT_PLUGIN_SYMBOL XO("Import")
#define IMPORT_PLUGIN_SYMBOL XO("Import2")
class ImportCommand : public AudacityCommand
{
@ -40,7 +40,7 @@ public:
wxString mFileName;
};
#define EXPORT_PLUGIN_SYMBOL XO("Export")
#define EXPORT_PLUGIN_SYMBOL XO("Export2")
class ExportCommand : public AudacityCommand
{

View File

@ -49,8 +49,6 @@ modelled on BuiltinEffectsModule
COMMAND( SET_LABEL, SetLabelCommand, () ) \
COMMAND( SET_PROJECT, SetProjectCommand, () ) \
COMMAND( SELECT, SelectCommand, () ) \
COMMAND( SELECT_TIME, SelectTimeCommand, () ) \
COMMAND( SELECT_TRACKS, SelectTracksCommand, () ) \
COMMAND( GET_PREFERENCE, GetPreferenceCommand, () ) \
COMMAND( SET_PREFERENCE, SetPreferenceCommand, () ) \
COMMAND( GET_INFO, GetInfoCommand, () ) \
@ -62,6 +60,9 @@ modelled on BuiltinEffectsModule
// GET_TRACK_INFO subsumed by GET_INFO
//COMMAND( GET_TRACK_INFO, GetTrackInfoCommand, () )
// SELECT_TIME and SELECT_TRACKS subsumed by SELECT
//COMMAND( SELECT_TIME, SelectTimeCommand, () )
//COMMAND( SELECT_TRACKS, SelectTracksCommand, () )
//

View File

@ -617,6 +617,11 @@ void ScreenshotCommand::CaptureEffects(
wxString ScreenshotCommand::MakeFileName(const wxString &path, const wxString &basename)
{
// If the path is a full file name, then use it.
if( path.EndsWith( ".png" ) )
return path;
// Otherwise make up a file name that has not been used already.
wxFileName prefixPath;
prefixPath.AssignDir(path);
wxString prefix = prefixPath.GetPath

View File

@ -25,6 +25,7 @@ code out of ModuleManager.
#include "AppCommandEvent.h"
#include "ResponseQueue.h"
#include "../Project.h"
#include "../AudacityApp.h"
#include <wx/string.h>
// Declare static class members

View File

@ -34,8 +34,8 @@
#include "CommandContext.h"
bool SelectTimeCommand::DefineParams( ShuttleParams & S ){
S.Define( mT0, wxT("StartTime"), 0.0, 0.0, (double)FLT_MAX);
S.Define( mT1, wxT("EndTime"), 0.0, 0.0, (double)FLT_MAX);
S.Optional( bHasT0 ).Define( mT0, wxT("Start"), 0.0, 0.0, (double)FLT_MAX);
S.Optional( bHasT1 ).Define( mT1, wxT("End"), 0.0, 0.0, (double)FLT_MAX);
S.Define( mFromEnd, wxT("FromEnd"), false );
return true;
}
@ -44,16 +44,23 @@ void SelectTimeCommand::PopulateOrExchange(ShuttleGui & S)
{
S.AddSpace(0, 5);
S.StartMultiColumn(3, wxALIGN_CENTER);
{
S.Optional( bHasT0 ).TieTextBox(_("Start Time:"), mT0);
S.Optional( bHasT1 ).TieTextBox(_("End Time:"), mT1);
}
S.EndMultiColumn();
S.StartMultiColumn(2, wxALIGN_CENTER);
{
S.TieTextBox(_("Start Time:"),mT0);
S.TieTextBox(_("End Time:"),mT1);
S.TieCheckBox(_("From End:"), mFromEnd );
}
S.EndMultiColumn();
}
bool SelectTimeCommand::Apply(const CommandContext & context){
if( !bHasT0 && !bHasT1 )
return true;
if( mFromEnd ){
double TEnd = context.GetProject()->GetTracks()->GetEndTime();
context.GetProject()->mViewInfo.selectedRegion.setTimes(TEnd - mT0, TEnd - mT1);
@ -74,8 +81,8 @@ static const wxString kModes[nModes] =
bool SelectTracksCommand::DefineParams( ShuttleParams & S ){
wxArrayString modes( nModes, kModes );
S.Define( mFirstTrack, wxT("FirstTrack"), 0, 0, 100);
S.Define( mLastTrack, wxT("LastTrack"), 0, 0, 100);
S.Optional( bHasFirstTrack).Define( mFirstTrack, wxT("First"), 0, 0, 100);
S.Optional( bHasLastTrack ).Define( mLastTrack, wxT("Last"), 0, 0, 100);
S.DefineEnum( mMode, wxT("Mode"), 0, modes );
return true;
@ -86,10 +93,14 @@ void SelectTracksCommand::PopulateOrExchange(ShuttleGui & S)
wxArrayString modes( nModes, kModes );
S.AddSpace(0, 5);
S.StartMultiColumn(3, wxALIGN_CENTER);
{
S.Optional( bHasFirstTrack).TieTextBox(_("First Track:"),mFirstTrack);
S.Optional( bHasLastTrack).TieTextBox(_("Last Track:"),mLastTrack);
}
S.EndMultiColumn();
S.StartMultiColumn(2, wxALIGN_CENTER);
{
S.TieTextBox(_("First Track:"),mFirstTrack);
S.TieTextBox(_("Last Track:"),mLastTrack);
S.TieChoice( _("Mode:"), mMode, &modes);
}
S.EndMultiColumn();
@ -97,6 +108,9 @@ void SelectTracksCommand::PopulateOrExchange(ShuttleGui & S)
bool SelectTracksCommand::Apply(const CommandContext &context)
{
if( !bHasFirstTrack && !bHasLastTrack )
return true;
int index = 0;
TrackList *tracks = context.GetProject()->GetTracks();
int last = wxMax( mFirstTrack, mLastTrack );

View File

@ -41,6 +41,10 @@ public:
// AudacityCommand overrides
wxString ManualPage() override {return wxT("Audio_Selection");};
bool bHasT0;
bool bHasT1;
double mT0;
double mT1;
bool mFromEnd;
@ -58,6 +62,9 @@ public:
// AudacityCommand overrides
wxString ManualPage() override {return wxT("Audio_Selection");};
bool bHasFirstTrack;
bool bHasLastTrack;
int mFirstTrack;
int mLastTrack;
int mMode;

View File

@ -27,16 +27,7 @@
#include "CommandContext.h"
SetClipCommand::SetClipCommand()
{/*
mTrackIndex = 0;
mTrackName = "unnamed";
mPan = 0.0f;
mGain = 1.0f;
bSelected = false;
bFocused = false;
bSolo = false;
bMute = false;
*/
{
}
enum kColours
@ -59,7 +50,7 @@ static const wxString kColourStrings[nColours] =
bool SetClipCommand::DefineParams( ShuttleParams & S ){
wxArrayString colours( nColours, kColourStrings );
S.Define( mClipIndex, wxT("ClipIndex"), 0, 0, 100 );
S.Define( mClipIndex, wxT("Clip"), 0, 0, 100 );
S.Optional( bHasColour ).DefineEnum( mColour, wxT("Color"), kColour0, colours );
// Allowing a negative start time is not a mistake.
// It will be used in demonstrating time before zero.

View File

@ -33,7 +33,7 @@ SetLabelCommand::SetLabelCommand()
bool SetLabelCommand::DefineParams( ShuttleParams & S ){
S.Define( mLabelIndex, wxT("LabelIndex"), 0, 0, 100 );
S.Define( mLabelIndex, wxT("Label"), 0, 0, 100 );
S.Optional( bHasText ).Define( mText, wxT("Text"), wxT("empty") );
S.Optional( bHasT0 ).Define( mT0, wxT("Start"), 0.0, 0.0, 100000.0);
S.Optional( bHasT1 ).Define( mT1, wxT("End"), 0.0, 0.0, 100000.0);

View File

@ -49,7 +49,7 @@ static const wxString kColourStrings[nColours] =
bool SetTrackCommand::DefineParams( ShuttleParams & S ){
wxArrayString colours( nColours, kColourStrings );
S.Define( mTrackIndex, wxT("TrackIndex"), 0, 0, 100 );
S.Define( mTrackIndex, wxT("Track"), 0, 0, 100 );
S.Optional( bHasTrackName ).Define( mTrackName, wxT("Name"), wxT("Unnamed") );
S.Optional( bHasPan ).Define( mPan, wxT("Pan"), 0.0, -1.0, 1.0);
S.Optional( bHasGain ).Define( mGain, wxT("Gain"), 1.0, 0.0, 10.0);