@@ -6,10 +6,17 @@ interface |
| 6 |
|
6 |
|
| 7 |
uses |
7 |
uses |
| 8 |
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, |
8 |
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, |
| 9 |
ComCtrls, hugeDatatypes; |
9 |
ComCtrls, hugeDatatypes, utils; |
| 10 |
|
10 |
|
| 11 |
type |
11 |
type |
| 12 |
|
12 |
|
|
|
13 |
{ TCheckBoxHelper } |
|
|
14 |
|
|
|
15 |
// What a hack. |
|
|
16 |
TCheckBoxHelper = class helper for TCheckBox |
|
|
17 |
procedure SetCheckedWithoutClick(AChecked: Boolean); |
|
|
18 |
end; |
|
|
19 |
|
| 13 |
{ TfrmEffectEditor } |
20 |
{ TfrmEffectEditor } |
| 14 |
|
21 |
|
| 15 |
TfrmEffectEditor = class(TForm) |
22 |
TfrmEffectEditor = class(TForm) |
@@ -45,13 +52,14 @@ type |
| 45 |
VibratoPage: TPage; |
52 |
VibratoPage: TPage; |
| 46 |
TwoParamsPage: TPage; |
53 |
TwoParamsPage: TPage; |
| 47 |
procedure Button1Click(Sender: TObject); |
54 |
procedure Button1Click(Sender: TObject); |
|
|
55 |
procedure CheckBox1Change(Sender: TObject); |
| 48 |
procedure ComboBox1Change(Sender: TObject); |
56 |
procedure ComboBox1Change(Sender: TObject); |
| 49 |
procedure DutyRadioGroupSelectionChanged(Sender: TObject); |
57 |
procedure DutyRadioGroupSelectionChanged(Sender: TObject); |
| 50 |
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); |
58 |
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); |
| 51 |
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); |
59 |
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); |
| 52 |
procedure FormCreate(Sender: TObject); |
60 |
procedure FormCreate(Sender: TObject); |
| 53 |
procedure LeftPanCheckGroupItemClick(Sender: TObject; Index: integer); |
|
|
| 54 |
procedure OneParamTrackBarChange(Sender: TObject); |
61 |
procedure OneParamTrackBarChange(Sender: TObject); |
|
|
62 |
procedure RightVolumeTrackBarChange(Sender: TObject); |
| 55 |
procedure TwoParamsTrackBar1Change(Sender: TObject); |
63 |
procedure TwoParamsTrackBar1Change(Sender: TObject); |
| 56 |
procedure TwoParamsTrackBar2Change(Sender: TObject); |
64 |
procedure TwoParamsTrackBar2Change(Sender: TObject); |
| 57 |
procedure VibratoDepthTrackBarChange(Sender: TObject); |
65 |
procedure VibratoDepthTrackBarChange(Sender: TObject); |
@@ -91,6 +99,18 @@ implementation |
| 91 |
|
99 |
|
| 92 |
{$R *.lfm} |
100 |
{$R *.lfm} |
| 93 |
|
101 |
|
|
|
102 |
{ TCheckBoxHelper } |
|
|
103 |
|
|
|
104 |
procedure TCheckBoxHelper.SetCheckedWithoutClick(AChecked: Boolean); |
|
|
105 |
begin |
|
|
106 |
ClicksDisabled := True; |
|
|
107 |
try |
|
|
108 |
Checked := AChecked; |
|
|
109 |
finally |
|
|
110 |
ClicksDisabled := False; |
|
|
111 |
end; |
|
|
112 |
end; |
|
|
113 |
|
| 94 |
{ TfrmEffectEditor } |
114 |
{ TfrmEffectEditor } |
| 95 |
|
115 |
|
| 96 |
procedure TfrmEffectEditor.ComboBox1Change(Sender: TObject); |
116 |
procedure TfrmEffectEditor.ComboBox1Change(Sender: TObject); |
@@ -104,6 +124,25 @@ begin |
| 104 |
Close; |
124 |
Close; |
| 105 |
end; |
125 |
end; |
| 106 |
|
126 |
|
|
|
127 |
procedure TfrmEffectEditor.CheckBox1Change(Sender: TObject); |
|
|
128 |
var |
|
|
129 |
Val: Integer; |
|
|
130 |
begin |
|
|
131 |
Val := %00000000; |
|
|
132 |
|
|
|
133 |
if CheckBox4.Checked then Val := Val or %00001000; |
|
|
134 |
if CheckBox3.Checked then Val := Val or %00000100; |
|
|
135 |
if CheckBox2.Checked then Val := Val or %00000010; |
|
|
136 |
if CheckBox1.Checked then Val := Val or %00000001; |
|
|
137 |
|
|
|
138 |
if CheckBox8.Checked then Val := Val or %10000000; |
|
|
139 |
if CheckBox7.Checked then Val := Val or %01000000; |
|
|
140 |
if CheckBox6.Checked then Val := Val or %00100000; |
|
|
141 |
if CheckBox5.Checked then Val := Val or %00010000; |
|
|
142 |
|
|
|
143 |
Cell^.EffectParams.Value := Val; |
|
|
144 |
end; |
|
|
145 |
|
| 107 |
procedure TfrmEffectEditor.DutyRadioGroupSelectionChanged(Sender: TObject); |
146 |
procedure TfrmEffectEditor.DutyRadioGroupSelectionChanged(Sender: TObject); |
| 108 |
begin |
147 |
begin |
| 109 |
case DutyRadioGroup.ItemIndex of |
148 |
case DutyRadioGroup.ItemIndex of |
@@ -129,40 +168,32 @@ procedure TfrmEffectEditor.FormCreate(Sender: TObject); |
| 129 |
begin |
168 |
begin |
| 130 |
ComboBox1.ItemIndex := Cell^.EffectCode; |
169 |
ComboBox1.ItemIndex := Cell^.EffectCode; |
| 131 |
LoadEffect; |
170 |
LoadEffect; |
|
|
171 |
Value.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 132 |
end; |
172 |
end; |
| 133 |
|
173 |
|
| 134 |
procedure TfrmEffectEditor.LeftPanCheckGroupItemClick(Sender: TObject; |
174 |
procedure TfrmEffectEditor.OneParamTrackBarChange(Sender: TObject); |
| 135 |
Index: integer); |
|
|
| 136 |
var |
|
|
| 137 |
Val: Integer; |
|
|
| 138 |
begin |
175 |
begin |
| 139 |
Val := %00000000; |
176 |
Cell^.EffectParams.Value := OneParamTrackBar.Position; |
| 140 |
if CheckBox4.Checked then Val := Val or %00001000; |
177 |
Value.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 141 |
if CheckBox3.Checked then Val := Val or %00000100; |
|
|
| 142 |
if CheckBox2.Checked then Val := Val or %00000010; |
|
|
| 143 |
if CheckBox1.Checked then Val := Val or %00000001; |
|
|
| 144 |
|
|
|
| 145 |
if CheckBox8.Checked then Val := Val or %10000000; |
|
|
| 146 |
if CheckBox7.Checked then Val := Val or %01000000; |
|
|
| 147 |
if CheckBox6.Checked then Val := Val or %00100000; |
|
|
| 148 |
if CheckBox5.Checked then Val := Val or %00010000; |
|
|
| 149 |
|
|
|
| 150 |
Cell^.EffectParams.Value := Val; |
|
|
| 151 |
end; |
178 |
end; |
| 152 |
|
179 |
|
| 153 |
procedure TfrmEffectEditor.OneParamTrackBarChange(Sender: TObject); |
180 |
procedure TfrmEffectEditor.RightVolumeTrackBarChange(Sender: TObject); |
| 154 |
begin |
181 |
begin |
| 155 |
Cell^.EffectParams.Value := OneParamTrackBar.Position; |
182 |
Cell^.EffectParams.Param1 := LeftVolumeTrackBar.Position; |
|
|
183 |
Cell^.EffectParams.Param2 := RightVolumeTrackBar.Position; |
|
|
184 |
Value2.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 156 |
end; |
185 |
end; |
| 157 |
|
186 |
|
| 158 |
procedure TfrmEffectEditor.TwoParamsTrackBar1Change(Sender: TObject); |
187 |
procedure TfrmEffectEditor.TwoParamsTrackBar1Change(Sender: TObject); |
| 159 |
begin |
188 |
begin |
| 160 |
Cell^.EffectParams.Param1 := TwoParamsTrackBar1.Position; |
189 |
Cell^.EffectParams.Param1 := TwoParamsTrackBar1.Position; |
|
|
190 |
Value1.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 161 |
end; |
191 |
end; |
| 162 |
|
192 |
|
| 163 |
procedure TfrmEffectEditor.TwoParamsTrackBar2Change(Sender: TObject); |
193 |
procedure TfrmEffectEditor.TwoParamsTrackBar2Change(Sender: TObject); |
| 164 |
begin |
194 |
begin |
| 165 |
Cell^.EffectParams.Param1 := TwoParamsTrackBar2.Position; |
195 |
Cell^.EffectParams.Param1 := TwoParamsTrackBar2.Position; |
|
|
196 |
Value1.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 166 |
end; |
197 |
end; |
| 167 |
|
198 |
|
| 168 |
procedure TfrmEffectEditor.VibratoDepthTrackBarChange(Sender: TObject); |
199 |
procedure TfrmEffectEditor.VibratoDepthTrackBarChange(Sender: TObject); |
@@ -207,12 +238,14 @@ end; |
| 207 |
procedure TfrmEffectEditor.LoadOneParamData; |
238 |
procedure TfrmEffectEditor.LoadOneParamData; |
| 208 |
begin |
239 |
begin |
| 209 |
OneParamTrackBar.Position := Cell^.EffectParams.Value; |
240 |
OneParamTrackBar.Position := Cell^.EffectParams.Value; |
|
|
241 |
Value.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 210 |
end; |
242 |
end; |
| 211 |
|
243 |
|
| 212 |
procedure TfrmEffectEditor.LoadTwoParamData; |
244 |
procedure TfrmEffectEditor.LoadTwoParamData; |
| 213 |
begin |
245 |
begin |
| 214 |
TwoParamsTrackBar1.Position := Cell^.EffectParams.Param1; |
246 |
TwoParamsTrackBar1.Position := Cell^.EffectParams.Param1; |
| 215 |
TwoParamsTrackBar2.Position := Cell^.EffectParams.Param2; |
247 |
TwoParamsTrackBar2.Position := Cell^.EffectParams.Param2; |
|
|
248 |
Value1.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 216 |
end; |
249 |
end; |
| 217 |
|
250 |
|
| 218 |
procedure TfrmEffectEditor.LoadVibratoData; |
251 |
procedure TfrmEffectEditor.LoadVibratoData; |
@@ -231,18 +264,19 @@ procedure TfrmEffectEditor.LoadMasterVolumeData; |
| 231 |
begin |
264 |
begin |
| 232 |
LeftVolumeTrackBar.Position := Cell^.EffectParams.Param1; |
265 |
LeftVolumeTrackBar.Position := Cell^.EffectParams.Param1; |
| 233 |
RightVolumeTrackBar.Position := Cell^.EffectParams.Param2; |
266 |
RightVolumeTrackBar.Position := Cell^.EffectParams.Param2; |
|
|
267 |
Value2.Caption := EffectToExplanation(Cell^.EffectCode, Cell^.EffectParams); |
| 234 |
end; |
268 |
end; |
| 235 |
|
269 |
|
| 236 |
procedure TfrmEffectEditor.LoadPanningData; |
270 |
procedure TfrmEffectEditor.LoadPanningData; |
| 237 |
begin |
271 |
begin |
| 238 |
CheckBox1.Checked := (Cell^.EffectParams.Value and %00000001) <> 0; |
272 |
CheckBox1.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00000001) <> 0); |
| 239 |
CheckBox2.Checked := (Cell^.EffectParams.Value and %00000010) <> 0; |
273 |
CheckBox2.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00000010) <> 0); |
| 240 |
CheckBox3.Checked := (Cell^.EffectParams.Value and %00000100) <> 0; |
274 |
CheckBox3.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00000100) <> 0); |
| 241 |
CheckBox4.Checked := (Cell^.EffectParams.Value and %00001000) <> 0; |
275 |
CheckBox4.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00001000) <> 0); |
| 242 |
CheckBox5.Checked := (Cell^.EffectParams.Value and %00010000) <> 0; |
276 |
CheckBox5.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00010000) <> 0); |
| 243 |
CheckBox6.Checked := (Cell^.EffectParams.Value and %00100000) <> 0; |
277 |
CheckBox6.SetCheckedWithoutClick((Cell^.EffectParams.Value and %00100000) <> 0); |
| 244 |
CheckBox7.Checked := (Cell^.EffectParams.Value and %01000000) <> 0; |
278 |
CheckBox7.SetCheckedWithoutClick((Cell^.EffectParams.Value and %01000000) <> 0); |
| 245 |
CheckBox8.Checked := (Cell^.EffectParams.Value and %10000000) <> 0; |
279 |
CheckBox8.SetCheckedWithoutClick((Cell^.EffectParams.Value and %10000000) <> 0); |
| 246 |
end; |
280 |
end; |
| 247 |
|
281 |
|
| 248 |
procedure TfrmEffectEditor.LoadDutyCycleData; |
282 |
procedure TfrmEffectEditor.LoadDutyCycleData; |
@@ -264,18 +298,21 @@ end; |
| 264 |
procedure TfrmEffectEditor.fx1; |
298 |
procedure TfrmEffectEditor.fx1; |
| 265 |
begin |
299 |
begin |
| 266 |
Notebook1.PageIndex := 0; |
300 |
Notebook1.PageIndex := 0; |
|
|
301 |
OneParamTrackBar.Max := $FF; |
| 267 |
LoadOneParamData; |
302 |
LoadOneParamData; |
| 268 |
end; |
303 |
end; |
| 269 |
|
304 |
|
| 270 |
procedure TfrmEffectEditor.fx2; |
305 |
procedure TfrmEffectEditor.fx2; |
| 271 |
begin |
306 |
begin |
| 272 |
Notebook1.PageIndex := 0; |
307 |
Notebook1.PageIndex := 0; |
|
|
308 |
OneParamTrackBar.Max := $FF; |
| 273 |
LoadOneParamData; |
309 |
LoadOneParamData; |
| 274 |
end; |
310 |
end; |
| 275 |
|
311 |
|
| 276 |
procedure TfrmEffectEditor.fx3; |
312 |
procedure TfrmEffectEditor.fx3; |
| 277 |
begin |
313 |
begin |
| 278 |
Notebook1.PageIndex := 0; |
314 |
Notebook1.PageIndex := 0; |
|
|
315 |
OneParamTrackBar.Max := $FF; |
| 279 |
LoadOneParamData; |
316 |
LoadOneParamData; |
| 280 |
end; |
317 |
end; |
| 281 |
|
318 |
|
@@ -294,12 +331,14 @@ end; |
| 294 |
procedure TfrmEffectEditor.fx6; |
331 |
procedure TfrmEffectEditor.fx6; |
| 295 |
begin |
332 |
begin |
| 296 |
Notebook1.PageIndex := 0; |
333 |
Notebook1.PageIndex := 0; |
|
|
334 |
OneParamTrackBar.Max := $FF; |
| 297 |
LoadOneParamData; |
335 |
LoadOneParamData; |
| 298 |
end; |
336 |
end; |
| 299 |
|
337 |
|
| 300 |
procedure TfrmEffectEditor.fx7; |
338 |
procedure TfrmEffectEditor.fx7; |
| 301 |
begin |
339 |
begin |
| 302 |
Notebook1.PageIndex := 0; |
340 |
Notebook1.PageIndex := 0; |
|
|
341 |
OneParamTrackBar.Max := $FF; |
| 303 |
LoadOneParamData; |
342 |
LoadOneParamData; |
| 304 |
end; |
343 |
end; |
| 305 |
|
344 |
|
@@ -324,30 +363,35 @@ end; |
| 324 |
procedure TfrmEffectEditor.fxB; |
363 |
procedure TfrmEffectEditor.fxB; |
| 325 |
begin |
364 |
begin |
| 326 |
Notebook1.PageIndex := 0; |
365 |
Notebook1.PageIndex := 0; |
|
|
366 |
OneParamTrackBar.Max := $FF; |
| 327 |
LoadOneParamData; |
367 |
LoadOneParamData; |
| 328 |
end; |
368 |
end; |
| 329 |
|
369 |
|
| 330 |
procedure TfrmEffectEditor.fxC; |
370 |
procedure TfrmEffectEditor.fxC; |
| 331 |
begin |
371 |
begin |
| 332 |
Notebook1.PageIndex := 0; |
372 |
Notebook1.PageIndex := 0; |
|
|
373 |
OneParamTrackBar.Max := $F; |
| 333 |
LoadOneParamData; |
374 |
LoadOneParamData; |
| 334 |
end; |
375 |
end; |
| 335 |
|
376 |
|
| 336 |
procedure TfrmEffectEditor.fxD; |
377 |
procedure TfrmEffectEditor.fxD; |
| 337 |
begin |
378 |
begin |
| 338 |
Notebook1.PageIndex := 0; |
379 |
Notebook1.PageIndex := 0; |
|
|
380 |
OneParamTrackBar.Max := $FF; |
| 339 |
LoadOneParamData; |
381 |
LoadOneParamData; |
| 340 |
end; |
382 |
end; |
| 341 |
|
383 |
|
| 342 |
procedure TfrmEffectEditor.fxE; |
384 |
procedure TfrmEffectEditor.fxE; |
| 343 |
begin |
385 |
begin |
| 344 |
Notebook1.PageIndex := 0; |
386 |
Notebook1.PageIndex := 0; |
|
|
387 |
OneParamTrackBar.Max := $FF; |
| 345 |
LoadOneParamData; |
388 |
LoadOneParamData; |
| 346 |
end; |
389 |
end; |
| 347 |
|
390 |
|
| 348 |
procedure TfrmEffectEditor.fxF; |
391 |
procedure TfrmEffectEditor.fxF; |
| 349 |
begin |
392 |
begin |
| 350 |
Notebook1.PageIndex := 0; |
393 |
Notebook1.PageIndex := 0; |
|
|
394 |
OneParamTrackBar.Max := $FF; |
| 351 |
LoadOneParamData; |
395 |
LoadOneParamData; |
| 352 |
end; |
396 |
end; |
| 353 |
|
397 |
|