729 else |
729 else |
730 { |
730 { |
731 User::LeaveIfError(SendReceive(ENoEnforceManagerDisplayManagementInfo, TIpcArgs())); |
731 User::LeaveIfError(SendReceive(ENoEnforceManagerDisplayManagementInfo, TIpcArgs())); |
732 } |
732 } |
733 } |
733 } |
|
734 |
|
735 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
736 |
|
737 EXPORT_C TInt RRtaManager::GetAttribute(const TDesC8& aHeaderData, TInt aAttribute, TInt& aValue) const |
|
738 { |
|
739 TPckg<TInt> valuePkg(aValue); |
|
740 TInt result = SendReceive(EWMDRMGetAttribute, TIpcArgs(&aHeaderData, aAttribute, &valuePkg)); |
|
741 return result; |
|
742 } |
|
743 |
|
744 EXPORT_C TInt RRtaManager::GetAttributeSet(const TDesC8& aHeaderData, ContentAccess::RAttributeSet& aAttributeSet) const |
|
745 { |
|
746 TRAPD(err, GetAttributeSetL (aHeaderData, aAttributeSet)); |
|
747 return err; |
|
748 } |
|
749 |
|
750 EXPORT_C TInt RRtaManager::GetStringAttribute(const TDesC8& aHeaderData, TInt aAttribute, TDes& aValue) const |
|
751 { |
|
752 TInt result = SendReceive(EWMDRMGetStringAttribute, TIpcArgs(&aHeaderData, aAttribute, &aValue)); |
|
753 return result; |
|
754 } |
|
755 |
|
756 EXPORT_C TInt RRtaManager::GetStringAttributeSet(const TDesC8& aHeaderData, ContentAccess::RStringAttributeSet& aStringAttributeSet) const |
|
757 { |
|
758 TRAPD(err, GetStringAttributeSetL(aHeaderData, aStringAttributeSet)); |
|
759 return err; |
|
760 } |
|
761 |
|
762 void RRtaManager::GetAttributeSetL(const TDesC8& aHeaderData, ContentAccess::RAttributeSet& aAttributeSet) const |
|
763 { |
|
764 // dynamic buffer since we don't know in advance the size required |
|
765 CBufFlat* buffer = CBufFlat::NewL(KDefaultBufferSize); |
|
766 CleanupStack::PushL(buffer); |
|
767 |
|
768 RBufWriteStream stream(*buffer); |
|
769 CleanupClosePushL(stream); |
|
770 |
|
771 // write the directory to the stream |
|
772 aAttributeSet.ExternalizeL(stream); |
|
773 CleanupStack::PopAndDestroy(&stream); |
|
774 |
|
775 // Create an HBufC8 from the stream buf's length, and copy |
|
776 // the stream buffer into this descriptor |
|
777 HBufC8* transferBuffer = HBufC8::NewLC(buffer->Size() * 15); |
|
778 TPtr8 ptr = buffer->Ptr(0); |
|
779 transferBuffer->Des().Copy(ptr); |
|
780 TPtr8 transferPtr = transferBuffer->Des(); |
|
781 |
|
782 User::LeaveIfError(SendReceive(EWMDRMGetAttributeSet, TIpcArgs(&aHeaderData, &transferPtr))); |
|
783 |
|
784 // read in the attribute values from the buffer |
|
785 RDesReadStream readStream(transferPtr); |
|
786 CleanupClosePushL(readStream); |
|
787 aAttributeSet.InternalizeL(readStream); |
|
788 CleanupStack::PopAndDestroy(&readStream); |
|
789 |
|
790 CleanupStack::PopAndDestroy(2, buffer); |
|
791 } |
|
792 |
|
793 void RRtaManager::GetStringAttributeSetL(const TDesC8& aHeaderData, ContentAccess::RStringAttributeSet& aStringAttributeSet) const |
|
794 { |
|
795 // dynamic buffer since we don't know in advance the size required |
|
796 CBufFlat* buffer = CBufFlat::NewL(KDefaultBufferSize); |
|
797 CleanupStack::PushL(buffer); |
|
798 |
|
799 RBufWriteStream stream(*buffer); |
|
800 CleanupClosePushL(stream); |
|
801 |
|
802 // write the directory to the stream |
|
803 aStringAttributeSet.ExternalizeL(stream); |
|
804 CleanupStack::PopAndDestroy(&stream); |
|
805 |
|
806 // Create an HBufC8 from the stream buf's length, and copy |
|
807 // the stream buffer into this descriptor |
|
808 HBufC8* transferBuffer = HBufC8::NewLC(buffer->Size()*15); |
|
809 TPtr8 ptr = buffer->Ptr(0); |
|
810 transferBuffer->Des().Copy(ptr); |
|
811 TPtr8 transferPtr = transferBuffer->Des(); |
|
812 |
|
813 User::LeaveIfError(SendReceive(EWMDRMGetStringAttributeSet, TIpcArgs(&aHeaderData, &transferPtr))); |
|
814 |
|
815 // read in the attribute values from the buffer |
|
816 RDesReadStream readStream(transferPtr); |
|
817 CleanupClosePushL(readStream); |
|
818 aStringAttributeSet.InternalizeL(readStream); |
|
819 CleanupStack::PopAndDestroy(&readStream); |
|
820 |
|
821 CleanupStack::PopAndDestroy(2, buffer); |
|
822 } |
|
823 |
|
824 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
825 |