• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Winamp Plugins

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

PolyPill

Senior Member
Joined
May 20, 2001
Location
Germany
I have a plugin that me and my friends wrote for XMMS but now we'd like to port it to windows. I have the most experience programming in windows so I was given the task. I'm using the GTK+ port to windows to make the GUI stuff work without me learning how to actually program windows GUIs, but that's not my problem.

My problem is I don't understand all the auido crap that winamp out puts to plugins, xmms is quite simple, only like 1 real array. I don't understand half the crap winamp out puts and they don't do a very good job of tell you. I've looked at some source code, but that doesn't say exactly what it is. Anyone have any experience with this or direct me to something that could help me?

Stuff like wavedataCH, and spectrumblah.

I can post source code if someone is willing to work with me on this.

*edit*

Also, I did make a port that compiled and everything, but f***s up when you try to run it, and since it's a plugin I can't run a debugger, so I have no clue where it's going wrong.
 
it might be beyond my scope but I am willing to look at what you got, maybe I can help, maybe not...
 
Here's a sample winamp plugin I got from the website. This is the section that I don't understand because I can't find any documentation. I mainly don't understand the spectrum and wavedata parts.

Here's a link if you want to check out the Linux plugin.
http://www.figz.com/gdancer/

This is found in the header file.

typedef struct winampVisModule {
char *description; // description of module
HWND hwndParent; // parent window (filled in by calling app)
HINSTANCE hDllInstance; // instance handle to this DLL (filled in by calling app)
int sRate; // sample rate (filled in by calling app)
int nCh; // number of channels (filled in...)
int latencyMs; // latency from call of RenderFrame to actual drawing
// (calling app looks at this value when getting data)
int delayMs; // delay between calls in ms

// the data is filled in according to the respective Nch entry
int spectrumNch;
int waveformNch;
unsigned char spectrumData[2][576];
unsigned char waveformData[2][576];

void (*Config)(struct winampVisModule *this_mod); // configuration dialog
int (*Init)(struct winampVisModule *this_mod); // 0 on success, creates window, etc
int (*Render)(struct winampVisModule *this_mod); // returns 0 if successful, 1 if vis should end
void (*Quit)(struct winampVisModule *this_mod); // call when done

void *userData; // user data, optional
} winampVisModul
 
Back