time_handler.c

来自「reference about wireless design which is」· C语言 代码 · 共 47 行

C
47
字号
#include "winamp_remote_control.h"


TIME_DATA __xdata timeData;


void timeInit() {
    t4mgrInit(T4MGR_TICK_INTERVAL);
    timeData.t4mgrIndex = t4mgrSetupCallback(TIME_T4MGR_PERIOD, timeTickCallback);
} // timeInit




void timeSyncToWinamp(WINAMP_DISPLAY_DATA __xdata * wdd) {
    BYTE critSect = utilEnterCriticalSection();

    // Minutes
    timeData.minutes = wdd->minutes;

    // Seconds
    timeData.seconds = wdd->seconds;

    // Milliseconds
    timeData.milliseconds = wdd->milliseconds;
    t4mgrModifyCallback(timeData.t4mgrIndex, T4MGR_KEEP_PERIOD, 0);
    utilLeaveCriticalSection(critSect);
} // timeSyncToWinamp




void timeTickCallback(void) {
    if (waDispData.state & WDD_STATE_PLAYING_BM) {
        timeData.milliseconds += TIME_MSECS_PER_T4MGR_TICK;
        if (timeData.milliseconds >= 1000) {
            timeData.milliseconds -= 1000;
            if(timeData.milliseconds > 1000) { timeData.milliseconds = 0; }
            if (++timeData.seconds == 60) {
                timeData.seconds = 0;
                timeData.minutes++;
            }
            rcData.refreshTime = TRUE;
        }
    }
} // timeTickCallback

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?