亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdi_main.c

?? Gui of OSD programming
?? C
?? 第 1 頁 / 共 4 頁
字號:
/******************************************************************************/
/**
 * @brief   Clears the TDC chapter.
 *
 * @param   --
 *
 * @return  --
 ******************************************************************************/

void GDI_ClearScreen(void)
{
   uint16_t      sizeOfTdc = TDC_SIZE;
   data uint16_t i         = 0;
   data uint8_t  buf2      = 0x01; /* foreground colour light grey (DEFAULT) */

#ifdef __DEMO_LOOP__
   if (demoSequenceStatus_g != DEMO_END)                 /* demo loop active */
   {
      sizeOfTdc = TDC_SIZE - (NUM_COLS*3); /* don't clear row 24 of OSD area */
   }
#endif

   if (globalState_g == SERVICEMODE)
      buf2 = 0x1C;                            /* set foreground colour white */

   do
   {
      DisplayBuffer[i++] = CHR_SPACE;  /* Cdw byte 0 */
      DisplayBuffer[i++] = 0x00;       /* Cdw byte 1 */
      DisplayBuffer[i++] = buf2;       /* Cdw byte 2 */
   }
   while (i < sizeOfTdc);
   if(gstView.info_key==VISIBLE) //wzh2006-04-20
   	{
   	   SDH1=0;
   	   SDH0 = GDI_GetSdh();
	   gstView.info_key=INVISIBLE;
	   
   	}
}



/******************************************************************************/
/**
 * @brief   Paints a rectangle on screen with corresponding Cdw attributes for
 *          the menu system.
 *
 * @param   type [in] type of rectangle
 *
 * @return  --
 ******************************************************************************/

void GDI_Rectangle(const gdi_rectangles_t type)
{
   switch (type)
   {
      case GDI_RECTANGLE_HEADER_FOOTER:               /* header and helpline */
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor = COLOR6;
         cdw_g.bBgColor = COLOR2;
         break;

      case GDI_RECTANGLE_HELP:            /* help menu background/foreground */
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor = COLOR2;
         cdw_g.bBgColor = COLOR5;
         break;

      case GDI_CLEAR_RECTANGLE:                           /* clear rectangle */
         GDI_SetCdwAttrDefaults(CLEAR_SCREEN);
         break;

      case GDI_RECTANGLE_WELCOME:
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor = COLOR3;
         cdw_g.bBgColor = COLOR1;
         break;

      case GDI_RECTANGLE_CURSOR:
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor = COLOR3;
         cdw_g.bBgColor = COLOR5;
         if (rectangle_g.StartRow != rectangle_g.StopRow)
            cdw_g.bDoubleHeight = SYS_TRUE;
         break;

      case GDI_RECTANGLE_BAR:
         cdw_g.bClutSelect = SUBCLUT3;
         cdw_g.bFgColor = COLOR4;
         cdw_g.bBgColor = COLOR2;
         break;
      case GDI_RECTANGLE_BIG_ICONS:
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor = COLOR1;
         cdw_g.bBgColor = COLOR1;
         break;
      case GDI_RECTANGLE_BACKGROUND:         /* Fall through */
      default:                               /* normal menu background */
         cdw_g.bClutSelect = SUBCLUT2;
         cdw_g.bFgColor    = COLOR7;
         cdw_g.bBgColor    = COLOR1;
   }

   for (activeRow_g = rectangle_g.StartRow;
        activeRow_g <= rectangle_g.StopRow;
        activeRow_g++)
   {
      for (activeCol_g = rectangle_g.StartCol;
           activeCol_g <= rectangle_g.StopCol;
           activeCol_g++)
      {
         GDI_WriteCdwAttributes();
         if (type != GDI_RECTANGLE_CURSOR && type != GDI_RECTANGLE_BAR)
            GDI_WriteCdwCharacter(CHR_SPACE);
      }

      if (cdw_g.bDoubleHeight == SYS_TRUE)
         activeRow_g++;
   }
   GDI_SetCdwAttrDefaults(OSD_TV);
}



/******************************************************************************/
/**
 * @brief   Paints a bar for analogue values (e.g. volume).
 *
 * @param   value  [in] length of the bar (0-55)
 *
 * @return  --
 ******************************************************************************/

void GDI_DrawBar(uint8_t value)
{
   uint8_t cntfull;
   uint8_t cntpart;
   uint8_t i;
   uint16_t barChar[6] = {CHR_BAR_EMPTY,
                          CHR_BAR1,
                          CHR_BAR2,
                          CHR_BAR3,
                          CHR_BAR4,
                          CHR_BAR5};

   if (value > MAXBARVALUE)
      value = MAXBARVALUE;

   cntfull = (value / 6);       /*  count full chars to display */
   cntpart = (value % 6);       /*  count part chars to display */

   cdw_g.bClutSelect = SUBCLUT7;
   
#ifdef __X_RAM__
   if (xRamLanguage_g == SYS_TRUE)
   {
     activeRow_g++;
     GDI_WriteCdwAttrLength(13);
     activeRow_g--;
     cdw_g.bDoubleHeight = SYS_TRUE;
   }
#endif
   GDI_WriteCdwAttrLength(13);
   /* write "start" character */
   GDI_WriteCdwCharacter(CHR_BAR_START);

   /* write "end" character */
   activeCol_g += 12;
   GDI_WriteCdwCharacter(CHR_END);
   activeCol_g -= 11;

   /* write "full" characters */
   for (i = 0; i < cntfull; i++)
   {
      GDI_WriteCdwCharacter(CHR_BAR6);
      activeCol_g++;
   }

   if (cntfull < 11)
   {
      /* write "end" character */
      GDI_WriteCdwCharacter(barChar[cntpart]);
      activeCol_g++;
      cntfull++;                    /* for remaining empty chars calculation */
   }

   /* write remaining empty chars */
   for (i = cntfull; i < 11; i++)
   {
      GDI_WriteCdwCharacter(CHR_BAR_EMPTY);
      activeCol_g++;
   }
   cdw_g.bDoubleHeight = SYS_FALSE;
}



/******************************************************************************/
/**
 * @brief   Paints a marker for analogue values (e.g. balance).
 *
 * @param   value  [in] length of the bar (0-55)
 *
 * @return  --
 ******************************************************************************/

void GDI_DrawMarker(uint8_t value)
{
   uint8_t cntfull, cntpart;
   uint8_t i, j;
   uint16_t markerCharLeft[6] = {
                                 CHR_MARKER6,
                                 CHR_MARKER1,
                                 CHR_MARKER2,
                                 CHR_MARKER3,
                                 CHR_MARKER4,
                                 CHR_MARKER5};

   uint16_t markerCharRight[6] = {
                                  CHR_BAR6,
                                  CHR_BAR1,
                                  CHR_BAR2,
                                  CHR_BAR3,
                                  CHR_BAR4,
                                  CHR_BAR5};

   cdw_g.bClutSelect = SUBCLUT7;
   GDI_WriteCdwAttrLength(13);
#ifdef __X_RAM__
   if (xRamLanguage_g == SYS_TRUE)
   {
     activeRow_g++;
     GDI_WriteCdwAttrLength(13);
     activeRow_g--;
     cdw_g.bDoubleHeight = SYS_TRUE;
   }
#endif

   if (value > MAXMARKERVALUE)
      value = MAXMARKERVALUE;

   /* write "start" character */
   GDI_WriteCdwCharacter(CHR_MARKER_START);
   /* write "end" character */
   activeCol_g += 12;
   GDI_WriteCdwCharacter(CHR_END);
   activeCol_g -= 6;

   if (value == (MAXMARKERVALUE + 1) / 2)
   {
      activeCol_g -= 5;
      for (i = 0; i < 11; i++)
      {
         if (i == 5)
            GDI_WriteCdwCharacter(CHR_MID_MARKER);
         else
            GDI_WriteCdwCharacter(CHR_BAR_EMPTY); /* fill empty */
         activeCol_g++;
      }
      return;
   }

   if (value < (MAXMARKERVALUE + 1) / 2)
   {
      value = (MAXMARKERVALUE + 1) / 2 - value;
      j = 1;   /* negativ marker */
   }
   else
   {
      value -= (MAXMARKERVALUE + 1) / 2;
      j = 0;   /* positiv marker */
   }

   cntfull = value / 6;       /*  count full chars to display */
   cntpart = value % 6;       /*  count part chars to display */

   if (j == 1)
   {
      for (i = 0; i < 5; i++)
      {
         activeCol_g++;
         GDI_WriteCdwCharacter(CHR_BAR_EMPTY); /* fill empty right */
      }
      activeCol_g -= 5;
      GDI_WriteCdwCharacter(CHR_MID_LEFT);
      i = 0;
      for (; cntfull > 0; cntfull--) /* full chars */
      {
         activeCol_g--;
         GDI_WriteCdwCharacter(CHR_MARKER6);
         i++;
      }
      if (i < 5)
      {
         if (cntpart != 0)
         {
            activeCol_g--;
            GDI_WriteCdwCharacter(markerCharLeft[cntpart]); /* part char */
            i++;
         }
         while (i < 5)
         {
            activeCol_g--;
            GDI_WriteCdwCharacter(CHR_BAR_EMPTY); /* fill empty left */
            i++;
         }
      }
   }
   else
   {
      for (i = 0; i < 5; i++)
      {
         activeCol_g--;
         GDI_WriteCdwCharacter(CHR_BAR_EMPTY); /* fill empty left */
      }
      activeCol_g += 5;
      GDI_WriteCdwCharacter(CHR_MID_RIGHT);
      i = 0;
      for (; cntfull > 0; cntfull--) /* full chars */
      {
         activeCol_g++;
         GDI_WriteCdwCharacter(CHR_BAR6);
         i++;
      }
      if (i < 5)
      {
         if (cntpart != 0)
         {
            activeCol_g++;
            GDI_WriteCdwCharacter(markerCharRight[cntpart]); /* part char */
            i++;
         }
         while (i < 5)
         {
            activeCol_g++;
            GDI_WriteCdwCharacter(CHR_BAR_EMPTY); /* fill empty left */
            i++;
         }
      }
   }
   cdw_g.bDoubleHeight = SYS_FALSE;
}



/******************************************************************************/
/**
 * @brief   Enables the OSD output
 *
 * @param   --
 *
 * @return  --
 ******************************************************************************/

void GDI_EnableOsd(void)
{
   /* enable OSD */
   OSD_CTRL |= 0x6c;
}



/******************************************************************************/
/**
 * @brief   Disables the OSD output
 *
 * @param   --
 *
 * @return  --
 ******************************************************************************/

void GDI_DisableOsd(void)
{
#ifdef __VCHIP__
   if (VCHIP_GetLockState() == SYS_TRUE)
      OSD_CTRL &= 0xFB;
   else
#endif

#ifndef __OSD_DEBUG__
#ifndef DEBUG_IN_OSD
   OSD_CTRL &= 0xFA;
#endif
#endif
;
}



/******************************************************************************/
/**
 * @brief   Switches to OSD mode.
 *
 * @param   --
 *
 * @return  --
 ******************************************************************************/

void GDI_SwitchOsdOn(void)
{
   if (TEXT_IsModeActive(TEXT_MODE_OSD) == SYS_FALSE)
   {
      GDI_ClearScreen();
      GDI_SetGdw(GDW_OSD);
      osd();
   }
#ifdef __CAPTION__
#ifdef __X_RAM__
   if (xRamLanguage_g == SYS_TRUE)
      CORE_SwitchToXRamFont();
   else
#endif
   CORE_SwitchToRomFont();

   GDI_SetGdw(GDW_OSD);
   OSD_CTRL |= 0x0D;  /* enable OSD */
#endif
}



/******************************************************************************/
/**
 * @brief   Switches the OSD mode off.
 *
 * @param   --
 *
 * @return  --
 ******************************************************************************/

void GDI_SwitchOsdOff(void)
{
   if (TEXT_IsModeActive(TEXT_MODE_OSD) == SYS_TRUE)
      osd();                          /* toggle command to switch osd on/off */

   GDI_ClearScreen();
#ifdef __CAPTION__
   /* HandleFont(); */
   if (dataServiceMode_g == DATA_SERVICE_TELETEXT)
   {
      GDI_SetGdw(GDW_TV);
   }
   else
   {
      if (RomFontPointer[1] == 0x00)               /* Teletext font active ? */
      {
         SwitchToCaptionFont();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久亚洲毛片 | 男男gaygay亚洲| 国产呦精品一区二区三区网站| 色欲综合视频天天天| 久久综合狠狠综合久久综合88| 亚洲综合一区二区| 中文字幕在线不卡国产视频| 国产精品乱人伦| 久久精品国产一区二区三区免费看| 久久国产精品色婷婷| 在线观看视频一区二区| 欧美亚洲自拍偷拍| 3751色影院一区二区三区| 9191精品国产综合久久久久久 | 亚洲人成网站精品片在线观看| 中文字幕av不卡| 麻豆精品国产91久久久久久| 欧美日韩精品一区二区三区蜜桃 | 精品国产乱码久久久久久影片| 亚洲最大成人网4388xx| 99久久精品99国产精品| 中文字幕一区二区三区四区不卡 | 久久久夜色精品亚洲| 视频一区在线播放| 欧美日韩精品一区视频| 亚洲一区在线看| 在线看不卡av| 欧美一区二区三区免费大片| 亚洲国产另类精品专区| 91国产成人在线| 久久婷婷国产综合国色天香| 中文字幕一区二区三区不卡| 成人污视频在线观看| 国产精品色眯眯| 婷婷中文字幕综合| 欧美精品在线一区二区| 青娱乐精品视频| 欧美一级二级三级蜜桃| 欧美激情中文字幕| av电影一区二区| 亚洲色图在线看| 久久99精品网久久| 久久精品在这里| 日韩精品欧美精品| 欧美一区二区三区啪啪| 日韩伦理av电影| 欧美制服丝袜第一页| 久久夜色精品国产噜噜av| 精品一区中文字幕| 中文字幕制服丝袜成人av| 91在线国内视频| 首页国产欧美日韩丝袜| 26uuu亚洲综合色| 亚洲成人av一区二区| 成人亚洲一区二区一| 日韩一区二区三区观看| 国产激情一区二区三区四区 | 精品国产人成亚洲区| 一区二区三区不卡在线观看 | 日本高清不卡在线观看| 婷婷成人综合网| 国产日韩高清在线| 麻豆视频一区二区| 国产精品无遮挡| 韩国三级中文字幕hd久久精品| 欧美亚洲国产一区在线观看网站 | 一区二区三区四区蜜桃| 高清免费成人av| 亚洲综合在线第一页| 久久综合九色综合欧美98| caoporm超碰国产精品| 蜜桃精品在线观看| 亚洲裸体xxx| 26uuu亚洲| 欧美日韩高清一区| 亚洲国产一区二区三区| 国产日韩欧美电影| 国产精选一区二区三区| 一级女性全黄久久生活片免费| 久久精品一区蜜桃臀影院| 色婷婷亚洲精品| 国产精品一品二品| 国产日韩欧美一区二区三区乱码 | 亚洲第一激情av| 中文字幕免费不卡在线| 国产成人精品免费| 日本色综合中文字幕| 国产精品电影一区二区三区| 日韩午夜激情视频| 欧美色区777第一页| 国产91精品一区二区| 久久91精品国产91久久小草| 精品粉嫩超白一线天av| 欧美午夜精品久久久| 亚洲香蕉伊在人在线观| 69堂国产成人免费视频| 久久精品久久久精品美女| 亚洲一级不卡视频| 综合婷婷亚洲小说| 国产精品久线在线观看| 91成人看片片| 肉色丝袜一区二区| 亚洲午夜久久久久久久久电影网| 国产精品久久久久7777按摩| 精品污污网站免费看| 免费不卡在线观看| 日本强好片久久久久久aaa| 亚洲在线观看免费| 一区二区三区四区在线播放 | 国产精品视频免费| 91行情网站电视在线观看高清版| 亚洲成人免费电影| 亚洲靠逼com| 亚洲一区二区在线播放相泽| 亚洲精品国产视频| 亚洲高清在线精品| 亚洲高清免费观看| 久久一区二区视频| 久久精品视频一区二区三区| 精品第一国产综合精品aⅴ| 精品国产伦一区二区三区免费| 欧美刺激午夜性久久久久久久| 日韩欧美中文字幕精品| 91麻豆国产福利精品| 在线看一区二区| 91精品国产色综合久久ai换脸 | 免费视频最近日韩| 国产精品久久夜| 亚洲少妇中出一区| 性欧美大战久久久久久久久| 欧美激情一区二区三区四区| 欧美无砖砖区免费| 欧美精品国产精品| 久久亚洲一级片| 国产精品视频第一区| 亚洲一区二三区| 免费观看成人av| 亚洲另类中文字| 丝袜美腿亚洲色图| 椎名由奈av一区二区三区| 亚洲香肠在线观看| 亚洲天堂a在线| 久久久久久久久久久黄色| 中文字幕在线不卡视频| 天天色图综合网| 亚洲午夜激情网页| 国产一区二区在线视频| 99精品国产热久久91蜜凸| 欧美理论电影在线| 欧美色中文字幕| 久久亚洲精华国产精华液 | 久久久国产精品麻豆| 中文字幕免费一区| 国产三级欧美三级日产三级99| 欧美大片顶级少妇| 日韩一区日韩二区| 日韩电影在线观看网站| 成人免费福利片| 欧美一区二区三区四区在线观看 | 午夜久久久影院| 午夜免费欧美电影| 天天色天天操综合| 天天爽夜夜爽夜夜爽精品视频| 国产成人午夜视频| 欧美精品自拍偷拍动漫精品| 欧美群妇大交群中文字幕| 欧美性大战久久久久久久蜜臀| 久久蜜桃av一区二区天堂| 午夜精品一区二区三区三上悠亚| 国产精品69毛片高清亚洲| 91精品国模一区二区三区| 日韩毛片视频在线看| 国产不卡免费视频| 99视频在线精品| 久久久美女毛片| 国产精品久久久久桃色tv| 激情五月激情综合网| 欧美日韩视频在线一区二区| 18欧美亚洲精品| 丁香啪啪综合成人亚洲小说| 欧美xxxx老人做受| 水蜜桃久久夜色精品一区的特点| 色国产综合视频| 亚洲桃色在线一区| 五月天婷婷综合| 欧美三级一区二区| 一区二区三区资源| 99这里只有久久精品视频| 中文av字幕一区| 亚洲国产成人精品视频| 在线欧美日韩精品| 日韩视频一区二区三区在线播放| 久久色在线视频| 亚洲激情自拍偷拍| 成人aa视频在线观看| 国产精品久久久久久久午夜片 | 美女诱惑一区二区| 成人精品视频一区二区三区| 国产午夜亚洲精品理论片色戒| 精品一区二区综合|