mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-11-28 07:50:52 +01:00
134 lines
3.4 KiB
C++
134 lines
3.4 KiB
C++
|
#include "main.h"
|
||
|
#include "stats.h"
|
||
|
|
||
|
// Display update, and menu popping up (vs killing)
|
||
|
LRESULT Main_OnTimer(HWND hwnd, UINT id)
|
||
|
{
|
||
|
#ifdef BENSKI_TEST_WM_PRINTCLIENT
|
||
|
if (id == 9999)
|
||
|
{
|
||
|
PrintWindow(hPLWindow);
|
||
|
}
|
||
|
#endif
|
||
|
if (id == 99)
|
||
|
{
|
||
|
// 250 ms after a fs application has settled on
|
||
|
KillTimer(hMainWindow, 99);
|
||
|
g_dropaot_timer_set = 0;
|
||
|
dropAOT();
|
||
|
return 0;
|
||
|
}
|
||
|
if (id == 100)
|
||
|
{
|
||
|
// 250 ms after a fs application has settled off
|
||
|
KillTimer(hMainWindow, 100);
|
||
|
g_restoreaot_timer_set = 0;
|
||
|
restoreAOT();
|
||
|
return 0;
|
||
|
}
|
||
|
if (id == 101)
|
||
|
{
|
||
|
KillTimer(hMainWindow, 101);
|
||
|
// 250ms after wm_displaychange, enforce config_keeponscreen, but not if the display change was because of a
|
||
|
// fullscreen app, like a game
|
||
|
if (!g_fsapp) set_aot(-1);
|
||
|
}
|
||
|
if (id == 200)
|
||
|
{
|
||
|
KillTimer(hMainWindow, 200);
|
||
|
if (!deferring_show)
|
||
|
return 0;
|
||
|
deferring_show = 0;
|
||
|
if (g_showcode == SW_SHOWMINIMIZED && config_taskbar)
|
||
|
{
|
||
|
ShowWindow(hMainWindow, SW_SHOWNORMAL);
|
||
|
}
|
||
|
ShowWindow(hMainWindow, g_showcode);
|
||
|
return 0;
|
||
|
}
|
||
|
if (id == STATS_TIMER)
|
||
|
{
|
||
|
stats.IncrementStat(Stats::TIME_RUNNING);
|
||
|
if (playing) stats.IncrementStat(Stats::TIME_PLAYING);
|
||
|
if (!config_minimized) stats.IncrementStat(Stats::TIME_VISIBLE);
|
||
|
if (!config_minimized && playing) stats.IncrementStat(Stats::TIME_VISIBLE_PLAYING);
|
||
|
//if (config_mb_open && !config_minimized) stats_timemb++;
|
||
|
//if (config_mb_open && !config_minimized && playing) stats_timembplaying++;
|
||
|
}
|
||
|
// removing the playing only check on this so rating menu updates will appear even when stopped
|
||
|
if ((id == UPDATE_DISPLAY_TIMER) || (id == UPDATE_DISPLAY_TIMER + 2) || (id == UPDATE_DISPLAY_TIMER + 4))
|
||
|
{
|
||
|
if (playing)
|
||
|
{
|
||
|
int a = (in_getouttime()) / 1000;
|
||
|
int l = in_getlength();
|
||
|
if (!config_minimized && (config_mw_open || config_pe_open))
|
||
|
{
|
||
|
static int t = -1;
|
||
|
static int la = -123;
|
||
|
static int ll = -15055;
|
||
|
if (paused)
|
||
|
{
|
||
|
if (t == -1) t = 10;
|
||
|
else t--;
|
||
|
}
|
||
|
else t = -1;
|
||
|
if (a != la || l != ll || (paused && t == 10) || id == UPDATE_DISPLAY_TIMER + 4) ui_drawtime(a, 0);
|
||
|
la = a;
|
||
|
ll = l;
|
||
|
}
|
||
|
if (g_brate != last_brate)
|
||
|
draw_bitmixrate(last_brate = g_brate, g_srate);
|
||
|
}
|
||
|
if (g_need_titleupd || (id == UPDATE_DISPLAY_TIMER + 2))
|
||
|
{
|
||
|
if (id == UPDATE_DISPLAY_TIMER + 2)
|
||
|
KillTimer(hMainWindow, id);
|
||
|
|
||
|
g_need_titleupd = 0;
|
||
|
PlayList_getcurrent_tupdate(FileName, FileTitle);
|
||
|
|
||
|
{
|
||
|
if (!do_volbar_active && !do_posbar_active && !do_panbar_active)
|
||
|
draw_songname(FileTitle, &ui_songposition, playing ? in_getlength() : PlayList_getcurrentlength());
|
||
|
}
|
||
|
set_caption(!playing, L"%s - %S", (config_dotasknum?FileTitleNum:FileTitle), app_name);
|
||
|
plEditSelect(PlayList_getPosition() | (1 << 30));
|
||
|
}
|
||
|
if (playing && g_need_infoupd)
|
||
|
{
|
||
|
int r = g_need_infoupd;
|
||
|
g_need_infoupd = 0;
|
||
|
|
||
|
if (r & 8)
|
||
|
{
|
||
|
last_brate = g_brate;
|
||
|
draw_bitmixrate(g_brate, g_srate);
|
||
|
draw_monostereo(g_nch);
|
||
|
}
|
||
|
if (r & 2)
|
||
|
draw_playicon(4);
|
||
|
else if (r & 1)
|
||
|
draw_playicon(1);
|
||
|
else
|
||
|
draw_playicon(8);
|
||
|
}
|
||
|
}
|
||
|
if (id == UPDATE_DISPLAY_TIMER + 1 && !config_minimized && !config_windowshade && config_mw_open)
|
||
|
if (config_autoscrollname&1)
|
||
|
{
|
||
|
ui_doscrolling();
|
||
|
}
|
||
|
if (id == 666)
|
||
|
{
|
||
|
KillTimer(hwnd, 666);
|
||
|
SendMessageW(hwnd, WM_COMMAND, WINAMP_MAINMENU, 0);
|
||
|
}
|
||
|
if (id == UPDATE_DISPLAY_TIMER + 1)
|
||
|
{
|
||
|
if (config_autoscrollname&2)
|
||
|
do_caption_autoscroll();
|
||
|
}
|
||
|
return 1;
|
||
|
}
|