mmlibs/mmfw/src/Client/Audio/mmfclienttoneplayer.cpp
changeset 58 b6dbf97aba93
parent 41 f7bf1ed8db72
equal deleted inserted replaced
57:1cbb0d5bf7f2 58:b6dbf97aba93
  1035 		iState = EMdaAudioToneUtilityNotReady;
  1035 		iState = EMdaAudioToneUtilityNotReady;
  1036 		iAsyncCallback->MatoPlayComplete(error);
  1036 		iAsyncCallback->MatoPlayComplete(error);
  1037 		}
  1037 		}
  1038 	else
  1038 	else
  1039 		{
  1039 		{
  1040 		iAsyncCallback->MatoPlayStarted(KErrNone);
  1040         if(iPlayStartObserver)
       
  1041             {
       
  1042             iAsyncCallback->MatoPlayStarted(KErrNone);
       
  1043             }
  1041 		}
  1044 		}
  1042 	}
  1045 	}
  1043 	
  1046 	
  1044 void CMMFMdaAudioToneUtility::CancelPlay()
  1047 void CMMFMdaAudioToneUtility::CancelPlay()
  1045 	{
  1048 	{
  1127 	Cancel();
  1130 	Cancel();
  1128 	}
  1131 	}
  1129 
  1132 
  1130 void CMMFMdaAudioToneObserverCallback::MatoPrepareComplete(TInt aError)
  1133 void CMMFMdaAudioToneObserverCallback::MatoPrepareComplete(TInt aError)
  1131 	{
  1134 	{
  1132 	iAction = EPrepareComplete;
  1135 	if(!IsActive())
  1133 	iErrorCode = aError;
  1136 	    {
  1134 
  1137         iAction = EPrepareComplete;
  1135 	TRequestStatus* s = &iStatus;
  1138         iErrorCode = aError;
  1136 	SetActive();
  1139         
  1137 	User::RequestComplete(s, KErrNone);
  1140         TRequestStatus* s = &iStatus;
       
  1141         SetActive();
       
  1142         User::RequestComplete(s, KErrNone);
       
  1143 	    }
       
  1144 	else
       
  1145 	    {
       
  1146 		// Since the default granularity is 8, failing of Append() is unusual, hence ignoring the return err.
       
  1147 	    iCallBackQueue.Append(EPrepareComplete);
       
  1148 	    iCallBackQueueError.Append(aError);
       
  1149 	    }
  1138 	}
  1150 	}
  1139 
  1151 
  1140 void CMMFMdaAudioToneObserverCallback::MatoPlayComplete(TInt aError)
  1152 void CMMFMdaAudioToneObserverCallback::MatoPlayComplete(TInt aError)
  1141 	{
  1153 	{
  1142 	iAction = EPlayComplete;
  1154     if(!IsActive())
  1143 	iErrorCode = aError;
  1155         {
  1144 
  1156         iAction = EPlayComplete;
  1145 	TRequestStatus* s = &iStatus;
  1157         iErrorCode = aError;
  1146 	SetActive();
  1158         
  1147 	User::RequestComplete(s, KErrNone);
  1159         TRequestStatus* s = &iStatus;
       
  1160         SetActive();
       
  1161         User::RequestComplete(s, KErrNone);
       
  1162         }
       
  1163     else
       
  1164         {
       
  1165         iCallBackQueue.Append(EPlayComplete);
       
  1166         iCallBackQueueError.Append(aError);
       
  1167         }
  1148 	}
  1168 	}
  1149 
  1169 
  1150 void CMMFMdaAudioToneObserverCallback::MatoPlayStarted(TInt aError)
  1170 void CMMFMdaAudioToneObserverCallback::MatoPlayStarted(TInt aError)
  1151 	{
  1171 	{
  1152 	iAction = EPlayStarted;
  1172     if(!IsActive())
  1153 	iErrorCode = aError;
  1173         {
  1154 
  1174         iAction = EPlayStarted;
  1155 	TRequestStatus* s = &iStatus;
  1175         iErrorCode = aError;
  1156 	SetActive();
  1176     
  1157 	User::RequestComplete(s, KErrNone);
  1177         TRequestStatus* s = &iStatus;
       
  1178         SetActive();
       
  1179         User::RequestComplete(s, KErrNone);
       
  1180         }
       
  1181     else
       
  1182         {
       
  1183         iCallBackQueue.Append(EPlayStarted);
       
  1184         iCallBackQueueError.Append(aError);
       
  1185         }
  1158 	}
  1186 	}
  1159 
  1187 
  1160 void CMMFMdaAudioToneObserverCallback::RunL()
  1188 void CMMFMdaAudioToneObserverCallback::RunL()
  1161 	{
  1189 	{
  1162 	switch (iAction)
  1190 	switch (iAction)
  1173 			}
  1201 			}
  1174 		case EPlayStarted:
  1202 		case EPlayStarted:
  1175 			iPlayStartCallback.MatoPlayStarted(iErrorCode);
  1203 			iPlayStartCallback.MatoPlayStarted(iErrorCode);
  1176 			break;
  1204 			break;
  1177 		}
  1205 		}
       
  1206 	if(iCallBackQueue.Count() > 0 & !IsActive() )
       
  1207 	    {
       
  1208         iAction = TMMFAudioToneObserverCallbackAction(iCallBackQueue[0]);
       
  1209         iCallBackQueue.Remove(0);
       
  1210         iErrorCode = iCallBackQueueError[0];
       
  1211         iCallBackQueueError.Remove(0);
       
  1212         
       
  1213         TRequestStatus* s = &iStatus;
       
  1214         User::RequestComplete(s, KErrNone);
       
  1215         SetActive();
       
  1216 	    }
  1178 	}
  1217 	}
  1179 
  1218 
  1180 void CMMFMdaAudioToneObserverCallback::DoCancel()
  1219 void CMMFMdaAudioToneObserverCallback::DoCancel()
  1181 	{
  1220 	{
  1182 	//nothing to cancel
  1221 	//nothing to cancel