mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
132 lines
3.7 KiB
ObjectPascal
132 lines
3.7 KiB
ObjectPascal
unit Main;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, FileCtrl, ExtCtrls, Monkey;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
DriveList: TDriveComboBox;
|
|
FolderList: TDirectoryListBox;
|
|
FileList: TFileListBox;
|
|
CloseButton: TButton;
|
|
InfoBevel: TBevel;
|
|
IconImage: TImage;
|
|
ValidHeaderLabel: TLabel;
|
|
FileLengthLabel: TLabel;
|
|
ValidHeaderValue: TEdit;
|
|
ChannelModeValue: TEdit;
|
|
ChannelModeLabel: TLabel;
|
|
SampleRateLabel: TLabel;
|
|
BitsPerSampleLabel: TLabel;
|
|
DurationLabel: TLabel;
|
|
SampleRateValue: TEdit;
|
|
BitsPerSampleValue: TEdit;
|
|
DurationValue: TEdit;
|
|
FileLengthValue: TEdit;
|
|
CompressionLabel: TLabel;
|
|
CompressionValue: TEdit;
|
|
PeakLevelLabel: TLabel;
|
|
PeakLevelValue: TEdit;
|
|
FramesLabel: TLabel;
|
|
FramesValue: TEdit;
|
|
FlagsLabel: TLabel;
|
|
FlagsValue: TEdit;
|
|
SeekElementsLabel: TLabel;
|
|
SeekElementsValue: TEdit;
|
|
TotalSamplesLabel: TLabel;
|
|
TotalSamplesValue: TEdit;
|
|
procedure CloseButtonClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FileListChange(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
private
|
|
{ Private declarations }
|
|
Monkey: TMonkey;
|
|
procedure ClearAll;
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TMainForm.ClearAll;
|
|
begin
|
|
{ Clear all captions }
|
|
ValidHeaderValue.Text := '';
|
|
FileLengthValue.Text := '';
|
|
ChannelModeValue.Text := '';
|
|
SampleRateValue.Text := '';
|
|
BitsPerSampleValue.Text := '';
|
|
DurationValue.Text := '';
|
|
FlagsValue.Text := '';
|
|
FramesValue.Text := '';
|
|
TotalSamplesValue.Text := '';
|
|
PeakLevelValue.Text := '';
|
|
SeekElementsValue.Text := '';
|
|
CompressionValue.Text := '';
|
|
end;
|
|
|
|
procedure TMainForm.CloseButtonClick(Sender: TObject);
|
|
begin
|
|
{ Exit }
|
|
Close;
|
|
end;
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
{ Create object and reset captions }
|
|
Monkey := TMonkey.Create;
|
|
ClearAll;
|
|
end;
|
|
|
|
procedure TMainForm.FileListChange(Sender: TObject);
|
|
begin
|
|
{ Clear captions }
|
|
ClearAll;
|
|
if FileList.FileName = '' then exit;
|
|
if FileExists(FileList.FileName) then
|
|
{ Load Monkey's Audio data }
|
|
if Monkey.ReadFromFile(FileList.FileName) then
|
|
if Monkey.Valid then
|
|
begin
|
|
{ Fill captions }
|
|
ValidHeaderValue.Text := 'Yes, version ' + Monkey.Version;
|
|
FileLengthValue.Text := IntToStr(Monkey.FileLength) + ' bytes';
|
|
ChannelModeValue.Text := Monkey.ChannelMode;
|
|
SampleRateValue.Text := IntToStr(Monkey.Header.SampleRate) + ' hz';
|
|
BitsPerSampleValue.Text := IntToStr(Monkey.Bits) + ' bit';
|
|
DurationValue.Text := FormatFloat('.000', Monkey.Duration) + ' sec.';
|
|
FlagsValue.Text := IntToStr(Monkey.Header.Flags);
|
|
FramesValue.Text := IntToStr(Monkey.Header.Frames);
|
|
TotalSamplesValue.Text := IntToStr(Monkey.Samples);
|
|
PeakLevelValue.Text := FormatFloat('00.00', Monkey.Peak) + '% - ' +
|
|
IntToStr(Monkey.Header.PeakLevel);
|
|
SeekElementsValue.Text := IntToStr(Monkey.Header.SeekElements);
|
|
CompressionValue.Text := FormatFloat('00.00', Monkey.Ratio) + '% - ' +
|
|
Monkey.Compression;
|
|
end
|
|
else
|
|
{ Header not found }
|
|
ValidHeaderValue.Text := 'No'
|
|
else
|
|
{ Read error }
|
|
ShowMessage('Can not read header in the file: ' + FileList.FileName)
|
|
else
|
|
{ File does not exist }
|
|
ShowMessage('The file does not exist: ' + FileList.FileName);
|
|
end;
|
|
|
|
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
{ Free memory }
|
|
Monkey.Free;
|
|
end;
|
|
|
|
end.
|