@@ -16,6 +16,7 @@ type |
| 16 |
{ TfrmRenderToWave } |
16 |
{ TfrmRenderToWave } |
| 17 |
|
17 |
|
| 18 |
TfrmRenderToWave = class(TForm) |
18 |
TfrmRenderToWave = class(TForm) |
|
|
19 |
ComboBox1: TComboBox; |
| 19 |
Label2: TLabel; |
20 |
Label2: TLabel; |
| 20 |
Label3: TLabel; |
21 |
Label3: TLabel; |
| 21 |
PlayEntireSongRadioButton: TRadioButton; |
22 |
PlayEntireSongRadioButton: TRadioButton; |
@@ -30,7 +31,6 @@ type |
| 30 |
FromPositionUpperSpinEdit: TSpinEdit; |
31 |
FromPositionUpperSpinEdit: TSpinEdit; |
| 31 |
procedure CancelButtonClick(Sender: TObject); |
32 |
procedure CancelButtonClick(Sender: TObject); |
| 32 |
procedure RenderButtonClick(Sender: TObject); |
33 |
procedure RenderButtonClick(Sender: TObject); |
| 33 |
procedure FileNameEdit1AcceptFileName(Sender: TObject; var Value: String); |
|
|
| 34 |
procedure FileNameEdit1Change(Sender: TObject); |
34 |
procedure FileNameEdit1Change(Sender: TObject); |
| 35 |
procedure FormShow(Sender: TObject); |
35 |
procedure FormShow(Sender: TObject); |
| 36 |
private |
36 |
private |
@@ -40,12 +40,12 @@ type |
| 40 |
Rendering: Boolean; |
40 |
Rendering: Boolean; |
| 41 |
CancelRequested: Boolean; |
41 |
CancelRequested: Boolean; |
| 42 |
|
42 |
|
|
|
43 |
function FilenameToFormatIndex: Integer; |
|
|
44 |
function GetFFMPEGFormat: String; |
| 43 |
procedure UpdateButtonEnabledStates; |
45 |
procedure UpdateButtonEnabledStates; |
| 44 |
|
46 |
|
| 45 |
procedure ExportWaveToFile(Filename: String); |
47 |
procedure ExportWaveToFile(Filename: String); |
| 46 |
|
48 |
|
| 47 |
{procedure RenderSeconds(Seconds: Integer); |
|
|
| 48 |
procedure RenderLoops(TargetOrder: Integer; Loops: Integer);} |
|
|
| 49 |
procedure RenderEntireSong(Times: Integer); |
49 |
procedure RenderEntireSong(Times: Integer); |
| 50 |
procedure RenderFromPosition(FromPos, ToPos: Integer); |
50 |
procedure RenderFromPosition(FromPos, ToPos: Integer); |
| 51 |
|
51 |
|
@@ -63,12 +63,6 @@ uses sound, machine, mainloop, vars, symparser; |
| 63 |
|
63 |
|
| 64 |
{$R *.lfm} |
64 |
{$R *.lfm} |
| 65 |
|
65 |
|
| 66 |
procedure TfrmRenderToWave.FileNameEdit1AcceptFileName(Sender: TObject; |
|
|
| 67 |
var Value: String); |
|
|
| 68 |
begin |
|
|
| 69 |
UpdateButtonEnabledStates; |
|
|
| 70 |
end; |
|
|
| 71 |
|
|
|
| 72 |
procedure TfrmRenderToWave.RenderButtonClick(Sender: TObject); |
66 |
procedure TfrmRenderToWave.RenderButtonClick(Sender: TObject); |
| 73 |
begin |
67 |
begin |
| 74 |
ProgressBar1.Position := 0; |
68 |
ProgressBar1.Position := 0; |
@@ -99,6 +93,7 @@ end; |
| 99 |
|
93 |
|
| 100 |
procedure TfrmRenderToWave.FileNameEdit1Change(Sender: TObject); |
94 |
procedure TfrmRenderToWave.FileNameEdit1Change(Sender: TObject); |
| 101 |
begin |
95 |
begin |
|
|
96 |
ComboBox1.ItemIndex := FilenameToFormatIndex; |
| 102 |
UpdateButtonEnabledStates; |
97 |
UpdateButtonEnabledStates; |
| 103 |
end; |
98 |
end; |
| 104 |
|
99 |
|
@@ -112,6 +107,26 @@ begin |
| 112 |
FromPositionUpperSpinEdit.Value:=0; |
107 |
FromPositionUpperSpinEdit.Value:=0; |
| 113 |
end; |
108 |
end; |
| 114 |
|
109 |
|
|
|
110 |
function TfrmRenderToWave.FilenameToFormatIndex: Integer; |
|
|
111 |
begin |
|
|
112 |
case LowerCase(ExtractFileExt(FileNameEdit1.FileName)) of |
|
|
113 |
'.wav': Result := 0; |
|
|
114 |
'.mp3': Result := 1; |
|
|
115 |
'.flac': Result := 2; |
|
|
116 |
else Result := 0; |
|
|
117 |
end; |
|
|
118 |
end; |
|
|
119 |
|
|
|
120 |
function TfrmRenderToWave.GetFFMPEGFormat: String; |
|
|
121 |
begin |
|
|
122 |
case ComboBox1.ItemIndex of |
|
|
123 |
0: Result := 'wav'; |
|
|
124 |
1: Result := 'mp3'; |
|
|
125 |
2: Result := 'flac'; |
|
|
126 |
else Result := 'wav'; |
|
|
127 |
end; |
|
|
128 |
end; |
|
|
129 |
|
| 115 |
procedure TfrmRenderToWave.UpdateButtonEnabledStates; |
130 |
procedure TfrmRenderToWave.UpdateButtonEnabledStates; |
| 116 |
begin |
131 |
begin |
| 117 |
RenderButton.Enabled := (FileNameEdit1.FileName <> '') and not Rendering; |
132 |
RenderButton.Enabled := (FileNameEdit1.FileName <> '') and not Rendering; |
@@ -149,6 +164,8 @@ begin |
| 149 |
Add('2'); |
164 |
Add('2'); |
| 150 |
Add('-i'); |
165 |
Add('-i'); |
| 151 |
Add('-'); |
166 |
Add('-'); |
|
|
167 |
Add('-f'); |
|
|
168 |
Add(GetFFMPEGFormat); |
| 152 |
Add(Filename); |
169 |
Add(Filename); |
| 153 |
end; |
170 |
end; |
| 154 |
Proc.Options := [poUsePipes, poNoConsole]; |
171 |
Proc.Options := [poUsePipes, poNoConsole]; |