bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp
branchRCL_3
changeset 21 53b7818cd282
parent 0 f63038272f30
child 51 625f43ae9362
--- a/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp	Tue May 11 16:23:08 2010 +0300
+++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp	Tue May 25 12:53:11 2010 +0300
@@ -63,7 +63,7 @@
         }
     iATExtClient.HandleCommand(iCommander->iStatus, 
             iCmdBuffer, iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg);
-    iCommander->GoActive();
+    iCommander->GoActive(); 
     }
 
 void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr)
@@ -74,32 +74,37 @@
         {
         case EHandleCommandRequest:
             {
-        	if(err == KErrNone)
-        		{
-        		if (iRemainingReplyLengthPckg())
-        		    {
-                    /*RBuf8 reply2;
-                    reply2.CreateL(iRemainingReplyLengthPckg() + iReplyBuffer.Length());
-                    err = iATExtClient.GetNextPartOfReply(reply2, iRemainingReplyLengthPckg);
-                    if (!err)
+            if(err == KErrNone)
+                {
+                if (iRemainingReplyLengthPckg())
+                    {
+                    TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
+                    iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
+                    do 
                         {
-                        reply2.Insert(0, iReplyBuffer);
+                        TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg()))
+                        RBuf8 reply;
+                        reply.CreateL(iRemainingReplyLengthPckg());
+                        err = iATExtClient.GetNextPartOfReply(iRecvBuffer, iRemainingReplyLengthPckg());
+                        if (!err)
+                            {
+                            reply.Insert(0, iRecvBuffer);
+                            }
+                        TRACE_INFO((_L8("reply '%S'"), &reply))
+                        iObserver.ATExtHandleReplyReceivedL(err, reply);
+                        reply.Close();
                         }
-                    TRACE_INFO((_L8("reply '%S'"), &reply2))
-                    iObserver.ATExtHandleCommandCompletedL(err, reply2);
-                    reply2.Close();*/
-        		    iATExtClient.GetNextPartOfReply( iRecvBuffer,
-        		            iRemainingReplyLength );
-        		    }
-        		else
-        		    {
+                    while (iRemainingReplyLengthPckg());
+                    }
+                else
+                    {
                     TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
-                    iObserver.ATExtHandleCommandCompletedL(err, iReplyBuffer);
-        		    }
-        		}
+                    iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
+                    }
+                }
             else
                 {
-                iObserver.ATExtHandleCommandCompletedL(err, iSystemReply);
+                iObserver.ATExtHandleReplyReceivedL(err, iSystemReply);
                 }
             break;
             }