Für die Interessierten..
Fangen wir beim Anfang an. Und die Quelle
Integer VB = SmallInt in Delphi..
Initialisieren von WaveIn.
Code:
Public Type BUFFER
Data() As Integer
Header As WAVEHDR
End Type
Delphi-Quellcode:
TBuffer = Record
Data: array of SmallInt;
Header: TWAVEHDR;
end;
Code:
ReDim Buffers(3)
For i = 0 To UBound(Buffers)
With Buffers(i)
ReDim .Data(count - 1)
.Header.lpData = VarPtr(.Data(0))
.Header.dwBufferLength = count * 2
.Header.dwFlags = 0
.Header.dwLoops = 0
ret = waveInPrepareHeader(hWave, .Header, Len(.Header))
If ret Then ShowMessage ret: Exit Function
End With
Next i
For i = 0 To UBound(Buffers)
ret = waveInAddBuffer(hWave, Buffers(i).Header, Len(Buffers(i).Header))
If ret Then ShowMessage ret: Exit Function
Next i
ret = waveInStart(hWave)
If ret Then ShowMessage ret: Exit Function
InitCapture = True
Delphi-Quellcode:
SetLength(Buffers, 3);
for i := 0 to High(Buffers) do
begin
SetLength(Buffers[i].Data, round(count - 1));
Buffers[i].Header.lpData := @Buffers[i].Data[0];
Buffers[i].Header.dwBufferLength := round(count * 2);
Buffers[i].Header.dwFlags := 0;
Buffers[i].Header.dwLoops := 0;
mres := waveInPrepareHeader(WaveIn, @Buffers[i].Header, SizeOf(TWAVEHDR));
if mres <> 0 then
begin
SetMessage(mres);
exit;
end;
end;
for i := 0 to High(Buffers) do
begin
mres := waveInAddBuffer(WaveIn, @Buffers[i].Header, SizeOf(TWAVEHDR));
if mres <> 0 then
begin
SetMessage(mres);
exit;
end;
end;
mres := waveInStart(WaveIn);
if mres <> 0 then
begin
SetMessage(mres);
exit;
end;
Result := True;
warum er jetzt hier
verwendet entschließ sich mir sollte eigentlich das gleiche sein wie
Wenn nicht muss ich es noch ändern.
Auf die Zuweisungen des Headers habe ich keinen Einfluss die Datentypen sind so wie sie gegeben sind.
Ich muss DWORD in Delphi verwenden wo es angesagt ist und kann mich diesbezüglich nicht auf die Typen von VB6 einlassen.
Wenn das OK ist dann sollte die Initialisierung eigentlich korrekt sein.
Denke das ist übersichtlich und sollte für den Anfang nicht zu viel sein um zu überblicken ob alles OK ist.
Wenn ihr auch der Meinung seid geht es im nächsten Beitrag weiter.
gruss