--- a/mmmw_plat/enhanced_media_client_api/tsrc/EnhanMediaTestClass/src/EnhanMediaTestClassBlocks.cpp Tue Aug 31 15:43:02 2010 +0300
+++ b/mmmw_plat/enhanced_media_client_api/tsrc/EnhanMediaTestClass/src/EnhanMediaTestClassBlocks.cpp Wed Sep 01 12:23:00 2010 +0100
@@ -206,6 +206,23 @@
ENTRY( "DSGetSize", CEnhanMediaTestClass::DSGetSize ),
+ ENTRY( "DSGetSize", CEnhanMediaTestClass::GeneralGen_StartProgDLL ),
+
+ ENTRY( "Gen_StartProgDL",CEnhanMediaTestClass::GeneralGen_StartProgDLL ),
+ ENTRY( "PDLSOpenL",CEnhanMediaTestClass::PDLSOpenL ),
+ ENTRY( "PDLSGetCurFileSizeL",CEnhanMediaTestClass::PDLSGetCurFileSizeL ),
+ ENTRY( "PDLSGetExpFileSizeL",CEnhanMediaTestClass::PDLSGetExpFileSizeL ),
+ ENTRY( "PDLSGetDLStatusL",CEnhanMediaTestClass::PDLSGetDLStatusL ),
+ ENTRY( "PDLSIsDLCompleteL",CEnhanMediaTestClass::PDLSIsDLCompleteL ),
+ ENTRY( "PDLSGetPerDownloadedL",CEnhanMediaTestClass::PDLSGetPerDownloadedL ),
+ ENTRY( "PDLSGetPerBufferedL",CEnhanMediaTestClass::PDLSGetPerBufferedL ),
+ ENTRY( "PDLSGetDLRateL",CEnhanMediaTestClass::PDLSGetDLRateL ),
+ ENTRY( "PDLSGetBitRateL",CEnhanMediaTestClass::PDLSGetBitRateL ),
+ ENTRY( "PDLSResumeDownloadL",CEnhanMediaTestClass::PDLSResumeDownloadL ),
+ ENTRY( "PDLSMoveFileL",CEnhanMediaTestClass::PDLSMoveFileL ),
+ ENTRY( "PDLSCancelDownloadL",CEnhanMediaTestClass::PDLSCancelDownloadL ),
+ ENTRY( "PDLSGetSize",CEnhanMediaTestClass::PDLSGetSize ),
+
ENTRY( "AudioEffect_IsEnabled",CEnhanMediaTestClass::AudioEffectIsEnabled ),
ENTRY( "AudioEffect_IsEnforced",CEnhanMediaTestClass::AudioEffectIsEnforced ),
ENTRY( "AudioEffect_Uid",CEnhanMediaTestClass::AudioEffectUid ),
@@ -311,6 +328,7 @@
(TText*)L"EEStreamOpen",
(TText*)L"EEStreamPrime",
(TText*)L"EEStreamStart",
+ (TText*)L"EEPDLSOpen",
};
if( (TUint)aKey >= (sizeof( keywords )/sizeof(TText*)) )
@@ -607,7 +625,15 @@
delete iDRMConfigIntfc;
iDRMConfigIntfc = NULL;
}
-
+ if(iUrlName)
+ {
+ delete iUrlName;
+ }
+
+ if(iAccessPtName)
+ {
+ delete iAccessPtName;
+ }
// ProcessEvent(EECreateFactory, error);
/* for (TUint i =0; i < iExpectedEvents.Count() ; i++)
{
@@ -654,6 +680,15 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ status = iFactory->CreateSourceControl( KProgDLSourceControl, iSourceControl );
+ if(status == KErrNone)
+ {
+ iMProgDLSource = static_cast<MProgDLSource*>(iSourceControl);
+ }
+ break;
+ }
default:
{
status = KErrNotSupported;
@@ -697,6 +732,12 @@
iFactory->DeleteSourceControl(objPtr);
iMFileSource = NULL;
}
+ if(iMProgDLSource)
+ {
+ MSourceControl* objPtr = iMProgDLSource;
+ iFactory->DeleteSourceControl(objPtr);
+ iMProgDLSource = NULL;
+ }
iLog->Log(_L("DeleteSourceControl OK"));
//ProcessEvent(EECreateSource, status);
return status;
@@ -1522,6 +1563,18 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ iMProgDLSource->AddObserver(*this);
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
case EVOLUMECONTROL:
{
if(iMVolumeControl)
@@ -2001,6 +2054,11 @@
iSourceControl = iMDescriptorSource;
}
break;
+ case EPDLSOURCE:
+ {
+ iSourceControl = iMProgDLSource;
+ }
+ break;
}
status = iMStreamControl->RemoveSource(*iSourceControl);
@@ -2041,6 +2099,11 @@
iSourceControl = iMDescriptorSource;
}
break;
+ case EPDLSOURCE:
+ {
+ iSourceControl = iMProgDLSource;
+ }
+ break;
}
status = iMStreamControl->AddSource(*iSourceControl);
if (status == KErrNone)
@@ -2132,6 +2195,10 @@
else
{
iLog->Log(_L("iMStreamControl->GetState() = %d"), state);
+ if (iMProgDLSource)
+ {
+ status = iMProgDLSource->Close();
+ }
status = iMStreamControl->Close();
iLog->Log(_L("iMStreamControl->GetState() = %d"), iMStreamControl->GetState());
@@ -2215,6 +2282,18 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ iMProgDLSource->RemoveObserver(*this);
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
case EVOLUMECONTROL:
{
if(iMVolumeControl)
@@ -3549,6 +3628,18 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ controlUid = iMProgDLSource->Type();
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
}
iLog->Log(_L("CEnhanMediaTestClass::ControlTypeL = [%d]"),control);
return status;
@@ -3646,6 +3737,18 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ controlType = iMProgDLSource->ControlType();
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
}
iLog->Log(_L("CEnhanMediaTestClass::ControlControlTypeL = [%d]"),control);
return status;
@@ -3884,6 +3987,378 @@
return status;
}
+TInt CEnhanMediaTestClass::GeneralGen_StartProgDLL(CStifItemParser& aItem)
+ {
+ TInt status = KErrNone;
+ TPtrC string;
+ //AddExpectedEvent(EEStartDownload,KMediumTimeout);
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+
+ status = aItem.GetNextString ( string );
+
+ if ( status != KErrNone )
+ {
+ iLog->Log(_L("CHelixSTIFClient:: File name missing in config file "));
+ return status;
+ }
+ else
+ {
+ if(iUrlName)
+ {
+ delete iUrlName;
+ iUrlName = NULL;
+ }
+ iUrlName = HBufC8::NewL(string.Length());
+ TPtr8 des = iUrlName->Des();
+ des.Copy(string);
+ }
+
+ status = aItem.GetNextString ( string );
+
+ if ( status != KErrNone )
+ {
+ iLog->Log(_L("CHelixSTIFClient:: File name missing in config file "));
+ return status;
+ }
+ else
+ {
+ if(iAccessPtName)
+ {
+ delete iAccessPtName;
+ iAccessPtName = NULL;
+ }
+ iAccessPtName = HBufC::NewL(string.Length());
+ TPtr des = iAccessPtName->Des();
+ des.Copy(string);
+ }
+
+ status = aItem.GetNextString ( string );
+
+ if ( status != KErrNone )
+ {
+ iLog->Log(_L("CHelixSTIFClient:: File name missing in config file "));
+ return status;
+ }
+ else
+ {
+ if(iFileName)
+ {
+ delete iFileName;
+ iFileName = NULL;
+ }
+ iFileName = HBufC::NewL(string.Length());
+ TPtr des = iFileName->Des();
+ des.Copy(string);
+ }
+
+ if ( !iDMgrConnected )
+ {
+ TRAP(status,iDownloadMgr.ConnectL( TUid::Uid(1), *this, EFalse ));
+ if(!status)
+ {
+ iDMgrConnected = ETrue;
+ }
+ else
+ {
+ iLog->Log(_L("CHelixSTIFClient::GeneralGen_StartProgDLL Connection failed to DlMgr "));
+ return status;
+ }
+ }
+
+ // Get IAP names and ids from the database
+ TInt res;
+ TBuf<40> name;
+ TUint32 id;
+
+ CCommsDatabase* TheDb = CCommsDatabase::NewL(EDatabaseTypeIAP);
+ CleanupStack::PushL(TheDb);
+
+ TheDb->ShowHiddenRecords();
+
+ CCommsDbTableView* view = TheDb->OpenTableLC(TPtrC(IAP));
+ res = view->GotoFirstRecord();
+
+ while(res == KErrNone)
+ {
+ view->ReadTextL(TPtrC(COMMDB_NAME), name);
+ view->ReadUintL(TPtrC(COMMDB_ID), id);
+
+ iLog->Log(_L("CHelixSTIFClient::GeneralGen_StartProgDLL Name[%s] ID[%d] "),&name,id);
+ if(!iAccessPtName->Des().Compare(name))
+ {
+ break;
+ }
+
+ res = view->GotoNextRecord();
+ RDebug::Print(_L("IAP name, id: %S, %d"), &name, id);
+ }
+
+ CleanupStack::PopAndDestroy(); // view
+ CleanupStack::PopAndDestroy(); // TheDb
+
+ status = iDownloadMgr.SetIntAttribute( EDlMgrIap,id );
+ if(status != KErrNone)
+ {
+ return status;
+ }
+
+ status = iDownloadMgr.SetDefaultStringAttribute( EDlAttrDestFilename, *iFileName ) ;
+
+
+ TRAP(status,iDownload = &(iDownloadMgr.CreateDownloadL(*iUrlName)));
+ if(status != KErrNone)
+ {
+ return status;
+ }
+
+ status = iDownload->Start();
+ if(status != KErrNone)
+ {
+ iLog->Log(_L("CHelixSTIFClient::GeneralGen_StartProgDLL Download Start Failed "));
+ return status;
+ }
+ status = iDownload->GetIntAttribute(EDlAttrId, iDownloadId);
+ if(status != KErrNone)
+ {
+ iLog->Log(_L("CHelixSTIFClient::GeneralGen_StartProgDLL Getting DLId failed "));
+ return status;
+ }
+
+ if(iActive)
+ {
+ delete iActive;
+ iActive = NULL;
+ }
+
+ iActive = new CActiveSchedulerWait;
+ RDebug::Print(_L("Before"));
+ iLog->Log(_L("Before = %d"), status);
+ iActive->Start();
+ iLog->Log(_L("After = %d"), status);
+ RDebug::Print(_L("AFter"));
+ iLog->Log(_L("CEnhanMediaTestClass::GeneralGen_StartProgDLL = %d"), status);
+ return status;
+ }
+
+
+TInt CEnhanMediaTestClass::PDLSOpenL(CStifItemParser& /*aItem*/)
+ {
+ AddExpectedEvent(EEPDLSOpen,KMediumTimeout);
+ TInt status(KErrNone);
+ //TBool stateDL;
+ //TUint percent;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+ status = iMProgDLSource->Open(*iFileName,iDownloadId);
+// iMProgDLSource->GetPercentageDownloaded(percent);
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetCurFileSizeL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint fileSize;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+ status = iMProgDLSource->GetCurrentFileSize(fileSize);
+ iLog->Log(_L("PDLSGetCurFileSizeL = %d"), fileSize);
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetExpFileSizeL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint fileSize;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+ status = iMProgDLSource->GetExpectedFileSize(fileSize);
+ iLog->Log(_L("PDLSGetExpFileSizeL = %d"), fileSize);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetDLStatusL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ MProgDLSource::TDownloadStatus dlStatus;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ dlStatus = iMProgDLSource->GetDownloadStatus();
+ iLog->Log(_L("PDLSGetDLStatusL = %d"), dlStatus);
+
+ return status;
+ }
+
+
+TInt CEnhanMediaTestClass::PDLSIsDLCompleteL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TBool dlComplete;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->IsDownloadComplete(dlComplete);
+ iLog->Log(_L("PDLSIsDLCompleteL = %d"), dlComplete);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetPerDownloadedL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint perDl;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->GetPercentageDownloaded(perDl);
+ iLog->Log(_L("PDLSGetPerDownloadedL = %d"), perDl);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetPerBufferedL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint perBuf;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->GetPercentageBuffered(perBuf);
+ iLog->Log(_L("PDLSGetPerBufferedL = %d"), perBuf);
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetDLRateL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint dlRate;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->GetDownloadingRate(dlRate);
+ iLog->Log(_L("PDLSGetDLRateL = %d"), dlRate);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetBitRateL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ TUint bitRate;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->GetBitRate(bitRate);
+ iLog->Log(_L("PDLSGetBitRateL = %d"), bitRate);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSResumeDownloadL(CStifItemParser& /*aItem*/)
+ {
+ TInt status(KErrNone);
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+
+ status = iMProgDLSource->ResumeDownload();
+ iLog->Log(_L("PDLSResumeDownloadL = %d"), status);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSMoveFileL(CStifItemParser& aItem)
+ {
+ TInt status(KErrNone);
+ TPtrC string;
+ TFileName fileName;
+ if(!iMProgDLSource)
+ {
+ return status = KErrNotReady;
+ }
+ status = aItem.GetNextString(string);
+ if ( status != KErrNone )
+ {
+ iLog->Log(_L("CEnhanMediaTestClass:: File name missing in config file "));
+ return status;
+ }
+ else
+ {
+ fileName.Copy(string);
+ }
+ if(iFileName)
+ {
+ delete iFileName;
+ iFileName = NULL;
+ }
+ iFileName = HBufC::NewL(fileName.Length());
+ iFileName->Des().Copy(fileName);
+
+
+ status = iMProgDLSource->MoveFile(*iFileName);
+ iLog->Log(_L("PDLSMoveFileL = %d"), status);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSGetSize(CStifItemParser& /*aItem*/)
+ {
+
+ iLog->Log(_L("CEnhanMediaTestClass::PDLSGetSize "));
+ TInt status(KErrNone);
+ TUint sizes = 0;
+ if(!iMProgDLSource)
+ {
+ status = KErrNotReady;
+ }
+ else
+ {
+ status = iMProgDLSource->GetSize(sizes);
+ }
+ iLog->Log(_L("CEnhanMediaTestClass::PDLSGetSize [%d]"), status);
+
+ return status;
+ }
+
+TInt CEnhanMediaTestClass::PDLSCancelDownloadL(CStifItemParser& /*aItem*/)
+ {
+ TMediaId mediaId;
+ TFourCC dataType;
+ iLog->Log(_L("CEnhanMediaTestClass::PDLSCancelDownloadL "));
+ TInt status(KErrNone);
+ if(!iMProgDLSource)
+ {
+ status = KErrNotReady;
+ }
+ else
+ {
+ status = iMProgDLSource->CancelDownload();
+ }
+ iLog->Log(_L("CEnhanMediaTestClass::PDLSCancelDownloadL [%d]"), status);
+
+ return status;
+ }
+
TInt CEnhanMediaTestClass::StreamCustomInterface(CStifItemParser& /*aItem*/)
{
iLog->Log(_L("CEnhanMediaTestClass::StreamCustomInterface "));
@@ -5157,6 +5632,19 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ controlUid = iMProgDLSource->Type();
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
+
case EVOLUMECONTROL:
{
if(iMVolumeControl)
@@ -5425,6 +5913,19 @@
}
break;
}
+ case EPDLSOURCE:
+ {
+ if(iMProgDLSource)
+ {
+ controlType = iMProgDLSource->ControlType();
+ }
+ else
+ {
+ status = KErrNotFound;
+ }
+ break;
+ }
+
case EVOLUMECONTROL:
{
if(iMVolumeControl)