bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp
branchRCL_3
changeset 72 4b59561a31c0
parent 54 0ba996a9b75d
equal deleted inserted replaced
64:1934667b0e2b 72:4b59561a31c0
    47 
    47 
    48        if ( iATExtClient.Handle() )
    48        if ( iATExtClient.Handle() )
    49         {
    49         {
    50         iATExtClient.Close();
    50         iATExtClient.Close();
    51         }
    51         }
    52    iCmdBuffer.Close();
       
    53    iSystemReply.Close();
       
    54    delete iRecvBuffer;
       
    55    delete iReplyBuffer;
       
    56 }
    52 }
    57 
    53 
    58 void CHFPAtCmdHandler::HandleCommand(const TDesC8& aAT, const TDesC8& aReply)
    54 void CHFPAtCmdHandler::HandleCommand(const TDesC8& aAT, const TDesC8& aReply)
    59     {
    55     {
    60     TRACE_INFO((_L8("default reply '%S'"), &aReply))
    56     TRACE_INFO((_L8("default reply '%S'"), &aReply))
    61     iCmdBuffer.Copy(aAT);
    57     iCmdBuffer.Copy(aAT);
    62     iReplyBuffer->Zero();
    58     iReplyBuffer.Zero();
    63     if (aReply.Length())
    59     if (aReply.Length())
    64         {
    60         {
    65         iReplyBuffer->Copy(aReply);
    61         iReplyBuffer.Copy(aReply);
    66         iSystemReply.Copy(aReply);
    62         iSystemReply.Copy(aReply);
    67         } 
    63         }
    68     iATExtClient.HandleCommand(iCommander->iStatus, 
    64     iATExtClient.HandleCommand(iCommander->iStatus, 
    69             iCmdBuffer, *iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg);
    65             iCmdBuffer, iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg);
    70     iCommander->GoActive(); 
    66     iCommander->GoActive(); 
    71     }
    67     }
    72 
    68 
    73 void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr)
    69 void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr)
    74     {
    70     {
    81             if(err == KErrNone)
    77             if(err == KErrNone)
    82                 {
    78                 {
    83                 if (iRemainingReplyLengthPckg())
    79                 if (iRemainingReplyLengthPckg())
    84                     {
    80                     {
    85                     TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
    81                     TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
    86                     iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer);
    82                     iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
    87                     do 
    83                     do 
    88                         {
    84                         {
    89                         TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg()))
    85                         TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg()))
    90                         RBuf8 reply;
    86                         RBuf8 reply;
    91                         reply.CreateL(iRemainingReplyLengthPckg());
    87                         reply.CreateL(iRemainingReplyLengthPckg());
    92                         err = iATExtClient.GetNextPartOfReply(*iRecvBuffer, iRemainingReplyLengthPckg());
    88                         err = iATExtClient.GetNextPartOfReply(iRecvBuffer, iRemainingReplyLengthPckg());
    93                         if (!err)
    89                         if (!err)
    94                             {
    90                             {
    95                             reply.Insert(0, *iRecvBuffer);
    91                             reply.Insert(0, iRecvBuffer);
    96                             }
    92                             }
    97                         TRACE_INFO((_L8("reply '%S'"), &reply))
    93                         TRACE_INFO((_L8("reply '%S'"), &reply))
    98                         iObserver.ATExtHandleReplyReceivedL(err, reply);
    94                         iObserver.ATExtHandleReplyReceivedL(err, reply);
    99                         reply.Close();
    95                         reply.Close();
   100                         }
    96                         }
   101                     while (iRemainingReplyLengthPckg());
    97                     while (iRemainingReplyLengthPckg());
   102                     }
    98                     }
   103                 else
    99                 else
   104                     {
   100                     {
   105                     TRACE_INFO((_L8("reply '%S'"), iReplyBuffer))
   101                     TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
   106                     iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer);
   102                     iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
   107                     }
   103                     }
   108                 }
   104                 }
   109             else
   105             else
   110                 {
   106                 {
   111                 iObserver.ATExtHandleReplyReceivedL(err, iSystemReply);
   107                 iObserver.ATExtHandleReplyReceivedL(err, iSystemReply);
   161     CleanupStack::Pop( &iATExtClient );
   157     CleanupStack::Pop( &iATExtClient );
   162     iEcomListen = ecomListen;
   158     iEcomListen = ecomListen;
   163     
   159     
   164     StartUrc();
   160     StartUrc();
   165     iCommander = CBtmcActive::NewL(*this, CActive::EPriorityStandard, EHandleCommandRequest);
   161     iCommander = CBtmcActive::NewL(*this, CActive::EPriorityStandard, EHandleCommandRequest);
   166     iCmdBuffer.CreateL(KDefaultCmdBufLength);
       
   167     iRecvBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>();
       
   168     iReplyBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>();
       
   169     iSystemReply.CreateL(KDefaultUrcBufLength);
       
   170     TRACE_FUNC_EXIT
   162     TRACE_FUNC_EXIT
   171     }
   163     }
   172     
   164     
   173 
   165 
   174 // ---------------------------------------------------------------------------
   166 // ---------------------------------------------------------------------------