csl_osdopen.c

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

C
65
字号
/** @file csl_osdOpen.c
 *
 *    @brief    File for functional layer of CSL API @a CSL_osdOpen()
 *
 *  Description
 *    - The @a CSL_osdOpen() function definition & it's associated functions
 *
 *  Modification 1
 *    - Created on: 10/04/2004
 *    - Reason:       Created the sources
 *
 *  @date 4th October, 2004
 *  @author Santosh Narayanan.
 */

#include <csl_osd.h>
#include <_csl_resource.h>


#pragma CODE_SECTION (CSL_osdOpen, ".text:csl_section:osd");

extern void _CSL_osdGetAttrs(CSL_OsdNum osdNum , CSL_OsdHandle hOsd);

/** @brief Reserves the specified OSD for use. 
 */
CSL_OsdHandle CSL_osdOpen (
    /** Pointer to the object that holds reference to the
     *  instance of OSD requested after the call 
	 */
    CSL_OsdObj              *hOsdObj,
    /** Instance of Osd to which a handle is requested 
	 */
    CSL_OsdNum              osdNum,
    /** Specifies if OSD should be opened with exclusive or
     *  shared access to the associate pins 
	 */
    CSL_OpenMode            openMode,
    /** This returns the status (success/errors) of the call 
	 */
    CSL_Status              *status
	){

    CSL_OsdNum osdInst;
    CSL_OsdHandle hOsd = (CSL_OsdHandle)NULL;

    hOsdObj->openMode = openMode;
    
    if (osdNum >= 0 ) {
        _CSL_osdGetAttrs(osdNum, hOsdObj);
        hOsd = (CSL_OsdHandle)_CSL_certifyOpen((CSL_ResHandle)hOsdObj, status);
    }
    else {
		for(osdInst=(CSL_OsdNum)0;osdInst < (CSL_OsdNum)CSL_OSD_PER_CNT;++osdInst){
			_CSL_osdGetAttrs(osdInst, hOsdObj);
            hOsd = (CSL_OsdHandle)_CSL_certifyOpen((CSL_ResHandle)hOsdObj, status);
            if (*status == CSL_SOK) 
                break;
        }
        if (osdInst == CSL_OSD_PER_CNT) 
            *status = CSL_ESYS_OVFL;
    }

    return hOsd;
}

⌨️ 快捷键说明

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