📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ioplug,
StdCtrls, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
TrackBar1: TTrackBar;
Button6: TButton;
Button7: TButton;
Memo1: TMemo;
Button8: TButton;
OpenDialog1: TOpenDialog;
OpenDialog2: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var imod:^TIn_module;
omod:^TOut_module;
procedure SetInfo1(bitrate,srate,stereo,synched:integer);cdecl; // if -1, changes ignored? :)
begin
end;
function dsp_isactive1:integer;cdecl;
begin
result:=0;
end;
function dsp_dosamples1(samples:pointer; numsamples, bps, nch, srate:integer):integer;cdecl;
begin
result:=numsamples;
end;
procedure SAVSAInit1(maxlatency_in_ms:integer;srate:integer);cdecl;
begin
end;
procedure SAVSADeInit1;cdecl; // call in Stop()
begin
end;
procedure SAAddPCMData1(PCMData:pointer;nch:integer;bps:integer;timestamp:integer);cdecl;
begin
end;
function SAGetMode1:integer;cdecl; // gets csa (the current type (4=ws,2=osc,1=spec))
begin
end;
procedure SAAdd1(data:pointer; timestamp:integer;csa:integer);cdecl; // sets the spec data, filled in by winamp
begin
end;
procedure VSAAddPCMData1(PCMData:pointer;nch: integer ; bps:integer;timestamp:integer);cdecl; // sets the vis data directly from PCM data
begin
end;
function VSAGetMode1(var specNch:integer; var waveNch:integer):integer;cdecl; // use to figure out what to give to VSAAdd
begin
end;
procedure VSAAdd1(data:pointer; timestamp:integer);cdecl; // filled in by winamp, called by plug-in
begin
end;
procedure VSASetInfo1(nch:integer;srate:integer);cdecl;
begin
end;
var s:string;
procedure TForm1.Button1Click(Sender: TObject);
begin
S:= InputBox('', 'Enter File:', '');
if s='' then begin opendialog2.execute;s:=opendialog2.filename;end;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
halt;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if not opendialog1.Execute then exit;
if not initInputDll(opendialog1.FileName) then begin
memo1.Lines.Add('Failed to load input plugin !');
exit;
end;
memo1.Lines.Add('Input plugin loaded !');
imod:=getinmodule;
imod.hMainWindow:=application.Handle;
imod.hDllInstance:=InputDllHandle;
imod.outMod:=omod;
imod.init;
imod.SetInfo:=SetInfo1;
imod.dsp_IsActive:=dsp_isactive1;
imod.dsp_dosamples:=dsp_dosamples1;
imod.SAVSAInit:=SAVSAInit1;
imod.SAVSADeInit:=SAVSADeinit1;
imod.SAAddPCMData:=SAAddPCMData1;
imod.SAGetMode:=SAGetMode1;
imod.SAAdd:=SAADD1;
imod.VSASetInfo:=VSASetInfo1;
imod.VSAAddPCMData:=VSAAddPCMData1;
imod.VSAGetMode:=VSAGetMode1;
imod.VSAAdd:=VSAAdd1;
imod.About(0);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if imod=nil then begin
memo1.Lines.add('Load input plugin first !');
exit;
end;
if not opendialog1.Execute then exit;
if not initOutputDll(opendialog1.FileName) then begin
memo1.Lines.Add('Failed to load output plugin !');
exit;
end;
memo1.Lines.Add('Output plugin loaded !');
omod:=getoutmodule;
omod.hMainWindow:=application.Handle;
omod.hDllInstance:=OutputDllHandle;
omod.init;
omod.about(0);
omod.setvolume(128);
imod.outMod:=omod;
button1.enabled:=true;
button2.enabled:=true;
button3.enabled:=true;
button6.enabled:=true;
button7.enabled:=true;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
imod.config(application.handle);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
omod.config(application.handle);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
omod.setvolume(trackbar1.position);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if imod.Play(Pchar(s))=0 then memo1.lines.add('Playing '+s) else memo1.lines.add('Can not playing '+s);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
imod.Stop;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -