diff options
Diffstat (limited to 'Src/Winamp/main_timer.cpp')
-rw-r--r-- | Src/Winamp/main_timer.cpp | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/Src/Winamp/main_timer.cpp b/Src/Winamp/main_timer.cpp new file mode 100644 index 00000000..12824cdf --- /dev/null +++ b/Src/Winamp/main_timer.cpp @@ -0,0 +1,133 @@ +#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; +} |