tdraudio: add irq_enable flag, add pcmaudio library
runtime: disable interrupts on PTERM stdlib: check for error state in FileSize
This commit is contained in:
parent
7cc9ee807d
commit
5c00dfcec9
8 changed files with 390 additions and 21 deletions
47
examples/pcmtest.pas
Normal file
47
examples/pcmtest.pas
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{$H1536}
|
||||
program pcmtest;
|
||||
uses pcmaudio;
|
||||
|
||||
var filename:string;
|
||||
buf:SndBufPtr;
|
||||
f:file;
|
||||
size:integer;
|
||||
i:integer;
|
||||
c:char;
|
||||
sampleRate:integer;
|
||||
err:integer;
|
||||
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);
|
||||
|
||||
PlaySample(buf, sampleRate);
|
||||
|
||||
dispose(buf);
|
||||
end.
|
||||
60
examples/pcmtest2.pas
Normal file
60
examples/pcmtest2.pas
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{$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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue