Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
108
Src/Winamp/PlayQueue.cpp
Normal file
108
Src/Winamp/PlayQueue.cpp
Normal file
|
@ -0,0 +1,108 @@
|
|||
/** (c) Nullsoft, Inc. C O N F I D E N T I A L
|
||||
** Filename:
|
||||
** Project:
|
||||
** Description:
|
||||
** Author:
|
||||
** Created:
|
||||
**/
|
||||
|
||||
|
||||
#include "main.h"
|
||||
#include "resource.h"
|
||||
|
||||
extern void ConvertEOF();
|
||||
int PlayQueue_OnEOF()
|
||||
{
|
||||
if (m_converting)
|
||||
{
|
||||
ConvertEOF();
|
||||
return 0;
|
||||
}
|
||||
LRESULT nextItem;
|
||||
|
||||
g_fullstop = 1;
|
||||
|
||||
// for gen_jumpex mainly so it doesn't have to use ugly hacks
|
||||
nextItem = SendMessageW(hMainWindow, WM_WA_IPC, 0, IPC_GET_NEXT_PLITEM);
|
||||
|
||||
if (nextItem != -1) // check to see if anyone has overridden what track we play next
|
||||
{
|
||||
PlayList_setposition(nextItem);
|
||||
|
||||
PlayList_getcurrent(FileName, FileTitle, FileTitleNum);
|
||||
StartPlaying();
|
||||
}
|
||||
else // nope? just advanced to the next track
|
||||
{
|
||||
if (PlayList_getlength() && !g_stopaftercur)
|
||||
{
|
||||
if (!config_pladv) // if manual playlist advance is on
|
||||
{
|
||||
if (!config_repeat
|
||||
&& !PlayList_current_hidden()) // if this is a "horizontal" playlist, let the tracks play out
|
||||
goto fullstop;
|
||||
StartPlaying();
|
||||
}
|
||||
else if (!config_shuffle && PlayList_advance(HIDDEN_TRAP) < 0) // -33 is so i can trap playnext
|
||||
{
|
||||
if (config_repeat)
|
||||
{
|
||||
PlayList_setposition(0);
|
||||
PlayList_getcurrent(FileName, FileTitle, FileTitleNum);
|
||||
StartPlaying();
|
||||
}
|
||||
else
|
||||
{
|
||||
g_fullstop = 2;
|
||||
StopPlaying(0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (config_shuffle && !PlayList_current_hidden())
|
||||
{
|
||||
int lp = PlayList_getPosition();
|
||||
if ((PlayList_randpos(1) || PlayList_getlength() == 1) // this isn't really the place for this check
|
||||
&& !config_repeat)
|
||||
{
|
||||
g_fullstop = 2;
|
||||
StopPlaying(0);
|
||||
g_fullstop = 0;
|
||||
return 0;
|
||||
}
|
||||
if (PlayList_getPosition() == lp && PlayList_getlength() > 1)
|
||||
{
|
||||
PlayList_randpos(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 5.64 - if pledit is cleared, shuffle is off & we're playing
|
||||
// then we set playing to go back to the start of the playlist
|
||||
// as we get complaints it'll go to #2 instead of #1 as shown.
|
||||
if (plcleared)
|
||||
{
|
||||
plcleared = 0;
|
||||
PlayList_setposition(0);
|
||||
}
|
||||
}
|
||||
PlayList_getcurrent(FileName, FileTitle, FileTitleNum);
|
||||
StartPlaying();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HMENU m;
|
||||
fullstop:
|
||||
g_stopaftercur = 0;
|
||||
CheckMenuItem(main_menu, WINAMP_BUTTON4_CTRL, MF_UNCHECKED);
|
||||
m = GetSubMenu(top_menu, 3);
|
||||
CheckMenuItem(m, WINAMP_BUTTON4_CTRL, MF_UNCHECKED);
|
||||
g_fullstop = 2;
|
||||
StopPlaying(0);
|
||||
}
|
||||
}
|
||||
|
||||
g_fullstop = 0;
|
||||
return 1;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue