BASS.NET API for the Un4seen BASS Audio LibraryBASSWADSPIpc EnumerationBASS.NET API for the Un4seen BASS Audio Library
Communication to Winamp is done via the classic Win32 Message API. Most DSP plugins use this to ask for certain values. These definitions are the most commonly used messages, which might be handled by the fake winamp window which we create.

Namespace: Un4seen.Bass.AddOn.WaDsp
Assembly: Bass.Net (in Bass.Net.dll) Version:

public enum BASSWADSPIpc

  Member nameValueDescription
BASS_WADSP_IPC_GETOUTPUTTIME105 IPC_GETOUTPUTTIME returns the position in milliseconds of the current song (mode = 0), or the song length, in seconds (mode = 1).Returns -1 if not playing or error.

int res = SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETOUTPUTTIME);

BASS_WADSP_IPC_ISPLAYING104 IPC_ISPLAYING returns the status of playback. If it returns 1, it is playing. if it returns 3, it is paused, if it returns 0, it is not playing.

int res = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISPLAYING);

BASS_WADSP_IPC_GETVERSION0 Version will be 0x20yx for winamp 2.yx. Versions previous to Winamp 2.0 typically use 0x1zyx for 1.zx versions. Weird, I know.

int version = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETVERSION);

BASS_WADSP_IPC_STARTPLAY102 Using IPC_STARTPLAY is like hitting 'Play' in Winamp, mostly.


BASS_WADSP_IPC_GETINFO126 IPC_GETINFO returns info about the current playing song. The value it returns depends on the value of 'mode' (wParam):
0Samplerate (i.e. 44100)
1Bitrate (i.e. 128)
2Channels (i.e. 2)

int inf=SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETINFO);

BASS_WADSP_IPC_GETLISTLENGTH124 IPC_GETLISTLENGTH returns the length of the current playlist, in tracks.

int length = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTLENGTH);

BASS_WADSP_IPC_GETLISTPOS125 IPC_GETLISTPOS returns the playlist position [index].

int pos=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTPOS);

BASS_WADSP_IPC_GETPLAYLISTFILE211 IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index]. Returns a pointer to it. Returns on error.

char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);

BASS_WADSP_IPC_GETPLAYLISTTITLE212 IPC_GETPLAYLISTTITLE gets the title of the playlist entry [index]. Returns a pointer to it. Returns on error.

char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTTITLE);

BASS_WADSP_IPC1024 Is defined as Win32's WM_USER an. When a message of this value arrives, we know, that we might handle it by ourself.
See Also