contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtacontent.cpp
changeset 15 da2ae96f639b
parent 8 35751d3474b7
child 45 030c4fbc13d7
equal deleted inserted replaced
10:afc583cfa176 15:da2ae96f639b
   263 EXPORT_C TInt RRtaContent::GetAttributeSet (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const
   263 EXPORT_C TInt RRtaContent::GetAttributeSet (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const
   264 	{
   264 	{
   265 	TRAPD( err, GetAttributeSetL(aUniqueId, aAttributeSet) );
   265 	TRAPD( err, GetAttributeSetL(aUniqueId, aAttributeSet) );
   266 	return err;
   266 	return err;
   267 	}
   267 	}
   268 	
   268 
       
   269 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   270 void RRtaContent::GetAttributeSetL (const TDesC& aUniqueId, RAttributeSet &aAttributeSet, TBool aWmdrmFlag) const     
       
   271 #else  
   269 void RRtaContent::GetAttributeSetL (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const
   272 void RRtaContent::GetAttributeSetL (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const
       
   273 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   270 	{
   274 	{
   271 	TInt err = KErrOverflow;
   275 	TInt err = KErrOverflow;
   272 	TInt length = 0;
   276 	TInt length = 0;
   273 	TPckg <TInt> lengthPckg(length);
   277 	TPckg <TInt> lengthPckg(length);
   274 	
   278 	
   292 	while(err == KErrOverflow)
   296 	while(err == KErrOverflow)
   293 		{
   297 		{
   294 		HBufC8* transferBuffer = HBufC8::NewLC(length);
   298 		HBufC8* transferBuffer = HBufC8::NewLC(length);
   295 		transferBuffer->Des().Copy(bufPtr);
   299 		transferBuffer->Des().Copy(bufPtr);
   296 		TPtr8 transferPtr = transferBuffer->Des();
   300 		TPtr8 transferPtr = transferBuffer->Des();
   297 	
   301 
       
   302 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   303         if(aWmdrmFlag)     
       
   304             err = SendReceive(EWMDRMGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));     
       
   305         else     
       
   306             err = SendReceive(EGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));     
       
   307 #else 
   298 		// attempt to retrieve the attributes
   308 		// attempt to retrieve the attributes
   299 		err = SendReceive(EGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));	
   309 		err = SendReceive(EGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));
       
   310 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   300 		if(err == KErrOverflow)
   311 		if(err == KErrOverflow)
   301 			{
   312 			{
   302 			// Find out the length required to receive the resulting attribute set
   313 			// Find out the length required to receive the resulting attribute set
   303 			lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength()));	
   314 			lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength()));	
   304 			}
   315 			}
   326 	{
   337 	{
   327 	TRAPD( err, GetStringAttributeSetL(aUniqueId, aStringAttributeSet) );
   338 	TRAPD( err, GetStringAttributeSetL(aUniqueId, aStringAttributeSet) );
   328 	return err;
   339 	return err;
   329 	}
   340 	}
   330 
   341 
       
   342 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   343 void RRtaContent::GetStringAttributeSetL(const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet, TBool aWmdrmFlag) const       
       
   344 #else 
   331 void RRtaContent::GetStringAttributeSetL (const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet) const
   345 void RRtaContent::GetStringAttributeSetL (const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet) const
       
   346 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   332 	{
   347 	{
   333 	TInt err = KErrOverflow;
   348 	TInt err = KErrOverflow;
   334 	TInt length = 0;
   349 	TInt length = 0;
   335 	TPckg <TInt> lengthPckg(length);
   350 	TPckg <TInt> lengthPckg(length);
   336 	
   351 	
   354 	while(err == KErrOverflow)
   369 	while(err == KErrOverflow)
   355 		{
   370 		{
   356 		HBufC8* transferBuffer = HBufC8::NewLC(length);
   371 		HBufC8* transferBuffer = HBufC8::NewLC(length);
   357 		transferBuffer->Des().Copy(bufPtr);
   372 		transferBuffer->Des().Copy(bufPtr);
   358 		TPtr8 transferPtr = transferBuffer->Des();
   373 		TPtr8 transferPtr = transferBuffer->Des();
   359 	
   374 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   375         if(aWmdrmFlag)     
       
   376             err = SendReceive(EWMDRMGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));     
       
   377         else     
       
   378             err = SendReceive(EGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));     
       
   379 #else    
   360 		// attempt to retrieve the attributes
   380 		// attempt to retrieve the attributes
   361 		err = SendReceive(EGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));	
   381 		err = SendReceive(EGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr));	
       
   382 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   362 		if(err == KErrOverflow)
   383 		if(err == KErrOverflow)
   363 			{
   384 			{
   364 			// Find out the length required to receive the resulting attribute set
   385 			// Find out the length required to receive the resulting attribute set
   365 			lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength()));	
   386 			lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength()));	
   366 			}
   387 			}
   472 		{
   493 		{
   473 		err = SendReceive(ENoEnforceContentSetProperty, TIpcArgs(&agentPropertyPckg, &valuePckg));
   494 		err = SendReceive(ENoEnforceContentSetProperty, TIpcArgs(&agentPropertyPckg, &valuePckg));
   474 		}
   495 		}
   475 	return err;
   496 	return err;
   476 	}
   497 	}
       
   498 
       
   499 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
       
   500       
       
   501 EXPORT_C TInt RRtaContent::Open(const TDesC8& aHeaderData)     
       
   502     {     
       
   503     TInt err = RRtaClient::Connect();     
       
   504     if (err != KErrNone)     
       
   505         {     
       
   506         return err;     
       
   507         }     
       
   508          
       
   509     if(IsDrmCapabilityEnforced())     
       
   510         {     
       
   511         err = SendReceive(ECreateContentMessageHandler, TIpcArgs());     
       
   512         if(err != KErrNone)     
       
   513             {     
       
   514             return err;     
       
   515             }     
       
   516              
       
   517         err = SendReceive(EReadWMDRMHeaderData, TIpcArgs(&aHeaderData));     
       
   518         }     
       
   519              
       
   520     else     
       
   521         {     
       
   522         err = SendReceive(ENoEnforceCreateContentMessageHandler, TIpcArgs());     
       
   523         if(err != KErrNone)     
       
   524             {     
       
   525             return err;     
       
   526             }     
       
   527                  
       
   528         err = SendReceive(ENoEnforceReadWMDRMHeaderData, TIpcArgs(&aHeaderData));     
       
   529         }     
       
   530              
       
   531     return err;     
       
   532     }     
       
   533          
       
   534 EXPORT_C TInt RRtaContent::GetWmdrmAttribute(const TDesC& /*aUniqueId*/, TInt aAttribute, TInt& aValue) const     
       
   535     {     
       
   536     TPckg<TInt> valuePkg(aValue);     
       
   537     TInt result = SendReceive(EWMDRMGetAttribute, TIpcArgs(aAttribute, &valuePkg));     
       
   538     return result;     
       
   539     }     
       
   540          
       
   541 EXPORT_C TInt RRtaContent::GetWmdrmAttributeSet(const TDesC& aUniqueId, ContentAccess::RAttributeSet& aAttributeSet) const     
       
   542     {     
       
   543     TRAPD( err, GetAttributeSetL(aUniqueId, aAttributeSet, ETrue));     
       
   544     return err;     
       
   545     }     
       
   546          
       
   547 EXPORT_C TInt RRtaContent::GetWmdrmStringAttribute(const TDesC& /*aUniqueId*/, TInt aAttribute, TDes& aValue) const     
       
   548     {     
       
   549     TIpcArgs ipcArgs(aAttribute, &aValue);     
       
   550     TInt result = SendReceive(EWMDRMGetStringAttribute, ipcArgs);     
       
   551     return result;     
       
   552     }     
       
   553       
       
   554 EXPORT_C TInt RRtaContent::GetWmdrmStringAttributeSet(const TDesC& aUniqueId, ContentAccess::RStringAttributeSet& aStringAttributeSet) const     
       
   555     {     
       
   556     TRAPD( err, GetStringAttributeSetL(aUniqueId, aStringAttributeSet, ETrue));     
       
   557     return err;     
       
   558     }     
       
   559       
       
   560 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
       
   561