📄 _csl_osdsetbmpcolor.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 + -