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