equal
deleted
inserted
replaced
765 The intent to evaluate. |
765 The intent to evaluate. |
766 |
766 |
767 @return An error code indicating if the function call was successful. KErrNone on success, otherwise |
767 @return An error code indicating if the function call was successful. KErrNone on success, otherwise |
768 another of the system-wide error codes. |
768 another of the system-wide error codes. |
769 */ |
769 */ |
770 TInt CProgDLMultimediaSource::EvaluateIntent(ContentAccess::TIntent aIntent) const |
770 TInt CProgDLMultimediaSource::EvaluateIntent(ContentAccess::TIntent aIntent) |
771 { |
771 { |
772 if (!iFile) |
772 if (!iFile) |
773 { |
773 { |
774 return KErrNotReady; |
774 return KErrNotReady; |
775 } |
775 } |
1112 case EEXECUTING: |
1112 case EEXECUTING: |
1113 case EBUFFERING: |
1113 case EBUFFERING: |
1114 { |
1114 { |
1115 TInt pos = 0; |
1115 TInt pos = 0; |
1116 CancelRequests(); |
1116 CancelRequests(); |
1117 // we should not delete the iFile, it causes the CAF to delete the rights if they are expired. |
1117 if (iFile) |
1118 |
1118 iFile->Seek(ESeekStart,0); |
1119 // Since the requests will not be deleted if it is still inside RunL() (iState is EProcessing), |
1119 // Since the requests will not be deleted if it is still inside RunL() (iState is EProcessing), |
1120 // iReadRequestPending should not be initialized to 0 always |
1120 // iReadRequestPending should not be initialized to 0 always |
1121 iReadRequestPending = iRequests.Count(); |
1121 iReadRequestPending = iRequests.Count(); |
1122 //iDLFileSize = -1; |
1122 //iDLFileSize = -1; |
1123 iSnkBytes=pos; |
1123 iSnkBytes=pos; |
1223 TPckgBuf<TFileName> sizePckg; |
1223 TPckgBuf<TFileName> sizePckg; |
1224 err = aMessage.ReadData1FromClient(sizePckg); |
1224 err = aMessage.ReadData1FromClient(sizePckg); |
1225 if ( err == KErrNone ) |
1225 if ( err == KErrNone ) |
1226 { |
1226 { |
1227 iFullFileName = sizePckg(); |
1227 iFullFileName = sizePckg(); |
|
1228 if (iFile) |
|
1229 { |
|
1230 delete iFile; |
|
1231 iFile = NULL; |
|
1232 } |
|
1233 if (iFileHandle) |
|
1234 { |
|
1235 TRAPD(err,iFile = CContentFile::NewL(iHandle, UniqueId(), iCAFParameters->iEnableUI)); |
|
1236 } |
|
1237 else |
|
1238 { |
|
1239 // Open for read-only access |
|
1240 TRAPD(err,iFile = CContentFile::NewL(iFsSession, iFullFileName, UniqueId(), EFileShareAny, iCAFParameters->iEnableUI)); |
|
1241 } |
1228 } |
1242 } |
1229 aMessage.Complete(KErrNone); |
1243 aMessage.Complete(KErrNone); |
1230 |
1244 |
1231 } |
1245 } |
1232 break; |
1246 break; |
1393 RDebug::Print(_L(" Percentage Buffered [%d]"),perBuf); |
1407 RDebug::Print(_L(" Percentage Buffered [%d]"),perBuf); |
1394 perBufPckg() = perBuf; |
1408 perBufPckg() = perBuf; |
1395 aMessage.WriteDataToClient(perBufPckg); |
1409 aMessage.WriteDataToClient(perBufPckg); |
1396 aMessage.Complete(KErrNone); |
1410 aMessage.Complete(KErrNone); |
1397 } |
1411 } |
1398 break; |
1412 break; |
1399 |
1413 case ESetFileMoving: |
|
1414 { |
|
1415 if (iFile) |
|
1416 { |
|
1417 delete iFile; |
|
1418 iFile = NULL; |
|
1419 } |
|
1420 aMessage.Complete(KErrNone); |
|
1421 } |
|
1422 break; |
1400 default: |
1423 default: |
1401 err = KErrArgument; |
1424 err = KErrArgument; |
1402 break; |
1425 break; |
1403 } |
1426 } |
1404 } |
1427 } |
1473 CleanupStack::Pop() ; // request |
1496 CleanupStack::Pop() ; // request |
1474 |
1497 |
1475 request->SetActive(); |
1498 request->SetActive(); |
1476 |
1499 |
1477 // iSnkBytes += requestSize; |
1500 // iSnkBytes += requestSize; |
1478 |
1501 request->Buffer()->SetLastBuffer(EFalse); |
1479 if ((iSnkBytes + request->Buffer()->RequestSize()) >= iDownloadSize && isDownloadComplete) |
|
1480 { |
|
1481 request->Buffer()->SetLastBuffer(ETrue); |
|
1482 DEBPRN1(_L("CProgDLMultimediaSource::ServiceFillBuffer() LastBuffer$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")); |
|
1483 } |
|
1484 |
|
1485 iFile->Read(request->BufferDes(), requestSize, request->iStatus); |
1502 iFile->Read(request->BufferDes(), requestSize, request->iStatus); |
1486 |
1503 |
1487 } |
1504 } |
1488 else // if (CMMFBuffer::IsSupportedDataBuffer(buffer->Type())) |
1505 else // if (CMMFBuffer::IsSupportedDataBuffer(buffer->Type())) |
1489 return KErrNotSupported; |
1506 return KErrNotSupported; |
1631 { |
1648 { |
1632 |
1649 |
1633 DEBPRN4(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] BufferSize[%d] RequestSize[%d]"),aRequest->Buffer(),aRequest->Buffer()->BufferSize(),aRequest->Buffer()->RequestSize()); |
1650 DEBPRN4(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] BufferSize[%d] RequestSize[%d]"),aRequest->Buffer(),aRequest->Buffer()->BufferSize(),aRequest->Buffer()->RequestSize()); |
1634 DEBPRN3(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] LastBuffer[%d]"),aRequest->Buffer(),aRequest->Buffer()->LastBuffer()); |
1651 DEBPRN3(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] LastBuffer[%d]"),aRequest->Buffer(),aRequest->Buffer()->LastBuffer()); |
1635 |
1652 |
|
1653 //Moved from CProgDLMultimediaSource::ServiceFillBuffer to handle deadlock situations |
|
1654 if ((iSnkBytes + aRequest->Buffer()->RequestSize()) >= iDownloadSize && isDownloadComplete) |
|
1655 { |
|
1656 aRequest->Buffer()->SetLastBuffer(ETrue); |
|
1657 DEBPRN1(_L("CProgDLMultimediaSource::ReadRequestStatus() LastBuffer$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")); |
|
1658 } |
|
1659 |
1636 TBool lastBuffer = aRequest->Buffer()->LastBuffer(); |
1660 TBool lastBuffer = aRequest->Buffer()->LastBuffer(); |
1637 |
1661 |
1638 if((aRequest->Buffer()->BufferSize() != aRequest->Buffer()->RequestSize()) && !lastBuffer) |
1662 if((aRequest->Buffer()->BufferSize() != aRequest->Buffer()->RequestSize()) && !lastBuffer) |
1639 { |
1663 { |
1640 if(aRequest->SourceType()) |
1664 if(aRequest->SourceType()) |
1695 |
1719 |
1696 |
1720 |
1697 TInt CProgDLMultimediaSource::ReOpenCAF() |
1721 TInt CProgDLMultimediaSource::ReOpenCAF() |
1698 { |
1722 { |
1699 TInt status(KErrNone); |
1723 TInt status(KErrNone); |
1700 DEBPRN2(_L("CProgDLMultimediaSource::StateChanged ReOpenCAF[%d]"),iSnkBytes); |
1724 DEBPRN2(_L("CProgDLMultimediaSource::ReOpenCAF ReOpenCAF[%d]"),iSnkBytes); |
1701 delete iFile; |
1725 delete iFile; |
1702 iFile = NULL; |
1726 iFile = NULL; |
1703 |
1727 |
1704 if (!iFile) |
1728 if (!iFile) |
1705 { |
1729 { |
1739 iFileSize = iDLFileSize; |
1763 iFileSize = iDLFileSize; |
1740 } |
1764 } |
1741 } |
1765 } |
1742 |
1766 |
1743 iReOpenCAF = ETrue; |
1767 iReOpenCAF = ETrue; |
1744 DEBPRN3(_L("CProgDLMultimediaSource::StateChanged Exit status[%d] iFileSize[%d]"),status,iFileSize); |
1768 DEBPRN3(_L("CProgDLMultimediaSource::ReOpenCAF Exit status[%d] iFileSize[%d]"),status,iFileSize); |
1745 return status; |
1769 return status; |
1746 } |
1770 } |
1747 |
1771 |
1748 void CProgDLMultimediaSource::GetAudioConfiguration() |
1772 void CProgDLMultimediaSource::GetAudioConfiguration() |
1749 { |
1773 { |