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 |