XBOX::VJSObject VJSSharedWorkerClass::MakeConstructor (XBOX::VJSContext inContext) { XBOX::VJSObject constructor = JS4DMakeConstructor(inContext, Class(), _Construct, false, VJSSharedWorkerClass::sConstrFunctions ); XBOX::VJSArray listArray(inContext); constructor.SetProperty("list", listArray, JS4D::PropertyAttributeDontDelete); return constructor; }
static void _AddToList (XBOX::VJSContext &inContext, const XBOX::VString &inConstructorName, XBOX::VJSObject &inConstructedObject) { if (inContext.GetGlobalObject().HasProperty(inConstructorName)) { XBOX::VJSObject workerObject = inContext.GetGlobalObject().GetPropertyAsObject(inConstructorName); if (workerObject.IsObject() && workerObject.HasProperty("list")) { XBOX::VJSValue value = workerObject.GetProperty("list"); if (value.IsArray()) { XBOX::VJSArray listArray(value); sLONG i; for (i = 0; i < listArray.GetLength(); i++) { value = listArray.GetValueAt(i); if (value.IsNull()) { listArray.SetValueAt(i, inConstructedObject); break; } } if (i == listArray.GetLength()) listArray.PushValue(inConstructedObject); } else { xbox_assert(false); } } else { xbox_assert(false); } } else { xbox_assert(false); } }
TInt DRM::CDrmUtilityGlobalNoteWrapper::ShowPreviewListQueryL( TInt aResourceId ) { TInt index( 0 ); CAknGlobalListQuery* listQuery( CAknGlobalListQuery::NewLC() ); HBufC* buffer( HBufC::NewLC( DRM::KDRMNoteBufferMaxSize ) ); TPtr bufPtr( buffer->Des() ); bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_ACTIVATE_PREVIEW ); listQuery->SetHeadingL( bufPtr ); CDesCArray* listArray( new( ELeave ) CDesCArrayFlat( 2 ) ); CleanupStack::PushL( listArray ); bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_ACTIVATE ); listArray->AppendL( bufPtr ); switch( aResourceId ) { case R_DRMUTILITY_PREV_AUDIO_GET_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_GET_PREVIEW ); break; case R_DRMUTILITY_PREV_VIDEO_GET_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_GET_PREVIEW_VIDEO ); break; case R_DRMUTILITY_PREV_AUDIO_PLAY_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_PLAY_PREVIEW ); break; case R_DRMUTILITY_PREV_VIDEO_PLAY_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_PLAY_PREVIEW_VIDEO ); break; default: return 0; } listArray->AppendL( bufPtr ); if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) && DRM::CDrmUtilityInfoNoteWrapper::EvaluateCoverResourceId( aResourceId ) ) { RProcess myProcess; TUid myProcessUid( KNullUid ); RThread().Process( myProcess ); myProcessUid = myProcess.Identity(); TUtilitySDData utilityData; // First field is DrmUtility's Uid utilityData.iUtilityUid = KUidCoverUiCategoryDrmUtility; // ProcessId which uses DrmUtility utilityData.iHandlerProcessId = myProcessUid; TUtilitySDDataPckg pckg( utilityData ); CAknSDData* sd( CAknSDData::NewL( KUidCoverUiCategoryDrmUtility, aResourceId, pckg ) ); // ownership to notifier client listQuery->SetSecondaryDisplayData( sd ); } iStatus = KRequestPending; listQuery->ShowListQueryL( listArray, iStatus ); SetActive(); iWait.Start(); CleanupStack::PopAndDestroy( 3, listQuery ); //listArray, buffer, listQuery if ( iStatus.Int() != EAknSoftkeyNo ) { index = iStatus.Int() + 1; } return index; }