AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte BassPlayerEx für mehrere Soundkarten...
Thema durchsuchen
Ansicht
Themen-Optionen

BassPlayerEx für mehrere Soundkarten...

Ein Thema von omata · begonnen am 15. Mär 2006 · letzter Beitrag vom 19. Jan 2008
Antwort Antwort
Seite 2 von 2     12   
omata
Registriert seit: 26. Aug 2004
Nachdem wir hier mal gestartet sind und der Thread nun doch langsam unübersichtlich wird, mache ich hier mal was neues auf.
Unübersichtlich deshalb, weil es mittlerweile zwei Varianten gibt. Beide haben ihre Vor- und Nachteile. Und leider habe ich keine Möglichkeit gefunden, alles in einem Projekt zu vereinen.

Dieser Thread beschäftigt sich mit dem Einsatz der Bass.dll (und nur dieser!). Dies alles funktioniert für mehr als eine Soundkarte (pro Anwendung). Allerdings können hier keine Funktionen aus Erweiterungs-Dlls für die Bass.dll eingesetzt werden. Wer mehr Spezielfunktionen benötigt und wem eine Soundkarte pro Anwendung reicht der sollte hier mal schauen.

Die Visualisierungen werden jetzt als Plugin nachgeladen. Die Pluginstruktur ist die von Winamp.
Die Plugins findet ihr hier.


Viele Grüsse
Thorsten
Miniaturansicht angehängter Grafiken
screen_108.jpg  
Angehängte Dateien
Dateityp: exe bassplayer_929.exe (361,5 KB, 200x aufgerufen)
Dateityp: zip bassplayerex__a_3_3__135.zip (314,1 KB, 246x aufgerufen)
 
omata

 
Delphi 7 Enterprise
 
#11
  Alt 4. Jan 2008, 13:05
Zitat von EWeiss:
Wenn erlaubt möchte ich das Plugin gerne Winamp5 Kompatibel machen.
Für die Bitmaps einen eigenen Ordner anlegen und das Window wenn möglich Transparent zu machen
also ohne Borderstyle.
gute Idee, da freu ich mich schon drauf.

Zitat von EWeiss:
Auch unter BassVis läuft es gut
Das freut mich besonders, dann habe ich da ja nicht zu großen Blödsinn verzapft.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Alt 4. Jan 2008, 13:13     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Alt 4. Jan 2008, 19:45     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
omata

 
Delphi 7 Enterprise
 
#12
  Alt 4. Jan 2008, 20:24
Ich habe hier kein Delphi zur Hand, habe aber gerade mal in den Code geschaut.

In der Unit VisDizzyU.pas ist doch folgende Funktion...
Delphi-Quellcode:
function render_vis(this_mod:PwinampVisModule):Integer;
var waveformData: PwaveformData;
    spectrumData: PspectrumData;
begin
  waveformData:=@this_mod^.waveformData;
  spectrumData:=@this_mod^.spectrumData;
  _FDizzy.Draw(spectrumData^, waveformData^);
  Result:=0;
end;
und dort wird das Draw aufgerufen.

Wo ist da jetzt das Problem? Hoffe das hilft dir weiter.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Alt 4. Jan 2008, 20:39     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
omata

 
Delphi 7 Enterprise
 
#13
  Alt 4. Jan 2008, 21:00
Da kann ich leider nicht helfen, weil ich keine Ahnung von Winamp5-Plugins habe.

Was ich nicht verstehe:
1. Wo kommt den Timer1 her, ich habe den da nicht eingebaut und wie sieht da die Event-Prozedur von aus?
2. Wieso kannst du da keinen Timer drauf machen, hast du doch gemacht?
3. Ich dachte immer das Winamp die Render-Prozedur aufruft und dann wird gezeichnet, ist das bei Winamp5
anders?

Also sorry für die dummen Fragen, aber ich habe zur Zeit kein Delphi zur Hand und von Winamp5 keine Ahnung.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Alt 4. Jan 2008, 21:09     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#14
  Alt 6. Jan 2008, 07:26
ich hab noch nen Macken gefunden, allerdings in dem BassPlayerEx. Wenn man das Virtualisierungsfenster öffnet, hat das nur eine einzige Sprache, und das ist Englisch... Ich hab da mal was vorbereitet:

Delphi-Quellcode:
// Unit VisPluginControl

type
  TVisControlForm = class(TForm)
  private
    _Sprachen: array[0..1, 1..8] of String; //Sprachen, (btnConfigure, Label3, btnStart,
                                            // Label2, btnStop, btnClose, Label1, Form.Caption)
  public
    procedure SetSprache(SprachCode: String);
    function GetAvailibleSprachen: TStringList;
  end;

implementation

constructor TVisControlForm.create(AOwner: TComponent; BassDll:TBassDll);
begin
...
//Sprachen, (btnConfigure, Label3, btnStart,
// Label2, btnStop, btnClose, Label1)

// EN (0)
_Sprachen[0][1] := 'Configure';
_Sprachen[0][2] := 'Description of library';
_Sprachen[0][3] := 'Start';
_Sprachen[0][4] := 'Available modules';
_Sprachen[0][5] := 'Stop';
_Sprachen[0][6] := 'Close';
_Sprachen[0][7] := 'Detected Plug-ins';
_Sprachen[0][8] := 'Visualization plug-in control';
// DE (1)
_Sprachen[1][1] := 'Konfigurieren';
_Sprachen[1][2] := 'Beschreibung';
_Sprachen[1][3] := 'Start';
_Sprachen[1][4] := 'Vorhandene Module';
_Sprachen[1][5] := 'Stop';
_Sprachen[1][6] := 'Schließen';
_Sprachen[1][7] := 'Gefundene Plug-ins';
_Sprachen[1][8] := 'Virtualisierungsplug-in auswählen';
end;

procedure TVisControlForm.SetSprache(SprachCode: String);
begin
//Sprachen, (btnConfigure, Label3, btnStart,
// Label2, btnStop, btnClose, Label1)

if Uppercase(SprachCode) = 'DEthen
begin
  btnConfigure.Caption := _Sprachen[1][1];
  Label3.Caption := _Sprachen[1][2];
  btnStart.Caption := _Sprachen[1][3];
  Label2.Caption := _Sprachen[1][4];
  btnStop.Caption := _Sprachen[1][5];
  btnClose.Caption := _Sprachen[1][6];
  Label1.Caption := _Sprachen[1][7];
  Self.Caption := _Sprachen[1][8];
end else if UpperCase(SprachCode) = 'ENthen
begin
  btnConfigure.Caption := _Sprachen[0][1];
  Label3.Caption := _Sprachen[0][2];
  btnStart.Caption := _Sprachen[0][3];
  Label2.Caption := _Sprachen[0][4];
  btnStop.Caption := _Sprachen[0][5];
  btnClose.Caption := _Sprachen[0][6];
  Label1.Caption := _Sprachen[0][7];
  Self.Caption := _Sprachen[0][8];
end;
end;

function TVisControlForm.GetAvailibleSprachen: TStringList;
var Liste: TStringList;
begin
Liste := TStringList.Create;
Liste.Add('EN');
Liste.Add('DE');
Result := Liste;
Liste.Free;
end;

end.
Um das nutzen zu können braucht man noch:
Delphi-Quellcode:
// Unit BassPlayerExU
type
  TBassPlayerEx = class(TComponent)
  public
    { Public declarations }
    procedure SetVisControlFormSprache(SprachCode: string);
    function GetVisControlFormSprachen: TStringList;
  end;

procedure TBassPlayerEx.SetVisControlFormSprache(SprachCode: string);
begin
  _VisControlForm.SetSprache(SprachCode);
end;

function TBassPlayerEx.GetVisControlFormSprachen: TStringList;
begin
  Result := _VisControlForm.GetAvailibleSprachen;
end;

end.
rollstuhlfahrer

PS: Das ganze könnte man auch noch mit TLanguages ( anhang ) und oder automatischer Erkennung der Systemsprache erweitern
Angehängte Dateien
Dateityp: pas tlanguages_142.pas (4,4 KB, 22x aufgerufen)
Bernhard
  Mit Zitat antworten Zitat
Alt 6. Jan 2008, 16:25     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#15
  Alt 6. Jan 2008, 18:49
jetzt, wo ich reingeschnuppert bin und schon viele Stunden Arbeit hinter mir liegen , bin ich immernoch überzeugt, eine Komponente wird sich hinbiegen lassen, aber der Aufwand ist arg groß... (Schätze mal: 1/2 Channel, 10 Band EQ, Fade zw. Channel1-Channel2, LiedInfo, ...)
Das ist harte Arbeit.
Bernhard
  Mit Zitat antworten Zitat
Alt 6. Jan 2008, 21:29     Erstellt von EWeiss
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Inhalt von Autor entfernt
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#16
  Alt 19. Jan 2008, 22:38
mal was ganz anderes:
Wie kann man denn mit dem BassPlayerEx AddOns einbinden (z.B.: BassWMA.dll)
Laut Werbung in [Komponente]TBassDllPlayer soll das hier gehen

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#17
  Alt 19. Jan 2008, 23:07
Siehe ersten Post in diesem Thread...

Zitat von omata:
Dieser Thread beschäftigt sich mit dem Einsatz der Bass.dll (und nur dieser!). Dies alles funktioniert für mehr als eine Soundkarte (pro Anwendung). Allerdings können hier keine Funktionen aus Erweiterungs-Dlls für die Bass.dll eingesetzt werden. Wer mehr Spezielfunktionen benötigt und wem eine Soundkarte pro Anwendung reicht der sollte hier mal schauen.
Zitat von rollstuhlfahrer:
Laut Werbung in [Komponente]TBassDllPlayer soll das hier gehen
Zitat von turboPASCAL:
Eine Erweiterte Komponente (+ Demo) BassPlayerEx zu diesem Thema hat omata geschrieben.
Mit ihr ist es möglich mehrere Sound-Kanäle gleichzeitig abzuspielen. Unbedingt Sehenswert. Preview
Wo steht das?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 15:36 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