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 |
|
272 void RRtaContent::GetAttributeSetL (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const |
269 void RRtaContent::GetAttributeSetL (const TDesC& aUniqueId, RAttributeSet &aAttributeSet) const |
273 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
274 { |
270 { |
275 TInt err = KErrOverflow; |
271 TInt err = KErrOverflow; |
276 TInt length = 0; |
272 TInt length = 0; |
277 TPckg <TInt> lengthPckg(length); |
273 TPckg <TInt> lengthPckg(length); |
278 |
274 |
297 { |
293 { |
298 HBufC8* transferBuffer = HBufC8::NewLC(length); |
294 HBufC8* transferBuffer = HBufC8::NewLC(length); |
299 transferBuffer->Des().Copy(bufPtr); |
295 transferBuffer->Des().Copy(bufPtr); |
300 TPtr8 transferPtr = transferBuffer->Des(); |
296 TPtr8 transferPtr = transferBuffer->Des(); |
301 |
297 |
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 |
|
308 // attempt to retrieve the attributes |
298 // attempt to retrieve the attributes |
309 err = SendReceive(EGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr)); |
299 err = SendReceive(EGetAttributeSet, TIpcArgs(&aUniqueId, &transferPtr)); |
310 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
311 if(err == KErrOverflow) |
300 if(err == KErrOverflow) |
312 { |
301 { |
313 // Find out the length required to receive the resulting attribute set |
302 // Find out the length required to receive the resulting attribute set |
314 lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength())); |
303 lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength())); |
315 } |
304 } |
337 { |
326 { |
338 TRAPD( err, GetStringAttributeSetL(aUniqueId, aStringAttributeSet) ); |
327 TRAPD( err, GetStringAttributeSetL(aUniqueId, aStringAttributeSet) ); |
339 return err; |
328 return err; |
340 } |
329 } |
341 |
330 |
342 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
343 void RRtaContent::GetStringAttributeSetL(const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet, TBool aWmdrmFlag) const |
|
344 #else |
|
345 void RRtaContent::GetStringAttributeSetL (const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet) const |
331 void RRtaContent::GetStringAttributeSetL (const TDesC& aUniqueId, RStringAttributeSet &aStringAttributeSet) const |
346 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
347 { |
332 { |
348 TInt err = KErrOverflow; |
333 TInt err = KErrOverflow; |
349 TInt length = 0; |
334 TInt length = 0; |
350 TPckg <TInt> lengthPckg(length); |
335 TPckg <TInt> lengthPckg(length); |
351 |
336 |
369 while(err == KErrOverflow) |
354 while(err == KErrOverflow) |
370 { |
355 { |
371 HBufC8* transferBuffer = HBufC8::NewLC(length); |
356 HBufC8* transferBuffer = HBufC8::NewLC(length); |
372 transferBuffer->Des().Copy(bufPtr); |
357 transferBuffer->Des().Copy(bufPtr); |
373 TPtr8 transferPtr = transferBuffer->Des(); |
358 TPtr8 transferPtr = transferBuffer->Des(); |
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 |
|
380 // attempt to retrieve the attributes |
359 // attempt to retrieve the attributes |
381 err = SendReceive(EGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr)); |
360 err = SendReceive(EGetStringAttributeSet, TIpcArgs(&aUniqueId, &transferPtr)); |
382 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT |
|
383 if(err == KErrOverflow) |
361 if(err == KErrOverflow) |
384 { |
362 { |
385 // Find out the length required to receive the resulting attribute set |
363 // Find out the length required to receive the resulting attribute set |
386 lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength())); |
364 lengthPckg.Copy(transferPtr.Left(lengthPckg.MaxLength())); |
387 } |
365 } |
494 err = SendReceive(ENoEnforceContentSetProperty, TIpcArgs(&agentPropertyPckg, &valuePckg)); |
472 err = SendReceive(ENoEnforceContentSetProperty, TIpcArgs(&agentPropertyPckg, &valuePckg)); |
495 } |
473 } |
496 return err; |
474 return err; |
497 } |
475 } |
498 |
476 |
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 |
|