Tridora-CPU/examples/pcmtest2.pas
slederer 5c00dfcec9 tdraudio: add irq_enable flag, add pcmaudio library
runtime: disable interrupts on PTERM
stdlib: check for error state in FileSize
2025-10-07 00:37:53 +02:00

60 lines
958 B
ObjectPascal

{$H1536}
program pcmtest2;
uses pcmaudio;
var filename:string;
buf:SndBufPtr;
f:file;
size:integer;
i:integer;
c:char;
sampleRate:integer;
err:integer;
done:boolean;
begin
if ParamCount > 0 then
filename := ParamStr(1)
else
begin
write('Filename> ');
readln(filename);
end;
err := 1;
if ParamCount > 1 then
val(ParamStr(2), sampleRate, err);
if err > 0 then
sampleRate := 16000;
open(f, filename, ModeReadOnly);
size := FileSize(f);
new(buf, size);
buf^ := '';
write('Reading ', size, ' bytes...');
for i := 1 to size do
begin
read(f,c);
AppendChar(buf^,c);
end;
writeln;
close(f);
SampleQStart(buf, sampleRate);
write('Press Q to stop> ');
done := false;
while not done do
begin
read(c);
if upcase(c) = 'Q' then
done := true
else
writeln('Queue size: ', SampleQSize);
end;
SampleQStop;
dispose(buf);
end.