Noch eine Kleinigkeit: den Byte Array kann man evtl. auch durch den in SysUtils vordefinierten TBytes Datentyp ersetzen.
Nein geht nicht weil die Definition Byte ist.
Delphi-Quellcode:
TimedLevel = record
frequency : array [0..1, 0..SA_BUFFER_SIZE-1] of byte;
waveform : array [0..1, 0..SA_BUFFER_SIZE-1] of byte;
state : integer;
timeStamp : int64;
end;
Den Record kann ich nicht mal so eben umschreiben der ist vorgegeben.
so gehts..
Delphi-Quellcode:
for var i := 0 to 1023 do
begin
tl.frequency[0, i] := Trunc(Min(255, fft[i] * 512) * 25); // Byte geht nicht. fft ist single
tl.frequency[1, i] := tl.frequency[0, i];
end;
in C kann man das auf byte casten in Delphi nicht das verlangt round oder Trunc warum auch immer.