示例#1
0
文件: ccm.c 项目: anupam19/XperiaL_FM
CcmStatus CCM_StaticInit(void)
{
    CcmStatus       status;
    CcmImStatus     imStatus;
    ECCM_VAC_Status vacStatus;
    
    /* Used to init once only */
    static McpBool firstInit = MCP_TRUE;

    MCP_FUNC_START("CCM_StaticInit");

    if (firstInit == MCP_FALSE)
    {
        MCP_LOG_INFO(("_CCM_StaticInit Already Initialized, Exiting Successfully"));
        MCP_RET(CCM_STATUS_SUCCESS);
    }

    firstInit = MCP_FALSE;

    status = _CCM_StaticInit();
    MCP_VERIFY_FATAL((status == CCM_STATUS_SUCCESS), CCM_STATUS_INTERNAL_ERROR, ("_CCM_StaticInit"));

    /* Initialize contained entities (IM, PM, VAC) */
    
    imStatus = CCM_IM_StaticInit();
    MCP_VERIFY_FATAL((imStatus == CCM_IM_STATUS_SUCCESS), CCM_STATUS_INTERNAL_ERROR, ("CCM_IM_StaticInit"));

    vacStatus = CCM_VAC_StaticInit();
    MCP_VERIFY_FATAL ((CCM_VAC_STATUS_SUCCESS == vacStatus), CCM_STATUS_INTERNAL_ERROR,
                      ("CCM_StaticInit: VAC initialization failed with status %d", vacStatus));

    CCM_CAL_StaticInit();

    status = CCM_STATUS_SUCCESS;
    
    MCP_FUNC_END();
    
    return status;
}
void main()
{
    CcmImStatus imStatus;
    CcmImObj    *imObj = NULL;
    
    imStatus = CCM_IM_StaticInit();
    assert(imStatus == CCM_IM_STATUS_SUCCESS);

    imStatus = CCM_IM_Create(MCP_HAL_CHIP_ID_0, &imObj, NULL, NULL);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);

    imStatus = CCM_IM_RegisterStack(imObj, CCM_IM_STACK_ID_BT, CcmImBtCb);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);
    
    VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_OFF);

    imStatus = CCM_IM_BtOn(imObj);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);

    VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_ON);

    imStatus = CCM_IM_BtOnAbort(imObj);
    assert(imStatus == CCM_IM_STATUS_IMPROPER_STATE);

    VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_ON);

    imStatus = CCM_IM_BtOff(imObj);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);

    VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_OFF);

    imStatus = CCM_IM_DeregisterStack(imObj, CCM_IM_STACK_ID_BT);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);

    imStatus = CCM_IM_Destroy(&imObj);
    assert(imStatus == CCM_IM_STATUS_SUCCESS);
}