javauis/mmapi_qt/audiostreaming/src.mmf/cmmastreamhandler.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
child 47 f40128debb5d
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
    60     }
    60     }
    61 }
    61 }
    62 
    62 
    63 void CMMAStreamHandler::PrepareL()
    63 void CMMAStreamHandler::PrepareL()
    64 {
    64 {
    65     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::PrepareL state %d", iState);
    65     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::PrepareL state %d", iState);
    66     iState = EMMAStreamPrepare;
    66     iState = EMMAStreamPrepare;
    67 
    67 
    68     //reset request data for reading again from beginning
    68     //reset request data for reading again from beginning
    69     iRequests[0]->DataPtr().SetLength(0);
    69     iRequests[0]->DataPtr().SetLength(0);
    70 
    70 
    72     iSourceStream->Read(iRequests[ 0 ]);
    72     iSourceStream->Read(iRequests[ 0 ]);
    73 }
    73 }
    74 
    74 
    75 void CMMAStreamHandler::StartL()
    75 void CMMAStreamHandler::StartL()
    76 {
    76 {
    77     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL state %d", iState);
    77     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL state %d", iState);
    78     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data source request=%d",
    78     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data source request=%d",
    79               (TInt)iSourceStream->Request());
    79          (TInt)iSourceStream->Request());
    80 
    80 
    81     iState = EMMAStreamStart;
    81     iState = EMMAStreamStart;
    82     if (iSourceStream->Request())
    82     if (iSourceStream->Request())
    83     { // when read request is completed it will be written to server
    83     {
       
    84         // when read request is completed it will be written to server
    84         iState = EMMAStreamStarted;
    85         iState = EMMAStreamStarted;
    85         iListener.StartComplete(KErrNone);
    86         iListener.StartComplete(KErrNone);
    86         return;
    87         return;
    87     }
    88     }
    88 
    89 
    91     for (TInt i = 0; i < count && !started; i++)
    92     for (TInt i = 0; i < count && !started; i++)
    92     {
    93     {
    93         CMMAStreamRequest* r = iRequests[ i ];
    94         CMMAStreamRequest* r = iRequests[ i ];
    94         if (!r->IsActive() && r->DataPtr().Length() > 0)
    95         if (!r->IsActive() && r->DataPtr().Length() > 0)
    95         {
    96         {
    96             LOG( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL write request to server");
    97             LOG(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL write request to server");
    97             LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL request length=%d",
    98             LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL request length=%d",
    98                       r->DataPtr().Length());
    99                  r->DataPtr().Length());
    99             LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL last buffer %d",
   100             LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL last buffer %d",
   100                       r->RequestBuffer()());
   101                  r->RequestBuffer()());
   101 
   102 
   102             // data was not yet written to server
   103             // data was not yet written to server
   103             WriteRequest(r);
   104             WriteRequest(r);
   104             started = ETrue;
   105             started = ETrue;
   105         }
   106         }
   106         else if (r->IsActive())  // data is in server
   107         else if (r->IsActive())  // data is in server
   107         {
   108         {
   108             LOG( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data is in server");
   109             LOG(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data is in server");
   109             // atleast one request is not processed
   110             // atleast one request is not processed
   110             started = ETrue;
   111             started = ETrue;
   111         }
   112         }
   112     }
   113     }
   113     if (started)  // If allready started complete start
   114     if (started)  // If allready started complete start
   138     iSourceStream = aSourceStream;
   139     iSourceStream = aSourceStream;
   139 }
   140 }
   140 
   141 
   141 void CMMAStreamHandler::WriteComplete(CMMAStreamRequest* aRequest)
   142 void CMMAStreamHandler::WriteComplete(CMMAStreamRequest* aRequest)
   142 {
   143 {
   143     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete state=%d", iState);
   144     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete state=%d", iState);
   144     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete request length=%d",
   145     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete request length=%d",
   145               aRequest->DataPtr().Length());
   146          aRequest->DataPtr().Length());
   146     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete last buffer %d",
   147     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete last buffer %d",
   147               aRequest->RequestBuffer()());
   148          aRequest->RequestBuffer()());
   148     if (iState == EMMAStreamStarted)
   149     if (iState == EMMAStreamStarted)
   149     {
   150     {
   150         if (aRequest->RequestBuffer()() == 1)
   151         if (aRequest->RequestBuffer()() == 1)
   151         {
   152         {
   152             iState = EMMAStreamEof;
   153             iState = EMMAStreamEof;
   182 }
   183 }
   183 
   184 
   184 void CMMAStreamHandler::HandleError(CMMAStreamRequest* /*aRequest*/,
   185 void CMMAStreamHandler::HandleError(CMMAStreamRequest* /*aRequest*/,
   185                                     TInt aError)
   186                                     TInt aError)
   186 {
   187 {
   187     LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::HandleError state=%d", iState);
   188     LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::HandleError state=%d", iState);
   188     if (iState == EMMAStreamPrepare)
   189     if (iState == EMMAStreamPrepare)
   189     {
   190     {
   190         iListener.PrepareComplete(aError);
   191         iListener.PrepareComplete(aError);
   191         iState = EMMAStreamPaused;
   192         iState = EMMAStreamPaused;
   192     }
   193     }