📄 rtc.c
字号:
}
Idu_OsdDrawLine(g_psUserWinOSD, swHourX, swHourY, swMinuteX, swMinuteY, 3, 4);
#elif defined(YINKE_7A)||defined(YINKE_8D)
Idu_OsdDrawLine(g_psUserWinOSD, swHourX, swHourY, swMinuteX, swMinuteY, 3, 4);
#else
Idu_OsdDrawLine(g_psUserWinOSD, swHourX, swHourY, swMinuteX, swMinuteY, 3, 15);
#endif
swHourX = CLOCK_M_X + sinx[angle/6]* CLOCK_R3-4;
if (TEST_480X240p == 1)
swHourY = CLOCK_M_Y - cosx[angle/6]* CLOCK_R3*7/8-8;
else
{
#if defined(SJD_7A_16M)
swHourY = CLOCK_M_Y - cosx[angle/6]* CLOCK_R3*5/4-8;
#else
swHourY = CLOCK_M_Y - cosx[angle/6]* CLOCK_R3-8;
#endif
}
if (angle == 0 || angle > 270 )
swHourX -= 8;
#if defined(SJD_7A)||defined(SJD_7A_16M)
if (swHourY%2 == 0)
Idu_OsdPutStr(g_psUserWinOSD, bHourStr[angle/30], swHourX, swHourY, 4);
else
Idu_OsdPutStr(g_psUserWinOSD, bHourStr[angle/30], swHourX, swHourY+1, 4);
#else
Idu_OsdPutStr(g_psUserWinOSD, bHourStr[angle/30], swHourX, swHourY, 15);
#endif
}
else
{
#if !defined(SJD_7A)&&!defined(SJD_7A_16M)
Idu_OsdDrawLine(g_psUserWinOSD, swHourX, swHourY, swMinuteX, swMinuteY, 2, 1);
#endif
}
}
swHourX = CLOCK_M_X + sinx[g_pstClock->bHour%12*5+g_pstClock->bMinute/12]* CLOCK_HOUR_R;
if (TEST_480X240p == 1)
swHourY = CLOCK_M_Y - cosx[g_pstClock->bHour%12*5+g_pstClock->bMinute/12]* CLOCK_HOUR_R*7/8;
else
{
#if defined(SJD_7A_16M)
swHourY = CLOCK_M_Y - cosx[g_pstClock->bHour%12*5+g_pstClock->bMinute/12]* CLOCK_HOUR_R*5/4;
#else
swHourY = CLOCK_M_Y - cosx[g_pstClock->bHour%12*5+g_pstClock->bMinute/12]* CLOCK_HOUR_R;
#endif
}
swMinuteX = CLOCK_M_X + sinx[g_pstClock->bMinute]* CLOCK_MIN_R;
if (TEST_480X240p == 1)
swMinuteY = CLOCK_M_Y - cosx[g_pstClock->bMinute]* CLOCK_MIN_R*7/8;
else
{
#if defined(SJD_7A_16M)
swMinuteY = CLOCK_M_Y - cosx[g_pstClock->bMinute]* CLOCK_MIN_R*5/4;
#else
swMinuteY = CLOCK_M_Y - cosx[g_pstClock->bMinute]* CLOCK_MIN_R;
#endif
}
swSecondX = CLOCK_M_X + sinx[g_pstClock->bSecond]* CLOCK_SEC_R;
if (TEST_480X240p == 1)
swSecondY = CLOCK_M_Y - cosx[g_pstClock->bSecond]* CLOCK_SEC_R*7/8;
else
{
#if defined(SJD_7A_16M)
swSecondY = CLOCK_M_Y - cosx[g_pstClock->bSecond]* CLOCK_SEC_R*5/4;
#else
swSecondY = CLOCK_M_Y - cosx[g_pstClock->bSecond]* CLOCK_SEC_R;
#endif
}
#if defined(SJD_7A)||defined(SJD_7A_16M)
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swHourX, swHourY, 7, 4);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swMinuteX, swMinuteY, 5, 4);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swSecondX, swSecondY, 3, 4);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, CLOCK_M_X+3, CLOCK_M_Y+3, 7, 15);
#elif defined(YINKE_7A)||defined(YINKE_8D)
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swHourX, swHourY, 7, 14);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swMinuteX, swMinuteY, 5, 14);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swSecondX, swSecondY, 3, 14);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, CLOCK_M_X+2, CLOCK_M_Y+2, 7, 15);
#else
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swHourX, swHourY, 7, 15);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swMinuteX, swMinuteY, 5, 1);
Idu_OsdDrawLine(g_psUserWinOSD, CLOCK_M_X, CLOCK_M_Y, swSecondX, swSecondY, 3, 9);
#endif
UserWinOSD_Copy(Idu_GetOsdWin(),g_psUserWinOSD,CLOCK_M_X-CLOCK_R, CLOCK_M_Y-CLOCK_R,
CLOCK_R*2, CLOCK_R*2, CLOCK_M_X-CLOCK_R, CLOCK_M_Y-CLOCK_R);
//Show_Value1(GetCurMs2()- dwStartTime);
}
void Show_CurrentTime()
{
static BOOL boShowFlag = 0;
ST_OSDWIN *psWin = Idu_GetOsdWin();
BYTE bPrintBuf[22];
if (TEST_480X240p == 1 )
{
CLOCK_X = (g_wScreenDefaultWidth-120);
CLOCK_Y = 6;
}
else
{
CLOCK_X = (g_wScreenDefaultWidth-220);
CLOCK_Y = 14;
}
if ( g_sSetupMenu.bClockMode == 0 )
{
if ( boShowFlag )
{
boShowFlag = 0;
Clear_TimeBar();
}
return;
}
boShowFlag = 1;
if (g_pstClock->bMonth > 12 || g_pstClock->bMonth == 0)
g_pstClock->bMonth = 1;
if ( g_sSetupMenu.bClockMode == 1 )
mp_sprintf(bPrintBuf,"%02d %s %02d",g_pstClock->bDate,MonthStr[g_pstClock->bMonth-1],g_pstClock->wYear);
else
mp_sprintf(bPrintBuf,"%d:%02d %02d %s",g_pstClock->bHour,g_pstClock->bMinute,g_pstClock->bDate,MonthStr[g_pstClock->bMonth-1]);
Idu_OsdPaintArea(g_psUserWinOSD, CLOCK_X, CLOCK_Y, g_wScreenDefaultWidth-CLOCK_X-10, 20, 0);
//Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, 2, 2,15);
#if defined(ZCD_7A)||defined(ZCD_8D)||defined(HS_8D)
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, CLOCK_X, CLOCK_Y,15);
#else
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, CLOCK_X, CLOCK_Y,14);
#endif
UserWinOSD_Copy(psWin,g_psUserWinOSD,CLOCK_X,CLOCK_Y,
g_wScreenDefaultWidth-CLOCK_X-10,20,CLOCK_X,CLOCK_Y);
}
BYTE Get_MonthDays(BYTE year, BYTE month)
{
if (leap_year(year) && month == 2)
return 29;
else
return bDays[month-1];
}
BYTE leap_year(WORD i) // Duo
{
if ((i % 400) == 0)
return 1;
else if (((i % 4) == 0) && ((i % 100) != 0))
return 1;
else
return 0;
}
BYTE calendar_genaration(WORD bYear, BYTE bMonth, BYTE bDate) //Duo
{
WORD i, weekday;
BYTE leap_day;
if (bYear >= 2000)
bYear = bYear - 2000;
weekday = 6;
for (i = 0; i < bYear; i++)
{
if (leap_year(i))
weekday = weekday + 2;
else
weekday = weekday + 1;
}
if (leap_year(bYear))
leap_day = 1;
else
leap_day = 0;
for (i = 1; i < bMonth; i++)
{
weekday = weekday + bDays[i-1];
}
if (bMonth > 2)
weekday = weekday + leap_day;
weekday = (weekday + bDate - 1) % 7;
return(weekday);
}
#if DISP_TYPE == DISP_TYPE_DVI
BYTE *week[7] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };
#else
BYTE *week[7] = { "SU", "MO", "TU", "WE", "TH", "FR", "SA" };
#endif
void Show_Calendar(WORD wYear, BYTE bMonth, BYTE bDate) // Duo // Liuxu Modified
{
WORD CALENDAR_X ;
WORD CALENDAR_Y ;
WORD X,Y;
DWORD dwStartTime = GetCurMs2();
ST_OSDWIN *psWin;
psWin = Idu_GetOsdWin();
BYTE bPrintBuf[10];
BYTE monthday_num,weekday,i;
BYTE ColorIndex = 3;
#if defined(SJD_7A_16M)
WORD Width=360,Interval=48,Offset=20,Text=32,Title_Offset=94;
#else
WORD Width=320,Interval=44,Offset=20,Text=32,Title_Offset=94;
#endif
weekday = 5;
bCalendarOnFlag = 1;
if (TEST_480X240p == 1)
{
#if defined(SJD_7A)
Width = 232;
Interval = 32;
Offset = 14;
Text = 25;
Title_Offset=52;
#else
Width = 192;
Interval = 26;
Offset = 12;
Text = 20;
Title_Offset=42;
#endif
}
#if defined(ZCD_800x600)
CALENDAR_X = (g_wScreenDefaultWidth-Width-20);
CALENDAR_Y = (g_wScreenDefaultHeight-SETUP_MIDDLE_HEIGHT*8-SETUP_TOP_HEIGHT*2-30);
#elif defined(ZCD_8D)||defined(HS_8D)
CALENDAR_X = (g_wScreenDefaultWidth-Width-20+18);
CALENDAR_Y = (g_wScreenDefaultHeight-SETUP_MIDDLE_HEIGHT*8-SETUP_TOP_HEIGHT*2-30);
#elif defined(SJD_7A)
CALENDAR_X = (g_wScreenDefaultWidth-Width-20+2);
CALENDAR_Y = (g_wScreenDefaultHeight-SETUP_MIDDLE_HEIGHT*8-SETUP_TOP_HEIGHT*2-42);
#elif defined(SJD_7A_16M)
CALENDAR_X = (g_wScreenDefaultWidth-Width-20+6);
CALENDAR_Y = (g_wScreenDefaultHeight-SETUP_MIDDLE_HEIGHT*8-SETUP_TOP_HEIGHT*2-30);
#else
CALENDAR_X = (g_wScreenDefaultWidth-Width-20);
CALENDAR_Y = (g_wScreenDefaultHeight-SETUP_MIDDLE_HEIGHT*8-SETUP_TOP_HEIGHT*2-30);
#endif
Idu_OSD_DrawSetupTop(g_psUserWinOSD, CALENDAR_X, CALENDAR_Y, Width, SETUP_TOP_HEIGHT-4,0);
Y = CALENDAR_Y+SETUP_TOP_HEIGHT-4;
Idu_OSD_DrawSetupSelected(g_psUserWinOSD, CALENDAR_X, Y, Width,SETUP_MIDDLE_HEIGHT,0);
Y+= SETUP_MIDDLE_HEIGHT;
Idu_OSD_DrawSetupMiddle(g_psUserWinOSD, CALENDAR_X, Y, Width,SETUP_MIDDLE_HEIGHT*7,0);
Y+= SETUP_MIDDLE_HEIGHT*7;
Idu_OSD_DrawSetupBottom(g_psUserWinOSD, CALENDAR_X, Y, Width, SETUP_TOP_HEIGHT-4,0);
X = CALENDAR_X+Title_Offset;
Y = CALENDAR_Y+SETUP_TOP_HEIGHT;
if (TEST_480X240p == 1)
Y -= 1;
mp_sprintf(bPrintBuf,"%02d / %s %02d",bDate,MonthStr[bMonth-1],wYear);
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, X, Y,2);
X = CALENDAR_X + 10;
Y = CALENDAR_Y + SETUP_TOP_HEIGHT + SETUP_MIDDLE_HEIGHT;
if (TEST_480X240p == 1)
Y -= 1;
#if defined(SJD_7A_16M)
Idu_OsdPutStr(g_psUserWinOSD, week[0], X, Y, 15);
#else
Idu_OsdPutStr(g_psUserWinOSD, week[0], X, Y, 9);
#endif
X+=Interval;
Idu_OsdPutStr(g_psUserWinOSD, week[1], X, Y,5);
X+=Interval;
Idu_OsdPutStr(g_psUserWinOSD, week[2], X, Y,5);
X+=Interval;
Idu_OsdPutStr(g_psUserWinOSD, week[3], X, Y,5);
X+=Interval;
Idu_OsdPutStr(g_psUserWinOSD, week[4], X, Y,5);
X+=Interval;
Idu_OsdPutStr(g_psUserWinOSD, week[5], X, Y,5);
X+=Interval;
#if defined(SJD_7A_16M)
Idu_OsdPutStr(g_psUserWinOSD, week[6], X, Y,15);
#elif defined(SJD_7A)
Idu_OsdPutStr(g_psUserWinOSD, week[6], X, Y,9);
#elif defined(HS_8D)
Idu_OsdPutStr(g_psUserWinOSD, week[6], X, Y,14);
#else
Idu_OsdPutStr(g_psUserWinOSD, week[6], X, Y,7);
#endif
X = CALENDAR_X+6;
Y = CALENDAR_Y+SETUP_TOP_HEIGHT-4+SETUP_MIDDLE_HEIGHT*2;
#if defined(SJD_7A_16M)
Idu_OsdDrawLine(g_psUserWinOSD, X, Y-4, X+Width-12,Y-4, 1, 6);
Idu_OsdDrawLine(g_psUserWinOSD, X, Y-3, X+Width-12,Y-3, 1, 6);
#else
Idu_OsdDrawLine(g_psUserWinOSD, X, Y, X+Width-12,Y, 1, 6);
#endif
//Idu_OsdDrawLine(g_psUserWinOSD, X, Y+1, X+308,Y+1, 1, 6);
monthday_num = bDays[bMonth-1];
if ((bMonth == 2) && (leap_year(wYear)))
monthday_num = monthday_num + 1;
weekday = calendar_genaration(wYear, bMonth, 1);
X = CALENDAR_X + Offset + weekday * Interval;
Y = CALENDAR_Y+SETUP_TOP_HEIGHT+SETUP_MIDDLE_HEIGHT *2;
for (i = 0; i < monthday_num; i++)
{
if (weekday == 0)
{
#if defined(SJD_7A_16M)
ColorIndex = 15;
#else
ColorIndex = 9;
#endif
}
else if (weekday == 6)
#if defined(SJD_7A_16M)
ColorIndex = 15;
#elif defined(SJD_7A)
ColorIndex = 9;
#elif defined(HS_8D)
ColorIndex = 14;
#else
ColorIndex = 7;
#endif
else
ColorIndex = 5;
mp_sprintf(bPrintBuf,"%s",Data_TimeStr[i]);
if (i == bDate - 1)
{
Idu_OSD_DrawButton(g_psUserWinOSD, X-Text/5, Y-2, Text, SETUP_MIDDLE_HEIGHT-4);
if (TEST_480X240p == 1)
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, X, Y-1,2);
else
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, X, Y,2);
}
else
if (TEST_480X240p == 1)
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, X, Y-1,ColorIndex);
else
Idu_OsdPutStr(g_psUserWinOSD, bPrintBuf, X, Y,ColorIndex);
weekday = weekday + 1;
if (weekday == 7)
{
weekday = 0;
X = CALENDAR_X + Offset;
Y += SETUP_MIDDLE_HEIGHT;
}
else
X += Interval;
}
UserWinOSD_Copy(Idu_GetOsdWin(),g_psUserWinOSD,CALENDAR_X,CALENDAR_Y,Width,SETUP_MIDDLE_HEIGHT*8+SETUP_TOP_HEIGHT*2-8,CALENDAR_X,CALENDAR_Y);
//Show_Value1(GetCurMs2()- dwStartTime);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -