_csl_osdsetbmpcolor.c

来自「TI达芬奇dm644x各硬件模块测试代码」· C语言 代码 · 共 230 行

C
230
字号
/** @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 + =
减小字号Ctrl + -
显示快捷键?