--- a/contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtadata.cpp Fri Oct 02 13:15:59 2009 +0300
+++ b/contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtadata.cpp Mon Oct 12 10:17:04 2009 +0300
@@ -233,8 +233,12 @@
TRAPD( err, GetAttributeSetL(aAttributeSet) );
return err;
}
-
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+void RRtaData::GetAttributeSetL (RAttributeSet &aAttributeSet, TBool aWmdrmFlag) const
+#else
void RRtaData::GetAttributeSetL (RAttributeSet &aAttributeSet) const
+#endif // SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
{
TInt err = KErrOverflow;
TInt length = 0;
@@ -263,8 +267,15 @@
transferBuffer->Des().Copy(bufPtr);
TPtr8 transferPtr = transferBuffer->Des();
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ if(aWmdrmFlag)
+ err = SendReceive(EWMDRMGetAttributeSet, TIpcArgs(&transferPtr));
+ else
+ err = SendReceive(EGetAttributeSet, TIpcArgs(&transferPtr));
+#else
// attempt to retrieve the attributes
err = SendReceive(EGetAttributeSet, TIpcArgs(&transferPtr));
+#endif // SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
if(err == KErrOverflow)
{
// Find out the length required to receive the resulting attribute set
@@ -295,8 +306,12 @@
TRAPD( err, GetStringAttributeSetL(aStringAttributeSet) );
return err;
}
-
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+void RRtaData::GetStringAttributeSetL (RStringAttributeSet &aStringAttributeSet, TBool aWmdrmFlag) const
+#else
void RRtaData::GetStringAttributeSetL (RStringAttributeSet &aStringAttributeSet) const
+#endif // SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
{
TInt err = KErrOverflow;
TInt length = 0;
@@ -324,9 +339,16 @@
HBufC8* transferBuffer = HBufC8::NewLC(length);
transferBuffer->Des().Copy(bufPtr);
TPtr8 transferPtr = transferBuffer->Des();
-
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ if(aWmdrmFlag)
+ err = SendReceive(EWMDRMGetStringAttributeSet, TIpcArgs(&transferPtr));
+ else
+ err = SendReceive(EGetStringAttributeSet, TIpcArgs(&transferPtr));
+#else
// attempt to retrieve the attributes
err = SendReceive(EGetStringAttributeSet, TIpcArgs(&transferPtr));
+#endif // SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
if(err == KErrOverflow)
{
// Find out the length required to receive the resulting attribute set
@@ -361,3 +383,78 @@
}
return err;
}
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+EXPORT_C TInt RRtaData::Open(const TDesC8& aHeaderData)
+ {
+ TInt err = RRtaClient::Connect();
+ if(err != KErrNone)
+ {
+ return err;
+ }
+
+ if(IsDrmCapabilityEnforced())
+ {
+ err = SendReceive(ECreateDataMessageHandler, TIpcArgs());
+ if(err != KErrNone)
+ return err;
+
+ err = SendReceive(EReadWMDRMHeaderData, TIpcArgs(&aHeaderData));
+ }
+
+ else
+ {
+ err = SendReceive(ENoEnforceCreateDataMessageHandler, TIpcArgs());
+ if(err != KErrNone)
+ return err;
+
+ err = SendReceive(ENoEnforceReadWMDRMHeaderData, TIpcArgs(&aHeaderData));
+ }
+
+ return err;
+ }
+
+EXPORT_C TInt RRtaData::Read(const TDesC8& aEncryptedInputPacket, TDes8& aDecryptedOutputPacket)
+ {
+ TInt err = 0;
+ if(IsDrmCapabilityEnforced())
+ {
+ err = SendReceive(EReadWMDRMDataPacket, TIpcArgs(&aEncryptedInputPacket, &aDecryptedOutputPacket));
+ }
+ else
+ {
+ err = SendReceive(ENoEnforceReadWMDRMDataPacket, TIpcArgs(&aEncryptedInputPacket, &aDecryptedOutputPacket));
+ }
+
+ return err;
+ }
+
+
+EXPORT_C TInt RRtaData::GetWmdrmAttribute(TInt aAttribute, TInt& aValue) const
+ {
+ TPckg<TInt> valuePkg(aValue);
+ TInt err = SendReceive(EWMDRMGetAttribute, TIpcArgs(aAttribute, &valuePkg));
+ return err;
+ }
+
+EXPORT_C TInt RRtaData::GetWmdrmAttributeSet(ContentAccess::RAttributeSet& aAttributeSet) const
+ {
+ TRAPD( err, GetAttributeSetL(aAttributeSet, ETrue));
+ return err;
+ }
+
+EXPORT_C TInt RRtaData::GetWmdrmStringAttribute(TInt aAttribute, TDes& aValue) const
+ {
+ return SendReceive(EWMDRMGetStringAttribute, TIpcArgs(aAttribute, &aValue));
+ }
+
+EXPORT_C TInt RRtaData::GetWmdrmStringAttributeSet(ContentAccess::RStringAttributeSet& aStringAttributeSet) const
+ {
+ TRAPD( err, GetStringAttributeSetL(aStringAttributeSet, ETrue));
+ return err;
+ }
+
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+