125 break; |
128 break; |
126 case EContentSetProperty: |
129 case EContentSetProperty: |
127 case ENoEnforceContentSetProperty: |
130 case ENoEnforceContentSetProperty: |
128 SetPropertyL(aMessage); |
131 SetPropertyL(aMessage); |
129 break; |
132 break; |
|
133 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
134 case EReadWMDRMHeaderData: |
|
135 case ENoEnforceReadWMDRMHeaderData: |
|
136 ReadWMDRMHeaderL(aMessage); |
|
137 break; |
|
138 |
|
139 case EWMDRMGetAttribute: |
|
140 case ENoEnforceWMDRMGetAttribute: |
|
141 GetWMDRMAttributeL(aMessage); |
|
142 break; |
|
143 |
|
144 case EWMDRMGetAttributeSet: |
|
145 case ENoEnforceWMDRMGetAttributeSet: |
|
146 GetWMDRMAttributeSetL(aMessage); |
|
147 break; |
|
148 |
|
149 case EWMDRMGetStringAttribute: |
|
150 case ENoEnforceWMDRMGetStringAttribute: |
|
151 GetWMDRMStringAttributeL(aMessage); |
|
152 break; |
|
153 |
|
154 case EWMDRMGetStringAttributeSet: |
|
155 case ENoEnforceWMDRMGetStringAttributeSet: |
|
156 GetWMDRMStringAttributeSetL(aMessage); |
|
157 break; |
|
158 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
130 default: |
159 default: |
131 CRtaSession::PanicClient(aMessage,EPanicIllegalFunction); |
160 CRtaSession::PanicClient(aMessage,EPanicIllegalFunction); |
132 break; |
161 break; |
133 } |
162 } |
134 } |
163 } |
375 |
404 |
376 void CRtaContentHandler::SetPropertyL(const RMessage2& /*aMessage*/) |
405 void CRtaContentHandler::SetPropertyL(const RMessage2& /*aMessage*/) |
377 { |
406 { |
378 User::Leave(KErrCANotSupported); |
407 User::Leave(KErrCANotSupported); |
379 } |
408 } |
|
409 |
|
410 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
411 |
|
412 void CRtaContentHandler::ReadWMDRMHeaderL(const RMessage2& aMessage) |
|
413 { |
|
414 HBufC8* headerData = ReadDesC8LC(aMessage, 0); |
|
415 iWmdrmContentObject = CWmdrmContentParser::NewL(*headerData); |
|
416 |
|
417 CleanupStack::PopAndDestroy(headerData); |
|
418 } |
|
419 |
|
420 void CRtaContentHandler::GetWMDRMAttributeL(const RMessage2& aMessage) |
|
421 { |
|
422 TInt attribute = aMessage.Int0(); |
|
423 TInt value; |
|
424 TPckg<TInt> valuePkg(value); |
|
425 |
|
426 User::LeaveIfError(iWmdrmContentObject->GetAttribute(attribute, value)); |
|
427 WriteL(aMessage, 1, valuePkg); |
|
428 } |
|
429 |
|
430 void CRtaContentHandler::GetWMDRMStringAttributeL(const RMessage2& aMessage) |
|
431 { |
|
432 TInt attribute = aMessage.Int0(); |
|
433 HBufC* value = ReadDes16LC(aMessage, 1); |
|
434 TPtr valuePtr = value->Des(); |
|
435 |
|
436 User::LeaveIfError(iWmdrmContentObject->GetStringAttribute(attribute, valuePtr)); |
|
437 WriteL(aMessage, 1, valuePtr); |
|
438 |
|
439 CleanupStack::PopAndDestroy(value); |
|
440 } |
|
441 |
|
442 void CRtaContentHandler::GetWMDRMAttributeSetL(const RMessage2& aMessage) |
|
443 { |
|
444 RAttributeSet attributeSet; |
|
445 CleanupClosePushL(attributeSet); |
|
446 |
|
447 HBufC8* value = ReadDes8LC(aMessage, 1); |
|
448 TPtr8 valuePtr = value->Des(); |
|
449 RDesReadStream readStream(valuePtr); |
|
450 CleanupClosePushL(readStream); |
|
451 |
|
452 attributeSet.InternalizeL(readStream); |
|
453 CleanupStack::PopAndDestroy(2, value); |
|
454 |
|
455 iWmdrmContentObject->GetAttributeSet(attributeSet); |
|
456 |
|
457 // Write the object out to a buffer, send to client |
|
458 CBufFlat* buf = CBufFlat::NewL(50); |
|
459 CleanupStack::PushL(buf); |
|
460 |
|
461 // create write stream |
|
462 RBufWriteStream writeStream(*buf); |
|
463 CleanupClosePushL(writeStream); |
|
464 |
|
465 // write the directory to the stream |
|
466 attributeSet.ExternalizeL(writeStream); |
|
467 CleanupStack::PopAndDestroy(&writeStream); |
|
468 |
|
469 TPtr8 bufPtr = buf->Ptr(0); |
|
470 WriteL(aMessage, 1, bufPtr); |
|
471 |
|
472 CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet |
|
473 } |
|
474 |
|
475 void CRtaContentHandler::GetWMDRMStringAttributeSetL(const RMessage2& aMessage) |
|
476 { |
|
477 RStringAttributeSet attributeSet; |
|
478 CleanupClosePushL(attributeSet); |
|
479 |
|
480 HBufC8* value = ReadDes8LC(aMessage, 1); |
|
481 TPtr8 valuePtr = value->Des(); |
|
482 RDesReadStream readStream(valuePtr); |
|
483 CleanupClosePushL(readStream); |
|
484 |
|
485 attributeSet.InternalizeL(readStream); |
|
486 CleanupStack::PopAndDestroy(2, value); |
|
487 |
|
488 iWmdrmContentObject->GetStringAttributeSet(attributeSet); |
|
489 |
|
490 // Write the object out to a buffer, send to client |
|
491 CBufFlat* buf = CBufFlat::NewL(50); |
|
492 CleanupStack::PushL(buf); |
|
493 // create write stream |
|
494 RBufWriteStream writeStream(*buf); |
|
495 CleanupClosePushL(writeStream); |
|
496 |
|
497 // write the directory to the stream |
|
498 attributeSet.ExternalizeL(writeStream); |
|
499 CleanupStack::PopAndDestroy(&writeStream); |
|
500 |
|
501 TPtr8 bufPtr = buf->Ptr(0); |
|
502 WriteL(aMessage, 1, bufPtr); |
|
503 |
|
504 CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet |
|
505 } |
|
506 |
|
507 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
508 |