Unit1.pas 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. unit Unit1;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5. MMBlade, MMHook, MMDesign, MMWave, MMObj, MMDSPObj, MMTrigg, StdCtrls,
  6. MMsystem, MMGauge, MMCstDlg, MMUtils, ExtCtrls;
  7. type
  8. TForm1 = class(TForm)
  9. Trigger: TMMTrigger;
  10. WaveFile: TMMWaveFile;
  11. MMDesigner1: TMMDesigner;
  12. btnEncode: TButton;
  13. Gauge: TMMGauge;
  14. MP3Encoder: TMMMP3Encoder;
  15. btnCancel: TButton;
  16. OpenDialog: TMMWaveOpenDialog;
  17. Timer: TTimer;
  18. procedure btnEncodeClick(Sender: TObject);
  19. procedure TriggerStart(Sender: TObject);
  20. procedure TriggerStop(Sender: TObject);
  21. procedure btnCancelClick(Sender: TObject);
  22. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  23. procedure TimerTimer(Sender: TObject);
  24. private
  25. public
  26. end;
  27. var
  28. Form1: TForm1;
  29. implementation
  30. {$R *.DFM}
  31. {------------------------------------------------------------------------------}
  32. procedure TForm1.btnEncodeClick(Sender: TObject);
  33. begin
  34. if OpenDialog.Execute then
  35. begin
  36. WaveFile.Wave.FileName := OpenDialog.FileName;
  37. if MP3Encoder.FileType = ftRAW then
  38. MP3Encoder.FileName := CheckPath(ExtractFilePath(OpenDialog.FileName),True)+'Encode.mp3'
  39. else
  40. MP3Encoder.FileName := CheckPath(ExtractFilePath(OpenDialog.FileName),True)+'Encode.wav';
  41. Trigger.Start;
  42. end;
  43. end;
  44. {------------------------------------------------------------------------------}
  45. procedure TForm1.TriggerStart(Sender: TObject);
  46. begin
  47. btnEncode.Enabled := False;
  48. btnCancel.Enabled := True;
  49. Timer.Enabled := True;
  50. end;
  51. {------------------------------------------------------------------------------}
  52. procedure TForm1.TriggerStop(Sender: TObject);
  53. begin
  54. // close the trigger (and all other components)
  55. Trigger.Close;
  56. btnEncode.Enabled := True;
  57. btnCancel.Enabled := False;
  58. Gauge.Progress := 0;
  59. Timer.Enabled := True;
  60. end;
  61. {------------------------------------------------------------------------------}
  62. procedure TForm1.btnCancelClick(Sender: TObject);
  63. begin
  64. Trigger.Stop;
  65. end;
  66. {------------------------------------------------------------------------------}
  67. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  68. begin
  69. Trigger.Close;
  70. end;
  71. procedure TForm1.TimerTimer(Sender: TObject);
  72. begin
  73. Gauge.Progress := Round((WaveFile.Wave.Position*100)/WaveFile.Wave.DataSize);
  74. end;
  75. end.