⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _csl_osdsetbmpcolor.c

📁 TI达芬奇dm644x各硬件模块测试代码
💻 C
字号:
/** @file _csl_osdSetBmpColor.c
 *
 *  @brief Set OSD 1,2,4-bit bitmap color pallatte
 *  @date 6th Oct, 2004
 */
 
#include <csl_osd.h>
#include <_csl_osd_aux.h>
 

CSL_Status    _CSL_osdSetBmpColor(
         /** Pointer to the object that holds reference to the
         *  instance of OSD requested after the call 
	  */
         CSL_OsdHandle hOsd,

        /** Pointer to structure containing elements to 
         *  set the OSD 1,2,4-bit bitmap color palette
         */
        CSL_OsdBmpColor *arg)
{


    CSL_Status  status=CSL_SOK;

    switch(arg->winID) {

        case CSL_OSD_BMP_WIN0:

		switch(arg->bmpwidth) {
			case CSL_OSD_BMP_1BIT:
				switch(arg->bmpvalue) {
					case 0:
					    CSL_FINS(hOsd->regs->W0BMP01,OSD_W0BMP01_PAL00,arg->lutcolor);
					    break;
					case 1:
					    CSL_FINS(hOsd->regs->W0BMPEF,OSD_W0BMPEF_PAL15,arg->lutcolor);
					    break;
					default :
					    status = CSL_ESYS_INVCMD;
					    break;
				  }
			         break;

			case CSL_OSD_BMP_2BIT:
				switch(arg->bmpvalue) {
					case 0:
					    CSL_FINS(hOsd->regs->W0BMP01,OSD_W0BMP01_PAL00,arg->lutcolor);
					    break;
					case 1:
					    CSL_FINS(hOsd->regs->W0BMP45,OSD_W0BMP45_PAL05,arg->lutcolor);
					    break;
					case 2:
					    CSL_FINS(hOsd->regs->W0BMPAB,OSD_W0BMPAB_PAL10,arg->lutcolor);
					    break;

					case 3:
					    CSL_FINS(hOsd->regs->W0BMPEF,OSD_W0BMPEF_PAL15,arg->lutcolor);
					    break;
					default :
					    status = CSL_ESYS_INVCMD;
					    break;
				       }
				break;

			case CSL_OSD_BMP_4BIT:
				switch(arg->bmpvalue) {
						case 0:
						    CSL_FINS(hOsd->regs->W0BMP01,OSD_W0BMP01_PAL00,arg->lutcolor);
						    break;
						case 1:
						    CSL_FINS(hOsd->regs->W0BMP01,OSD_W0BMP01_PAL01,arg->lutcolor);
						    break;
						case 2:
						    CSL_FINS(hOsd->regs->W0BMP23,OSD_W0BMP23_PAL02,arg->lutcolor);
						    break;
						case 3:
						    CSL_FINS(hOsd->regs->W0BMP23,OSD_W0BMP23_PAL03,arg->lutcolor);
						    break;
						case 4:
						    CSL_FINS(hOsd->regs->W0BMP45,OSD_W0BMP45_PAL04,arg->lutcolor);
						    break;
						case 5:
						    CSL_FINS(hOsd->regs->W0BMP45,OSD_W0BMP45_PAL05,arg->lutcolor);
						    break;
						case 6:
						    CSL_FINS(hOsd->regs->W0BMP67,OSD_W0BMP67_PAL06,arg->lutcolor);
						    break;
						case 7:
						    CSL_FINS(hOsd->regs->W0BMP67,OSD_W0BMP67_PAL07,arg->lutcolor);
						    break;
						case 8:
						    CSL_FINS(hOsd->regs->W0BMP89,OSD_W0BMP89_PAL08,arg->lutcolor);
						    break;
						case 9:
						    CSL_FINS(hOsd->regs->W0BMP89,OSD_W0BMP89_PAL09,arg->lutcolor);
						    break;
						case 10:
						    CSL_FINS(hOsd->regs->W0BMPAB,OSD_W0BMPAB_PAL10,arg->lutcolor);
						    break; 
						case 11:
						    CSL_FINS(hOsd->regs->W0BMPAB,OSD_W0BMPAB_PAL11,arg->lutcolor);
						    break;
						case 12:
						    CSL_FINS(hOsd->regs->W0BMPCD,OSD_W0BMPCD_PAL12,arg->lutcolor);
						    break;
						case 13:
						    CSL_FINS(hOsd->regs->W0BMPCD,OSD_W0BMPCD_PAL13,arg->lutcolor);
						    break;
						case 14:
						    CSL_FINS(hOsd->regs->W0BMPEF,OSD_W0BMPEF_PAL14,arg->lutcolor);
						    break;
						case 15:
						    CSL_FINS(hOsd->regs->W0BMPEF,OSD_W0BMPEF_PAL15,arg->lutcolor);
						    break;
						default :
						    status = CSL_ESYS_INVCMD;
						    break;
				}
				break;
						   
			default :
			       status = CSL_ESYS_INVCMD;
			       break;
		}

	case CSL_OSD_BMP_WIN1:
		switch(arg->bmpwidth) {
			case CSL_OSD_BMP_1BIT:
					switch(arg->bmpvalue) {
						case 0:
						    CSL_FINS(hOsd->regs->W1BMP01,OSD_W1BMP01_PAL00,arg->lutcolor);
						    break;
						case 1:
						    CSL_FINS(hOsd->regs->W1BMPEF,OSD_W1BMPEF_PAL15,arg->lutcolor);
						    break;
						default :
						    status = CSL_ESYS_INVCMD;
						    break;
					  }
					  break;
			case CSL_OSD_BMP_2BIT:
					switch(arg->bmpvalue) {
						case 0:
						    CSL_FINS(hOsd->regs->W1BMP01,OSD_W1BMP01_PAL00,arg->lutcolor);
						    break;
						case 1:
						    CSL_FINS(hOsd->regs->W1BMP45,OSD_W1BMP45_PAL05,arg->lutcolor);
						    break;
						case 2:
						    CSL_FINS(hOsd->regs->W1BMPAB,OSD_W1BMPAB_PAL10,arg->lutcolor);
						    break;

						case 3:
						    CSL_FINS(hOsd->regs->W1BMPEF,OSD_W1BMPEF_PAL15,arg->lutcolor);
						    break;
						default :
						    status = CSL_ESYS_INVCMD;
						    break;
					}
			              break;
			case CSL_OSD_BMP_4BIT:
				      switch(arg->bmpvalue) {
						case 0:
						    CSL_FINS(hOsd->regs->W1BMP01,OSD_W1BMP01_PAL00,arg->lutcolor);
						    break;
						case 1:
						    CSL_FINS(hOsd->regs->W1BMP01,OSD_W1BMP01_PAL01,arg->lutcolor);
						    break;
						case 2:
						    CSL_FINS(hOsd->regs->W1BMP23,OSD_W1BMP23_PAL02,arg->lutcolor);
						    break;
						case 3:
						    CSL_FINS(hOsd->regs->W1BMP23,OSD_W1BMP23_PAL03,arg->lutcolor);
						    break;
						case 4:
						    CSL_FINS(hOsd->regs->W1BMP45,OSD_W1BMP45_PAL04,arg->lutcolor);
						    break;
						case 5:
						    CSL_FINS(hOsd->regs->W1BMP45,OSD_W1BMP45_PAL05,arg->lutcolor);
						    break;
						case 6:
						    CSL_FINS(hOsd->regs->W1BMP67,OSD_W1BMP67_PAL06,arg->lutcolor);
						    break;
						case 7:
						    CSL_FINS(hOsd->regs->W1BMP67,OSD_W1BMP67_PAL07,arg->lutcolor);
						    break;
						case 8:
						    CSL_FINS(hOsd->regs->W1BMP89,OSD_W1BMP89_PAL08,arg->lutcolor);
						    break;
						case 9:
						    CSL_FINS(hOsd->regs->W1BMP89,OSD_W1BMP89_PAL09,arg->lutcolor);
						    break;
						case 10:
						    CSL_FINS(hOsd->regs->W1BMPAB,OSD_W1BMPAB_PAL10,arg->lutcolor);
						    break; 
						case 11:
						    CSL_FINS(hOsd->regs->W1BMPAB,OSD_W1BMPAB_PAL11,arg->lutcolor);
						    break;
						case 12:
						    CSL_FINS(hOsd->regs->W1BMPCD,OSD_W1BMPCD_PAL12,arg->lutcolor);
						    break;
						case 13:
						    CSL_FINS(hOsd->regs->W1BMPCD,OSD_W1BMPCD_PAL13,arg->lutcolor);
						    break;
						case 14:
						    CSL_FINS(hOsd->regs->W1BMPEF,OSD_W1BMPEF_PAL14,arg->lutcolor);
						    break;
						case 15:
						    CSL_FINS(hOsd->regs->W1BMPEF,OSD_W1BMPEF_PAL15,arg->lutcolor);
						    break;
						default :
						    status = CSL_ESYS_INVCMD;
						    break;
					}
					break;
				default :
					status = CSL_ESYS_INVCMD;
					break;
			}
			break;
		default :
			status = CSL_ESYS_INVCMD;
			break;
          }
          return status;
 }

 

⌨️ 快捷键说明

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