171 break; |
168 break; |
172 case EManagerDisplayManagementInfo: |
169 case EManagerDisplayManagementInfo: |
173 case ENoEnforceManagerDisplayManagementInfo: |
170 case ENoEnforceManagerDisplayManagementInfo: |
174 DisplayManagementInfoL(aMessage); |
171 DisplayManagementInfoL(aMessage); |
175 break; |
172 break; |
176 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
173 |
177 case EWMDRMGetAttribute: |
|
178 case ENoEnforceWMDRMGetAttribute: |
|
179 GetWMDRMAttributeL(aMessage); |
|
180 break; |
|
181 |
|
182 case EWMDRMGetAttributeSet: |
|
183 case ENoEnforceWMDRMGetAttributeSet: |
|
184 GetWMDRMAttributeSetL(aMessage); |
|
185 break; |
|
186 |
|
187 case EWMDRMGetStringAttribute: |
|
188 case ENoEnforceWMDRMGetStringAttribute: |
|
189 GetWMDRMStringAttributeL(aMessage); |
|
190 break; |
|
191 |
|
192 case EWMDRMGetStringAttributeSet: |
|
193 case ENoEnforceWMDRMGetStringAttributeSet: |
|
194 GetWMDRMStringAttributeSetL(aMessage); |
|
195 break; |
|
196 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
197 default: |
174 default: |
198 CRtaSession::PanicClient(aMessage,EPanicIllegalFunction); |
175 CRtaSession::PanicClient(aMessage,EPanicIllegalFunction); |
199 break; |
176 break; |
200 } |
177 } |
201 } |
178 } |
568 void CRtaManagerHandler::DisplayManagementInfoL(const RMessage2& /*aMessage*/) |
545 void CRtaManagerHandler::DisplayManagementInfoL(const RMessage2& /*aMessage*/) |
569 { |
546 { |
570 User::Leave(KErrCANotSupported); |
547 User::Leave(KErrCANotSupported); |
571 } |
548 } |
572 |
549 |
573 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
574 |
|
575 void CRtaManagerHandler::OpenWmdrmContentObjectL(const RMessage2& aMessage, TInt aHeaderParameter) |
|
576 { |
|
577 HBufC8* headerData = ReadDesC8LC(aMessage, aHeaderParameter); |
|
578 iWmdrmContentObject = CWmdrmContentParser::NewL(*headerData); |
|
579 |
|
580 CleanupStack::PopAndDestroy(headerData); |
|
581 } |
|
582 |
|
583 void CRtaManagerHandler::GetWMDRMAttributeL(const RMessage2& aMessage) |
|
584 { |
|
585 OpenWmdrmContentObjectL(aMessage, 0); |
|
586 |
|
587 TInt attribute = aMessage.Int1(); |
|
588 TInt value; |
|
589 TPckg<TInt> valuePckg(value); |
|
590 |
|
591 User::LeaveIfError(iWmdrmContentObject->GetAttribute(attribute, value)); |
|
592 WriteL(aMessage, 2, valuePckg); |
|
593 } |
|
594 |
|
595 void CRtaManagerHandler::GetWMDRMStringAttributeL(const RMessage2& aMessage) |
|
596 { |
|
597 OpenWmdrmContentObjectL(aMessage, 0); |
|
598 |
|
599 TInt attribute = aMessage.Int1(); |
|
600 HBufC* value = ReadDes16LC(aMessage, 2); |
|
601 TPtr valuePtr = value->Des(); |
|
602 |
|
603 User::LeaveIfError(iWmdrmContentObject->GetStringAttribute(attribute, valuePtr)); |
|
604 WriteL(aMessage, 2, valuePtr); |
|
605 |
|
606 CleanupStack::PopAndDestroy(value); |
|
607 } |
|
608 |
|
609 void CRtaManagerHandler::GetWMDRMAttributeSetL(const RMessage2& aMessage) |
|
610 { |
|
611 OpenWmdrmContentObjectL(aMessage, 0); |
|
612 |
|
613 RAttributeSet attributeSet; |
|
614 CleanupClosePushL(attributeSet); |
|
615 |
|
616 HBufC8* value = ReadDes8LC(aMessage, 1); |
|
617 TPtr8 valuePtr = value->Des(); |
|
618 RDesReadStream readStream(valuePtr); |
|
619 CleanupClosePushL(readStream); |
|
620 |
|
621 attributeSet.InternalizeL(readStream); |
|
622 CleanupStack::PopAndDestroy(2, value); |
|
623 |
|
624 iWmdrmContentObject->GetAttributeSet(attributeSet); |
|
625 |
|
626 // Write the object out to a buffer, send to client |
|
627 CBufFlat* buf = CBufFlat::NewL(50); |
|
628 CleanupStack::PushL(buf); |
|
629 // create write stream |
|
630 RBufWriteStream writeStream(*buf); |
|
631 CleanupClosePushL(writeStream); |
|
632 |
|
633 // write the directory to the stream |
|
634 attributeSet.ExternalizeL(writeStream); |
|
635 CleanupStack::PopAndDestroy(&writeStream); |
|
636 |
|
637 TPtr8 bufPtr = buf->Ptr(0); |
|
638 WriteL(aMessage, 1, bufPtr); |
|
639 |
|
640 CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet |
|
641 } |
|
642 |
|
643 void CRtaManagerHandler::GetWMDRMStringAttributeSetL(const RMessage2& aMessage) |
|
644 { |
|
645 OpenWmdrmContentObjectL(aMessage, 0); |
|
646 |
|
647 RStringAttributeSet attributeSet; |
|
648 CleanupClosePushL(attributeSet); |
|
649 |
|
650 HBufC8* value = ReadDes8LC(aMessage, 1); |
|
651 TPtr8 valuePtr = value->Des(); |
|
652 RDesReadStream readStream(valuePtr); |
|
653 CleanupClosePushL(readStream); |
|
654 |
|
655 attributeSet.InternalizeL(readStream); |
|
656 CleanupStack::PopAndDestroy(2, value); |
|
657 |
|
658 iWmdrmContentObject->GetStringAttributeSetL(attributeSet); |
|
659 |
|
660 // Write the object out to a buffer, send to client |
|
661 CBufFlat* buf = CBufFlat::NewL(50); |
|
662 CleanupStack::PushL(buf); |
|
663 // create write stream |
|
664 RBufWriteStream writeStream(*buf); |
|
665 CleanupClosePushL(writeStream); |
|
666 |
|
667 // write the directory to the stream |
|
668 attributeSet.ExternalizeL(writeStream); |
|
669 CleanupStack::PopAndDestroy(&writeStream); |
|
670 |
|
671 TPtr8 bufPtr = buf->Ptr(0); |
|
672 WriteL(aMessage, 1, bufPtr); |
|
673 |
|
674 CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet |
|
675 } |
|
676 |
|
677 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|