AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TBassDllPlayer + Visualisierung (Komponenten)
Thema durchsuchen
Ansicht
Themen-Optionen

TBassDllPlayer + Visualisierung (Komponenten)

Ein Thema von Gandalfus · begonnen am 29. Aug 2005 · letzter Beitrag vom 22. Okt 2005
 
Gandalfus

Registriert seit: 19. Apr 2003
407 Beiträge
 
Delphi 2006 Professional
 
#1

TBassDllPlayer + Visualisierung (Komponenten)

  Alt 29. Aug 2005, 11:46
Ein Player der auf der bass.dll basiert (Lizens der bass.dll beachten) und eine Visualisierungs Komponente.

Bei der Visualisierungs Komponente ist wichtig, dass die Felder Bassdllplayer und VisualisierungsEinstellungen zugeordnet sind.

Für die VIsualierung kann man dlls als Plugin laden.

Ein Beispiel für solch eine Dll:

Delphi-Quellcode:
library Project1;

{keine normalen strings übergeben sonder nur PChar}

uses
  Windows, Classes, Graphics,
  math, Controls, Messages, ExtCtrls, mmsystem, Dialogs, Contnrs, SysUtils;
{$R *.res}

type
  TFFTData= array[0..256] of Extended;
  TWaveData = array [ 0..2048] of DWORD;

  TFFTandWaveData = record
    FFTdata: TFFTdata; //zwischen 0 und 1
    waveData: TwaveData;
    leftpeak,rightpeak: dword; {von 0 bis 32768}
  end;

function getVersion: integer; stdcall;
begin
  result := 1;
end;

procedure draw(CanvasHandle: HDC; Backgroundcolor,Bordercolor,BalkenColor: Graphics.TColor; width,height: integer; var FFTData: TFFTandWaveData); stdcall;
var
  data: TFFTdata;
  i: integer;
  TempBitmap: TBitmap;
begin
  IF CanvasHandle=0 then exit;
  data := FFTData.FFTdata;

  TempBitmap := TBitmap.create;
  TempBitmap.Width := width;
  TempBitmap.height := height;

  for i := 1 to 256 do
  begin
    Data[i] := Data[i]*ln(i)*4*((height));
    if Data[i] > (height) then Data[i] := (height);
  end;
  TempBitmap.canvas.pen.color := Bordercolor;
  TempBitmap.canvas.brush.color := Backgroundcolor;
  TempBitmap.canvas.Rectangle(0,0,width,height);
  TempBitmap.canvas.pen.color := BalkenColor;
  for i := 1 to 256 do
  begin
    TempBitmap.Canvas.MoveTo(i,height);
    TempBitmap.canvas.lineTo(i,(height)-round(Data[i]));
  end;

  BitBlt(CanvasHandle, 0, 0, TempBitmap.width, TempBitmap.height, TempBitmap.canvas.Handle , 0, 0 , SRCCOPY);

  TempBitmap.free;
end;

exports
  draw;
  getVersion;

begin

end.
Edit: Die Procedure für die VersionsKontrolle wurde irgendwie gelöscht. Ich hab sie jetzt hinzugefügt.

Dann die dll noch in xyz.bvis umbenen und danach kann kann sie über das popup Menüe geladen werden.
Wäre nett wenn sich Leute finden würden, die Plugins programmieren würden.



mfg
Angehängte Dateien
Dateityp: zip test_391.zip (189,5 KB, 136x aufgerufen)
Dateityp: zip komponente_update_502.zip (184,5 KB, 179x aufgerufen)
Dateityp: zip demo_539.zip (339,7 KB, 210x aufgerufen)
Besucht doch mal meine Homepage
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz