unit
Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ACS_Classes, ACS_Vorbis, StdCtrls, ComCtrls,
ACS_DXAudio, Spin, ExtCtrls, ACS_Wave, ACS_FLAC, NewACIndicators, NewAC_DSP,
ACS_WinMedia;
type
TForm1 =
class
(TForm)
SelectFileButton: TButton;
RecordButton: TButton;
SaveDialog1: TSaveDialog;
StopButton: TButton;
Timer1: TTimer;
SpinEdit2: TSpinEdit;
Label3: TLabel;
Label4: TLabel;
PauseButton: TButton;
VorbisOut1: TVorbisOut;
WaveOut1: TWaveOut;
DXAudioIn1: TDXAudioIn;
GainProcessor1: TGainProcessor;
FastGainIndicator1: TFastGainIndicator;
Label2: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure
RecordButtonClick(Sender: TObject);
procedure
SaveDialog1TypeChange(Sender: TObject);
procedure
OutputDone(Sender: TComponent);
procedure
Timer1Timer(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
SpinEdit2Change(Sender: TObject);
procedure
SelectFileButtonClick(Sender: TObject);
procedure
FormClose(Sender: TObject;
var
Action: TCloseAction);
procedure
GainIndicator1GainData(Sender: TComponent);
procedure
CheckBox2Click(Sender: TObject);
private
Output : TAuFileOut;
public
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
TForm1
.
RecordButtonClick(Sender: TObject);
var
Ext :
String
;
begin
if
SaveDialog1
.
FileName =
''
then
SelectFileButtonClick(Sender);
Ext := ExtractFileExt(SaveDialog1
.
FileName);
Ext := AnsiLowerCase(Ext);
if
Ext =
''
then
raise
EAuException
.
Create(
'Iaaicii?ii ii?aaaeeou oi?iao aoiaiiai oaeea'
);
if
Ext =
'.ogg'
then
begin
Output := VorbisOut1;
end
;
Output
.
FileName := SaveDialog1
.
FileName;
RecordButton
.
Enabled :=
False
;
SelectFileButton
.
Enabled :=
False
;
SpinEdit2
.
Enabled :=
False
;
Output
.
Run;
label6
.
Caption := Format(
'Caienu a "%s"'
, [ExtractFileName(SaveDialog1
.
FileName)]);
end
;
procedure
TForm1
.
SaveDialog1TypeChange(Sender: TObject);
begin
SaveDialog1
.
DefaultExt :=
'.ogg'
end
;
procedure
TForm1
.
OutputDone(Sender: TComponent);
begin
SelectFileButton
.
Enabled :=
True
;
RecordButton
.
Enabled :=
True
;
SpinEdit2
.
Enabled :=
True
;
if
Output <>
nil
then
begin
Output
.
Stop(
False
);
end
;
end
;
procedure
TForm1
.
StopButtonClick(Sender: TObject);
begin
if
Output <>
nil
then
Output
.
Stop;
end
;
procedure
TForm1
.
Timer1Timer(Sender: TObject);
begin
if
Output <>
nil
then
begin
Label2
.
Caption := Format(
'%d naeoia, i?ioei'
, [Output
.
TimeElapsed]);
end
;
end
;
procedure
TForm1
.
FormCreate(Sender: TObject);
begin
SpinEdit2
.
MaxValue := DXAudioIn1
.
DeviceCount -
1
;
SpinEdit2
.
MinValue :=
0
;
SpinEdit2
.
Value :=
0
;
Label4
.
Caption := DXAudioIn1
.
DeviceName[SpinEdit2
.
Value];
Label5
.
Caption := FormatDateTime(
'Nae?an: '
+
'dd.mm.yyyy'
+
' hh.mm.ss AM/PM'
, Now());
end
;
procedure
TForm1
.
SpinEdit2Change(Sender: TObject);
begin
Label4
.
Caption := DXAudioIn1
.
DeviceName[SpinEdit2
.
Value];
DXAudioIn1
.
DeviceNumber := SpinEdit2
.
Value;
end
;
procedure
TForm1
.
SelectFileButtonClick(Sender: TObject);
begin
SaveDialog1
.
InitialDir := ExtractFilePath(paramstr(
0
));
SaveDialog1
.
FileName := FormatDateTime(
'dd.mm.yyyy '
+
'hh.mm.ss'
, Now());
SaveDialog1
.
Execute;
end
;
procedure
TForm1
.
FormClose(Sender: TObject;
var
Action: TCloseAction);
begin
if
Output <>
nil
then
begin
Output
.
Stop(
False
);
end
;
end
;
end
.