Commit 71b7470

Nick committed on
Implement sample songs menu item
commit 71b74707d85bc9e73b113786ccf5717b677dc6fb parent d9fc450
2 changed files +28−8
Modifiedtracker.lfm +1−2
@@ -1959,9 +1959,8 @@ object frmTracker: TfrmTracker
1959 object N3: TMenuItem 1959 object N3: TMenuItem
1960 Caption = '-' 1960 Caption = '-'
1961 end 1961 end
1962 object MenuItem4: TMenuItem 1962 object SampleSongsMenuItem: TMenuItem
1963 Caption = 'Example Songs' 1963 Caption = 'Example Songs'
1964 Enabled = False
1965 end 1964 end
1966 object MenuItem5: TMenuItem 1965 object MenuItem5: TMenuItem
1967 Caption = 'About hUGETracker' 1966 Caption = 'About hUGETracker'
Modifiedtracker.pas +27−6
@@ -5,11 +5,11 @@ interface
5 5
6 uses 6 uses
7 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, 7 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
8 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, SynHighlighterAny, math, 8 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, SynHighlighterAny,
9 Instruments, Waves, Song, EmulationThread, Utils, Constants, sound, vars, 9 FileUtil, math, Instruments, Waves, Song, EmulationThread, Utils, Constants,
10 machine, about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, 10 sound, vars, machine, about_hugetracker, TrackerGrid, lclintf, lmessages,
11 DBCtrls, HugeDatatypes, LCLType, RackCtls, Codegen, SymParser, options, 11 Buttons, Grids, DBCtrls, HugeDatatypes, LCLType, RackCtls, Codegen, SymParser,
12 IniFiles, bgrabitmap, effecteditor, RenderToWave; 12 options, IniFiles, bgrabitmap, effecteditor, RenderToWave;
13 13
14 type 14 type
15 { TfrmTracker } 15 { TfrmTracker }
@@ -186,7 +186,7 @@ type
186 MenuItem1: TMenuItem; 186 MenuItem1: TMenuItem;
187 MenuItem2: TMenuItem; 187 MenuItem2: TMenuItem;
188 MenuItem3: TMenuItem; 188 MenuItem3: TMenuItem;
189 MenuItem4: TMenuItem; 189 SampleSongsMenuItem: TMenuItem;
190 MenuItem5: TMenuItem; 190 MenuItem5: TMenuItem;
191 PageControl1: TPageControl; 191 PageControl1: TPageControl;
192 PaintBox1: TPaintBox; 192 PaintBox1: TPaintBox;
@@ -363,6 +363,7 @@ type
363 procedure OnFD(var Msg: TLMessage); message LM_FD; 363 procedure OnFD(var Msg: TLMessage); message LM_FD;
364 procedure OnUndoOccured(var Msg: TLMessage); message LM_UNDO_OCCURED; 364 procedure OnUndoOccured(var Msg: TLMessage); message LM_UNDO_OCCURED;
365 procedure OnNotePlaced(var Msg: TLMessage); message LM_PREVIEW_NOTE; 365 procedure OnNotePlaced(var Msg: TLMessage); message LM_PREVIEW_NOTE;
366 procedure OnSampleSongMenuItemClicked(Sender: TObject);
366 367
367 procedure RecreateTrackerGrid; 368 procedure RecreateTrackerGrid;
368 procedure UpdateUIAfterLoad; 369 procedure UpdateUIAfterLoad;
@@ -743,6 +744,11 @@ begin
743 PreviewInstrument(NotesToFreqs.KeyData[msg.wParam], msg.lParam); 744 PreviewInstrument(NotesToFreqs.KeyData[msg.wParam], msg.lParam);
744 end; 745 end;
745 746
747 procedure TfrmTracker.OnSampleSongMenuItemClicked(Sender: TObject);
748 begin
749 LoadSong('Sample Songs/'+TMenuItem(Sender).Caption);
750 end;
751
746 procedure TfrmTracker.RecreateTrackerGrid; 752 procedure TfrmTracker.RecreateTrackerGrid;
747 var 753 var
748 Section: TCollectionItem; 754 Section: TCollectionItem;
@@ -956,6 +962,9 @@ end;
956 procedure TfrmTracker.FormCreate(Sender: TObject); 962 procedure TfrmTracker.FormCreate(Sender: TObject);
957 var 963 var
958 PUI: PtrUint; 964 PUI: PtrUint;
965 SampleSongs: TStringList;
966 S: String;
967 MenuItem: TMenuItem;
959 begin 968 begin
960 {if Screen.Fonts.IndexOf('PixeliteTTF') = -1 then 969 {if Screen.Fonts.IndexOf('PixeliteTTF') = -1 then
961 MessageDlg('Warning', 'You don''t have the Pixelite font installed. '+ 970 MessageDlg('Warning', 'You don''t have the Pixelite font installed. '+
@@ -1035,6 +1044,18 @@ begin
1035 DebugPlayNoteButton.Visible := True; 1044 DebugPlayNoteButton.Visible := True;
1036 {$endif} 1045 {$endif}
1037 1046
1047 // Load sample songs list
1048 SampleSongs := FindAllFiles('./Sample Songs/', '*.uge', False);
1049 if SampleSongs.Count > 0 then
1050 for S in SampleSongs do begin
1051 MenuItem := TMenuItem.Create(MainMenu1);
1052 MenuItem.Caption := ExtractFileName(S);
1053 MenuItem.OnClick := @OnSampleSongMenuItemClicked;
1054 SampleSongsMenuItem.Add(MenuItem);
1055 end
1056 else
1057 SampleSongsMenuItem.Enabled := False;
1058
1038 // If a command line param was passed, try to open it 1059 // If a command line param was passed, try to open it
1039 if FileExists(ParamStr(1)) and (ExtractFileExt(ParamStr(1)) = '.uge') then 1060 if FileExists(ParamStr(1)) and (ExtractFileExt(ParamStr(1)) = '.uge') then
1040 LoadSong(ParamStr(1)); 1061 LoadSong(ParamStr(1));