Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Delphi type nach c#

  Alt 6. Nov 2014, 05:16
Zitat:
Anders würde man das in Delphi auch nicht machen können.
In Delphi mache ich folgendes.

Delphi-Quellcode:
function TBASSBoxVis.GetWaveData: TWaveData;
begin
  // Get Wave data from stream
  if Basswasapi_Loaded and USE_WASAPI then
    BASS_WASAPI_GetData(@Result, 1024)
  else
  Bass_ChannelGetdata(BB_VisRenderThread.Stream, @Result, 1024);

end;

function TBASSBoxVis.GetWaveData32: TWaveData32;
begin
  // Get Wave data from 32 Bit stream
  if Basswasapi_Loaded and USE_WASAPI then
    BASS_WASAPI_GetData(@Result, 4096)
  else
  Bass_ChannelGetdata(BB_VisRenderThread.Stream, @Result, 4096);

end;
Wird wie folgt ausgeführt
Delphi-Quellcode:
    if (ChanInfo.flags and BASS_SAMPLE_FLOAT) = BASS_SAMPLE_FLOAT then
    begin
      FWaveData32 := GetWaveData32;
      for i := 0 to 1023 do
        if FWaveData32[i] > 0 then
          FWaveData[i] := round(Min(FWaveData32[i] * 32768, 32767))
        else
        FWaveData[i] := round(Max(FWaveData32[i] * 32768, -32768));
    end else
    FWaveData := GetWaveData;

    RenderOpenGL(@FWaveData, @FFFTData, BB_VisRenderThread.StreamPos);
Dort nehme ich einen pointer was ohne Probleme funktioniert.

Delphi-Quellcode:
function TBASSBoxVis.RenderOpenGL(WaveData, FFT: Pointer;
  MediaPos: Dword): BOOL;
Für wasapi gibt es eine Überladung..
Code:
public extern static int BASS_WASAPI_GetData(IntPtr buffer, int length);
Auch für die andere Funktion könnte ich einen Pointer verwenden
Code:
public extern static int BASS_ChannelGetData(int handle, IntPtr buffer, int length);
Dann wäre ich von der API her der von Delphi schon mal gleich.
Jetzt wäre dann nur noch zu klären was übergebe ich als Pointer.

In Delphi wäre das der Pointer auf TWaveData
In c# mag er das aber nicht wenn ich den Pointer auf die Class WaveData zurück gebe.
Zitat:
Error 1 'MediaPortal.UI.Presentation.Players.WaveData32' is a 'type' but is used like a 'variable' D:\MP 2.0\MediaPortal-2\MediaPortal\Source\UI\Players\BassPlayer\BassPla yer.cs 449 63 BassPlayer

Irgendwie hab ich in C# da kleine Probleme.. kann nur besser werden

gruss

Geändert von EWeiss ( 6. Nov 2014 um 05:33 Uhr)
  Mit Zitat antworten Zitat