@@ -16,6 +16,15 @@ type |
| 16 |
{ TfrmTracker } |
16 |
{ TfrmTracker } |
| 17 |
|
17 |
|
| 18 |
TfrmTracker = class(TForm) |
18 |
TfrmTracker = class(TForm) |
|
|
19 |
DeleteRowAction: TAction; |
|
|
20 |
DeleteRowForAllAction: TAction; |
|
|
21 |
InsertRowForAllAction: TAction; |
|
|
22 |
InsertRowAction: TAction; |
|
|
23 |
StopAction: TAction; |
|
|
24 |
PlayOrderAction: TAction; |
|
|
25 |
PlayCursorAction: TAction; |
|
|
26 |
PlayStartAction: TAction; |
|
|
27 |
ShortcutsActionList: TActionList; |
| 19 |
Button1: TButton; |
28 |
Button1: TButton; |
| 20 |
MenuItem37: TMenuItem; |
29 |
MenuItem37: TMenuItem; |
| 21 |
MenuItem38: TMenuItem; |
30 |
MenuItem38: TMenuItem; |
@@ -114,7 +123,7 @@ type |
| 114 |
PasteAction: TAction; |
123 |
PasteAction: TAction; |
| 115 |
CopyAction: TAction; |
124 |
CopyAction: TAction; |
| 116 |
HelpLookupManual: TAction; |
125 |
HelpLookupManual: TAction; |
| 117 |
ActionList1: TActionList; |
126 |
MenuBarActionList: TActionList; |
| 118 |
EditCopy1: TEditCopy; |
127 |
EditCopy1: TEditCopy; |
| 119 |
EditDelete1: TEditDelete; |
128 |
EditDelete1: TEditDelete; |
| 120 |
EditPaste1: TEditPaste; |
129 |
EditPaste1: TEditPaste; |
@@ -225,15 +234,23 @@ type |
| 225 |
TreeView1: TTreeView; |
234 |
TreeView1: TTreeView; |
| 226 |
TrackerGrid: TTrackerGrid; |
235 |
TrackerGrid: TTrackerGrid; |
| 227 |
procedure Button1Click(Sender: TObject); |
236 |
procedure Button1Click(Sender: TObject); |
|
|
237 |
procedure DeleteRowActionExecute(Sender: TObject); |
|
|
238 |
procedure DeleteRowActionUpdate(Sender: TObject); |
|
|
239 |
procedure DeleteRowForAllActionExecute(Sender: TObject); |
|
|
240 |
procedure DeleteRowForAllActionUpdate(Sender: TObject); |
| 228 |
procedure Duty1VisualizerClick(Sender: TObject); |
241 |
procedure Duty1VisualizerClick(Sender: TObject); |
| 229 |
procedure EditDelete1Execute(Sender: TObject); |
|
|
| 230 |
procedure FileSaveAs1BeforeExecute(Sender: TObject); |
242 |
procedure FileSaveAs1BeforeExecute(Sender: TObject); |
| 231 |
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); |
243 |
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); |
| 232 |
procedure FormDropFiles(Sender: TObject; const FileNames: array of String); |
244 |
procedure FormDropFiles(Sender: TObject; const FileNames: array of String); |
| 233 |
procedure HexWaveEditEditingDone(Sender: TObject); |
245 |
procedure HexWaveEditEditingDone(Sender: TObject); |
|
|
246 |
procedure InsertRowActionExecute(Sender: TObject); |
|
|
247 |
procedure InsertRowActionUpdate(Sender: TObject); |
|
|
248 |
procedure InsertRowForAllActionExecute(Sender: TObject); |
|
|
249 |
procedure InsertRowForAllActionUpdate(Sender: TObject); |
| 234 |
procedure MenuItem37Click(Sender: TObject); |
250 |
procedure MenuItem37Click(Sender: TObject); |
| 235 |
procedure MenuItem38Click(Sender: TObject); |
251 |
procedure MenuItem38Click(Sender: TObject); |
| 236 |
procedure MenuItem46Click(Sender: TObject); |
252 |
procedure PlayCursorActionExecute(Sender: TObject); |
|
|
253 |
procedure PlayOrderActionExecute(Sender: TObject); |
| 237 |
procedure ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState; |
254 |
procedure ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState; |
| 238 |
MousePos: TPoint; var Handled: Boolean); |
255 |
MousePos: TPoint; var Handled: Boolean); |
| 239 |
procedure ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState; |
256 |
procedure ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState; |
@@ -246,7 +263,6 @@ type |
| 246 |
procedure Duty2VisualizerPaint(Sender: TObject); |
263 |
procedure Duty2VisualizerPaint(Sender: TObject); |
| 247 |
procedure FileOpen1Accept(Sender: TObject); |
264 |
procedure FileOpen1Accept(Sender: TObject); |
| 248 |
procedure FileSaveAs1Accept(Sender: TObject); |
265 |
procedure FileSaveAs1Accept(Sender: TObject); |
| 249 |
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); |
|
|
| 250 |
procedure HeaderControl1MouseDown(Sender: TObject; Button: TMouseButton; |
266 |
procedure HeaderControl1MouseDown(Sender: TObject; Button: TMouseButton; |
| 251 |
Shift: TShiftState; X, Y: Integer); |
267 |
Shift: TShiftState; X, Y: Integer); |
| 252 |
procedure HeaderControl1SectionClick(HeaderControl: TCustomHeaderControl; |
268 |
procedure HeaderControl1SectionClick(HeaderControl: TCustomHeaderControl; |
@@ -273,10 +289,8 @@ type |
| 273 |
procedure LengthSpinnerChange(Sender: TObject); |
289 |
procedure LengthSpinnerChange(Sender: TObject); |
| 274 |
procedure DebugPlayNoteButtonClick(Sender: TObject); |
290 |
procedure DebugPlayNoteButtonClick(Sender: TObject); |
| 275 |
procedure DebugShiteButtonClick(Sender: TObject); |
291 |
procedure DebugShiteButtonClick(Sender: TObject); |
| 276 |
procedure MenuItem10Click(Sender: TObject); |
|
|
| 277 |
procedure MenuItem11Click(Sender: TObject); |
292 |
procedure MenuItem11Click(Sender: TObject); |
| 278 |
procedure MenuItem12Click(Sender: TObject); |
293 |
procedure MenuItem12Click(Sender: TObject); |
| 279 |
procedure MenuItem13Click(Sender: TObject); |
|
|
| 280 |
procedure MenuItem14Click(Sender: TObject); |
294 |
procedure MenuItem14Click(Sender: TObject); |
| 281 |
procedure MenuItem17Click(Sender: TObject); |
295 |
procedure MenuItem17Click(Sender: TObject); |
| 282 |
procedure MenuItem18Click(Sender: TObject); |
296 |
procedure MenuItem18Click(Sender: TObject); |
@@ -317,14 +331,13 @@ type |
| 317 |
procedure RoutineNumberSpinnerChange(Sender: TObject); |
331 |
procedure RoutineNumberSpinnerChange(Sender: TObject); |
| 318 |
procedure RoutineSyneditChange(Sender: TObject); |
332 |
procedure RoutineSyneditChange(Sender: TObject); |
| 319 |
procedure ShiftClockSpinnerChange(Sender: TObject); |
333 |
procedure ShiftClockSpinnerChange(Sender: TObject); |
|
|
334 |
procedure PlayStartActionExecute(Sender: TObject); |
| 320 |
procedure StepSpinEditChange(Sender: TObject); |
335 |
procedure StepSpinEditChange(Sender: TObject); |
|
|
336 |
procedure StopActionExecute(Sender: TObject); |
| 321 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
337 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
| 322 |
procedure OscilloscopeUpdateTimerTimer(Sender: TObject); |
338 |
procedure OscilloscopeUpdateTimerTimer(Sender: TObject); |
| 323 |
procedure ExportGBSButtonClick(Sender: TObject); |
339 |
procedure ExportGBSButtonClick(Sender: TObject); |
| 324 |
procedure ToolButton10Click(Sender: TObject); |
340 |
procedure ToolButton10Click(Sender: TObject); |
| 325 |
procedure ToolButton2Click(Sender: TObject); |
|
|
| 326 |
procedure ToolButton3Click(Sender: TObject); |
|
|
| 327 |
procedure ToolButton4Click(Sender: TObject); |
|
|
| 328 |
procedure ExportGBButtonClick(Sender: TObject); |
341 |
procedure ExportGBButtonClick(Sender: TObject); |
| 329 |
procedure TrackerPopupCopyClick(Sender: TObject); |
342 |
procedure TrackerPopupCopyClick(Sender: TObject); |
| 330 |
procedure TrackerPopupCutClick(Sender: TObject); |
343 |
procedure TrackerPopupCutClick(Sender: TObject); |
@@ -1229,7 +1242,7 @@ begin |
| 1229 |
// Get the emulator ready to make sound... |
1242 |
// Get the emulator ready to make sound... |
| 1230 |
EnableSound; |
1243 |
EnableSound; |
| 1231 |
StartPlayback; |
1244 |
StartPlayback; |
| 1232 |
HaltPlayback; //TODO: remove this hack |
1245 |
HaltPlayback; |
| 1233 |
|
1246 |
|
| 1234 |
// Start the Oscilloscope repaint timer |
1247 |
// Start the Oscilloscope repaint timer |
| 1235 |
OscilloscopeUpdateTimer.Enabled := ScopesOn; |
1248 |
OscilloscopeUpdateTimer.Enabled := ScopesOn; |
@@ -1409,11 +1422,6 @@ begin |
| 1409 |
end; |
1422 |
end; |
| 1410 |
end; |
1423 |
end; |
| 1411 |
|
1424 |
|
| 1412 |
procedure TfrmTracker.FormClose(Sender: TObject; var CloseAction: TCloseAction); |
|
|
| 1413 |
begin |
|
|
| 1414 |
|
|
|
| 1415 |
end; |
|
|
| 1416 |
|
|
|
| 1417 |
procedure TfrmTracker.FileOpen1Accept(Sender: TObject); |
1425 |
procedure TfrmTracker.FileOpen1Accept(Sender: TObject); |
| 1418 |
begin |
1426 |
begin |
| 1419 |
LoadSong(FileOpen1.Dialog.FileName); |
1427 |
LoadSong(FileOpen1.Dialog.FileName); |
@@ -1485,11 +1493,6 @@ begin |
| 1485 |
TrackerGrid.SelectedInstrument := ModInst(InstrumentComboBox.ItemIndex); |
1493 |
TrackerGrid.SelectedInstrument := ModInst(InstrumentComboBox.ItemIndex); |
| 1486 |
end; |
1494 |
end; |
| 1487 |
|
1495 |
|
| 1488 |
procedure TfrmTracker.EditDelete1Execute(Sender: TObject); |
|
|
| 1489 |
begin |
|
|
| 1490 |
|
|
|
| 1491 |
end; |
|
|
| 1492 |
|
|
|
| 1493 |
procedure TfrmTracker.FileSaveAs1BeforeExecute(Sender: TObject); |
1496 |
procedure TfrmTracker.FileSaveAs1BeforeExecute(Sender: TObject); |
| 1494 |
begin |
1497 |
begin |
| 1495 |
SaveSucceeded := False; |
1498 |
SaveSucceeded := False; |
@@ -1529,6 +1532,26 @@ begin |
| 1529 |
end; |
1532 |
end; |
| 1530 |
end; |
1533 |
end; |
| 1531 |
|
1534 |
|
|
|
1535 |
procedure TfrmTracker.InsertRowActionExecute(Sender: TObject); |
|
|
1536 |
begin |
|
|
1537 |
TrackerGrid.InsertRowInPatternAtCursor(TrackerGrid.Cursor.X); |
|
|
1538 |
end; |
|
|
1539 |
|
|
|
1540 |
procedure TfrmTracker.InsertRowActionUpdate(Sender: TObject); |
|
|
1541 |
begin |
|
|
1542 |
(Sender as TAction).Enabled := ActiveControl = TrackerGrid; |
|
|
1543 |
end; |
|
|
1544 |
|
|
|
1545 |
procedure TfrmTracker.InsertRowForAllActionExecute(Sender: TObject); |
|
|
1546 |
begin |
|
|
1547 |
TrackerGrid.InsertRowInAllAtCursor; |
|
|
1548 |
end; |
|
|
1549 |
|
|
|
1550 |
procedure TfrmTracker.InsertRowForAllActionUpdate(Sender: TObject); |
|
|
1551 |
begin |
|
|
1552 |
(Sender as TAction).Enabled := ActiveControl = TrackerGrid; |
|
|
1553 |
end; |
|
|
1554 |
|
| 1532 |
procedure TfrmTracker.MenuItem37Click(Sender: TObject); |
1555 |
procedure TfrmTracker.MenuItem37Click(Sender: TObject); |
| 1533 |
begin |
1556 |
begin |
| 1534 |
Clipboard.AsText := ConvertWaveToHexString(WaveEditNumberSpinner.Value); |
1557 |
Clipboard.AsText := ConvertWaveToHexString(WaveEditNumberSpinner.Value); |
@@ -1540,9 +1563,28 @@ begin |
| 1540 |
HexWaveEditEditingDone(nil); |
1563 |
HexWaveEditEditingDone(nil); |
| 1541 |
end; |
1564 |
end; |
| 1542 |
|
1565 |
|
| 1543 |
procedure TfrmTracker.MenuItem46Click(Sender: TObject); |
1566 |
procedure TfrmTracker.PlayCursorActionExecute(Sender: TObject); |
| 1544 |
begin |
1567 |
begin |
|
|
1568 |
if GetPreviewReady then begin |
|
|
1569 |
Playing := True; |
| 1545 |
|
1570 |
|
|
|
1571 |
PokeSymbol(SYM_CURRENT_ORDER, 2*(OrderEditStringGrid.Row-1)); |
|
|
1572 |
PokeSymbol(SYM_ROW, TrackerGrid.Cursor.Y); |
|
|
1573 |
|
|
|
1574 |
UnlockPlayback; |
|
|
1575 |
end |
|
|
1576 |
end; |
|
|
1577 |
|
|
|
1578 |
procedure TfrmTracker.PlayOrderActionExecute(Sender: TObject); |
|
|
1579 |
begin |
|
|
1580 |
if GetPreviewReady then begin |
|
|
1581 |
Playing := True; |
|
|
1582 |
|
|
|
1583 |
PokeSymbol(SYM_CURRENT_ORDER, 2*(OrderEditStringGrid.Row-1)); |
|
|
1584 |
PokeSymbol(SYM_ROW, 0); |
|
|
1585 |
|
|
|
1586 |
UnlockPlayback; |
|
|
1587 |
end |
| 1546 |
end; |
1588 |
end; |
| 1547 |
|
1589 |
|
| 1548 |
procedure TfrmTracker.ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState; |
1590 |
procedure TfrmTracker.ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState; |
@@ -1585,6 +1627,26 @@ begin |
| 1585 |
PreviewC5; |
1627 |
PreviewC5; |
| 1586 |
end; |
1628 |
end; |
| 1587 |
|
1629 |
|
|
|
1630 |
procedure TfrmTracker.DeleteRowActionExecute(Sender: TObject); |
|
|
1631 |
begin |
|
|
1632 |
TrackerGrid.DeleteRowInPatternAtCursor(TrackerGrid.Cursor.X); |
|
|
1633 |
end; |
|
|
1634 |
|
|
|
1635 |
procedure TfrmTracker.DeleteRowActionUpdate(Sender: TObject); |
|
|
1636 |
begin |
|
|
1637 |
(Sender as TAction).Enabled := ActiveControl = TrackerGrid; |
|
|
1638 |
end; |
|
|
1639 |
|
|
|
1640 |
procedure TfrmTracker.DeleteRowForAllActionExecute(Sender: TObject); |
|
|
1641 |
begin |
|
|
1642 |
TrackerGrid.DeleteRowInAllAtCursor; |
|
|
1643 |
end; |
|
|
1644 |
|
|
|
1645 |
procedure TfrmTracker.DeleteRowForAllActionUpdate(Sender: TObject); |
|
|
1646 |
begin |
|
|
1647 |
(Sender as TAction).Enabled := ActiveControl = TrackerGrid; |
|
|
1648 |
end; |
|
|
1649 |
|
| 1588 |
procedure TfrmTracker.Duty1VisualizerClick(Sender: TObject); |
1650 |
procedure TfrmTracker.Duty1VisualizerClick(Sender: TObject); |
| 1589 |
var |
1651 |
var |
| 1590 |
Section: THeaderSection; |
1652 |
Section: THeaderSection; |
@@ -1623,11 +1685,25 @@ begin |
| 1623 |
CurrentInstrument^.ShiftClockFreq := Round(ShiftClockTrackbar.Position); |
1685 |
CurrentInstrument^.ShiftClockFreq := Round(ShiftClockTrackbar.Position); |
| 1624 |
end; |
1686 |
end; |
| 1625 |
|
1687 |
|
|
|
1688 |
procedure TfrmTracker.PlayStartActionExecute(Sender: TObject); |
|
|
1689 |
begin |
|
|
1690 |
if GetPreviewReady then begin |
|
|
1691 |
Playing := True; |
|
|
1692 |
UnlockPlayback; |
|
|
1693 |
end; |
|
|
1694 |
end; |
|
|
1695 |
|
| 1626 |
procedure TfrmTracker.StepSpinEditChange(Sender: TObject); |
1696 |
procedure TfrmTracker.StepSpinEditChange(Sender: TObject); |
| 1627 |
begin |
1697 |
begin |
| 1628 |
TrackerGrid.Step := StepSpinEdit.Value; |
1698 |
TrackerGrid.Step := StepSpinEdit.Value; |
| 1629 |
end; |
1699 |
end; |
| 1630 |
|
1700 |
|
|
|
1701 |
procedure TfrmTracker.StopActionExecute(Sender: TObject); |
|
|
1702 |
begin |
|
|
1703 |
TrackerGrid.HighlightedRow := -1; |
|
|
1704 |
HaltPlayback; |
|
|
1705 |
end; |
|
|
1706 |
|
| 1631 |
procedure TfrmTracker.DivRatioSpinnerChange(Sender: TObject); |
1707 |
procedure TfrmTracker.DivRatioSpinnerChange(Sender: TObject); |
| 1632 |
begin |
1708 |
begin |
| 1633 |
CurrentInstrument^.DividingRatio := Round(DivRatioTrackbar.Position); |
1709 |
CurrentInstrument^.DividingRatio := Round(DivRatioTrackbar.Position); |
@@ -1699,11 +1775,6 @@ begin |
| 1699 |
LoadSong(ParamStr(0)); |
1775 |
LoadSong(ParamStr(0)); |
| 1700 |
end; |
1776 |
end; |
| 1701 |
|
1777 |
|
| 1702 |
procedure TfrmTracker.MenuItem10Click(Sender: TObject); |
|
|
| 1703 |
begin |
|
|
| 1704 |
|
|
|
| 1705 |
end; |
|
|
| 1706 |
|
|
|
| 1707 |
procedure TfrmTracker.MenuItem11Click(Sender: TObject); |
1778 |
procedure TfrmTracker.MenuItem11Click(Sender: TObject); |
| 1708 |
begin |
1779 |
begin |
| 1709 |
TrackerGrid.DoUndo; |
1780 |
TrackerGrid.DoUndo; |
@@ -1715,11 +1786,6 @@ begin |
| 1715 |
FileOpen1.Execute; |
1786 |
FileOpen1.Execute; |
| 1716 |
end; |
1787 |
end; |
| 1717 |
|
1788 |
|
| 1718 |
procedure TfrmTracker.MenuItem13Click(Sender: TObject); |
|
|
| 1719 |
begin |
|
|
| 1720 |
|
|
|
| 1721 |
end; |
|
|
| 1722 |
|
|
|
| 1723 |
procedure TfrmTracker.MenuItem14Click(Sender: TObject); |
1789 |
procedure TfrmTracker.MenuItem14Click(Sender: TObject); |
| 1724 |
begin |
1790 |
begin |
| 1725 |
if CheckUnsavedChanges then |
1791 |
if CheckUnsavedChanges then |
@@ -2092,32 +2158,6 @@ begin |
| 2092 |
end; |
2158 |
end; |
| 2093 |
end; |
2159 |
end; |
| 2094 |
|
2160 |
|
| 2095 |
procedure TfrmTracker.ToolButton2Click(Sender: TObject); |
|
|
| 2096 |
begin |
|
|
| 2097 |
if GetPreviewReady then begin |
|
|
| 2098 |
Playing := True; |
|
|
| 2099 |
|
|
|
| 2100 |
PokeSymbol(SYM_CURRENT_ORDER, 2*(OrderEditStringGrid.Row-1)); |
|
|
| 2101 |
PokeSymbol(SYM_ROW, TrackerGrid.Cursor.Y); |
|
|
| 2102 |
|
|
|
| 2103 |
UnlockPlayback; |
|
|
| 2104 |
end |
|
|
| 2105 |
end; |
|
|
| 2106 |
|
|
|
| 2107 |
procedure TfrmTracker.ToolButton3Click(Sender: TObject); |
|
|
| 2108 |
begin |
|
|
| 2109 |
if GetPreviewReady then begin |
|
|
| 2110 |
Playing := True; |
|
|
| 2111 |
UnlockPlayback; |
|
|
| 2112 |
end; |
|
|
| 2113 |
end; |
|
|
| 2114 |
|
|
|
| 2115 |
procedure TfrmTracker.ToolButton4Click(Sender: TObject); |
|
|
| 2116 |
begin |
|
|
| 2117 |
TrackerGrid.HighlightedRow := -1; |
|
|
| 2118 |
HaltPlayback; |
|
|
| 2119 |
end; |
|
|
| 2120 |
|
|
|
| 2121 |
procedure TfrmTracker.ExportGBButtonClick(Sender: TObject); |
2161 |
procedure TfrmTracker.ExportGBButtonClick(Sender: TObject); |
| 2122 |
begin |
2162 |
begin |
| 2123 |
if GBSaveDialog.Execute then begin |
2163 |
if GBSaveDialog.Execute then begin |