ag_inquire.c

来自「蓝牙语音网关软件源代码」· C语言 代码 · 共 68 行

C
68
字号
#include "ag_private.h"
#include "ag.h"

#include <message.h>
#include <print.h>
#include <stdlib.h>
#include <string.h>
#include <vm.h>



/*
    inquiryReqAction

    Start an inquiry.
*/
void inquiryReqAction(uint8 num_responses, uint16 timeout, uint32 CoD_filter, uint16 rnr_en)
{
    if (agIdleQuery())
    {
        MAKE_MSG(CM_INQUIRY_REQ);
        msg->max_responses = num_responses;
        msg->inq_timeout = D_SEC(timeout);
        msg->class_of_device = CoD_filter;
        msg->remote_name_request_enabled = rnr_en;
        agPutCmMsg(msg);

        agSetCurrentState(AgInquiring);
    }
    else
    {        
        agSendErrorToClient(AgErrorInquiryRequestWhenNotIdle, 0);
    }
}


/*
    agInquiryCompleteCfm

    Confirmation that the inquiry has completed including a status
    flag indicating its outcome.
*/

void agInquiryCompleteCfm(const CM_INQUIRY_COMPLETE_CFM_T *cfm)
{    
    ag_inquiry_status_t inq_status = AgInquiryError;
    agSetCurrentState(AgIdle);

    /* Let the interface layer do anything it wants to with this */
    switch(cfm->status)
    {
        case CmInquiryComplete:
            inq_status = AgInquiryComplete;            
            break;
        case CmInquiryCancelled:
            inq_status = AgInquiryCancelled;            
            break;
        case CmInquiryMaxResponsesReached:
            inq_status = AgMaxResponsesReached;            
            break;
        default:
            PRINT(("ag_inquire: Unknown inquiry complete return type 0x%x\n", cfm->status));
            inq_status = AgInquiryError;
            break;
    }
    handleInquiryCompleteCfm(inq_status);
}

⌨️ 快捷键说明

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