Old 23rd June 2006, 21:22   #1
Junior Member
Join Date: Sep 2005
Posts: 10

Hello, I have winamp v5 or w/e the latest version is, and my little external winamp controler is sending the ISFULLSTOP message to winamp. But no matter what it returns 0


#define IPC_ISFULLSTOP 400
/* (requires winamp 2.7+ I think)
** ret=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISFULLSTOP);
** useful for when you're an output plugin, and you want to see
** if the stop/close is a full stop, or just between tracks.
** returns nonzero if it's full, zero if it's just a new track.

And in my app it looks like this:

Public Function SongSwitch() As Boolean
Dim Value As Long
Value = SendMessage(hwnd_winamp, WM_WA_IPC, 0, IPC_ISFULLSTOP)
If Value = 0 Then SongSwitch = True Else SongSwitch = False
End Function

i've debugged it and I know hwnd_winamp is right, WM_WA_IPC = 1024, IPC_ISFULLSTOP = 400. Even when its stopped it returned 0 when its supposed to return non zero
Delusion is offline   Reply With Quote
Old 9th September 2006, 22:13   #2
Join Date: Sep 2006
Posts: 89
I see nobody has answered to this post. Well... I have the same question. In which cases should Winamp return a non zero. It always returns 0 for me as well.
Tardymo is offline   Reply With Quote
Old 21st September 2006, 21:19   #3
Join Date: Mar 2006
Posts: 52
Not sure if anyone is out there to answer this. I ran into the same problem and needed to find an alternate solution. What is it you're trying to do differently upon full stop?

Remote Speakers Output Plug-In
Stream audio from Nullsoft Winamp to the Apple AirPort Express (aka AirTunes)
emilles is offline   Reply With Quote
Old 8th November 2009, 21:09   #4
Junior Member
Join Date: Nov 2009
Location: Ukraine
Posts: 24
Hi! I have the same problem!

How can I learn about the full stop? How can I catch this moment?

Now I am doing so:

void CALLBACK ForIsFullStopTimerFunc(HWND hwnd, UINT message, UINT idTimer, DWORD dwTime)
KillTimer(0, idtTimerForIsFullStop);
idtTimerForIsFullStop = 0;

if (!SendMessage(pluginData.hwndParent, WM_WA_IPC, 0, IPC_ISPLAYING))

LRESULT CALLBACK HookWinampWndFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (message == WM_WA_MPEG_EOF && settings.active && settings.event == eventFullStop
// if (idtTimerForIsFullStop != 0) The length of the track less than 1 second!!! Aaaa
idtTimerForIsFullStop = SetTimer(0, 0, 1000, (TIMERPROC)ForIsFullStopTimerFunc);

But I do not like this decision. Since theoretically possible situation: user clicks on the button "Stop" in the first second

Why does not work the message IPC_ISFULLSTOP?

Thanks and sorry my poor english

Last edited by Ruzzz; 8th November 2009 at 22:25.
Ruzzz is offline   Reply With Quote
Go Back   Winamp & Shoutcast Forums > Developer Center > Winamp Development

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump