AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winmap FFT Daten ?

Ein Thema von Blamaster · begonnen am 8. Aug 2009 · letzter Beitrag vom 11. Aug 2009
Antwort Antwort
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Winmap FFT Daten ?

  Alt 8. Aug 2009, 16:25
Hi,

ich benötige eine ganz einfache Dll die mir die FFT Daten aus Winamp ausliest.

Dazu habe ich ein paar Fragen kann eine Dll doppelt eingebunden werden ?

Also auf der einen Seite in Winamp als Vis Plugin um an die FFT Daten zu kommen und andereseits in ein Delphiprogramm, welches dann mit einem Timer alle x ms die FFT Daten abholt ?

Wenn das möglich ist, gibt es dann eine Delphidokumentation zu der aktuellen Winamp Plugin Schnittstelle ?

mfg Yannic
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Winmap FFT Daten ?

  Alt 8. Aug 2009, 17:39
Eine DLL "doppelt" einbinden geht nicht. Du müsstest dann auf eine Form der IPC zurückgreifen, wobei sich hier wohl eine Mischung aus MMF und Messages empfiehlt. (Daten ins MMF, und via Message signalisieren dass neue Daten vollständig da sind.)

Die aktuellste Definition von VisPlugins dürftest du auf der WinAmp Seite selbst finden. Falls diese nur in C vorliegt sollte eine Übersetzung nicht allzu kompliziert ausfallen dürfen, da es ja idR nur eine Hand voll Funktionen sind - bei weitem nicht so ein Klopper wie z.B. die Direct3D Schnittstelle
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#3

Re: Winmap FFT Daten ?

  Alt 10. Aug 2009, 17:35
Hi,

könnte ich nicht im Grunde auch nur Messages nehmen ?

Die Dll könnte dann ja 2 Parameter übergeben.

Parameter 1: Zeiger auf Array "Index"
Parameter 2: Wert der ins Array soll.

Dann hätte man ja auch nicht das Problem, dass man noch verhindern müsste das Programm 2 die Daten aus dem Speicher holt wenn Programm 1 die Daten noch schreibt.

Ich habe jetzt recht lange gesucht, um was passendes für die Winamp dll zu finden. Das ganze war allerdings bis jetzt erfolglos.

Hat jemand da schonmal was passendes gefunden ?

mfg Yannic
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

Re: Winmap FFT Daten ?

  Alt 10. Aug 2009, 17:40
Zitat:
könnte ich nicht im Grunde auch nur Messages nehmen ?
Ja. Und wenn es ein paar mehr Daten werden, evtl. WM_COPYDATA anschauen. Oder halt einen MMF benutzen mit Events/WaitForSingleObject (glaube ich).

Zitat:
Ich habe jetzt recht lange gesucht, um was passendes für die Winamp dll zu finden. Das ganze war allerdings bis jetzt erfolglos.
Was exakt suchst du denn? Plugins für Winamp in Delphi, bzw. Doku dazu, gibt Google doch einiges aus?
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#5

Re: Winmap FFT Daten ?

  Alt 10. Aug 2009, 19:53
Hi,

Danke schonmal

Ich suche im prinzip nur ein Beispiel bzw. den Funktionsaufruf um an die FFT Daten zu kommen. Soweit ich weiß liefert Winamp die ja schön in einem Array.

mfg Yannic
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Winmap FFT Daten ?

  Alt 11. Aug 2009, 02:38
Was die Messages mit dem Pointer angeht: So wird's nicht gehen. Die DLL wird ja im Prozess von WinAmp gestartet, und hat somit den virtuellen Speicher mit WinAmp - nicht mit deinem Programm. Das heisst wenn du da jetzt einfach so einen Pointer rüber wirfst, zeigt der in deiner Prozessumgebung auf zufälligen Krams und wird höchstwahrscheinlich eine AV begünstigen.
Wenn nur via Messages, dann wie schon erwähnt mit WM_COPYDATA. Wobei ich ein MMF noch immer bevorzugen würde.

@FFT: Ich hab mal vor einiger Zeit mit einem mittlerweile veralteten Header gearbeitet. Dort war es dann so, dass man nich mit Funktionsaufrufen an WinAmp herangetreten ist, sondern man hat Pointer auf diverse Puffer übergeben - z.B. ein Array in das die FFT Daten sollen. Es gab da eine Hand voll Prozeduren die so eine DLL zu exportieren hatte, u.a. eine Init() die diese Dinge zu erledigen hat. Dann gibt's da noch eine "Render" Prozedur die von WinAmp dann aufgerufen wird, wenn es denkt dass sich dein Plugin mal neu zeichenen könnte. Das ist dann der Zeitpunkt zu dem du weisst dass deine Datenpuffer aktuell sind.
Ich vermute mal, dass sich an der grundlegenden Art und Weise nicht so arg viel getan hat.


PS: http://dev.winamp.com/plugin-developers. Da gibt's auch nen SDK. War jetzt nicht SO schwer zu finden
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:18 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