aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/main_timer.cpp
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/main_timer.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Winamp/main_timer.cpp')
-rw-r--r--Src/Winamp/main_timer.cpp133
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;
+}