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