27 #include <caf/stringattributeset.h> |
27 #include <caf/stringattributeset.h> |
28 #include <caf/virtualpath.h> |
28 #include <caf/virtualpath.h> |
29 #include <caf/caferr.h> |
29 #include <caf/caferr.h> |
30 #include <utf.h> |
30 #include <utf.h> |
31 #include <drmagents.h> |
31 #include <drmagents.h> |
|
32 #include <featmgr.h> |
32 #include "Oma2Agent.h" |
33 #include "Oma2Agent.h" |
33 #include "Oma2AgentAttributes.h" |
34 #include "Oma2AgentAttributes.h" |
34 #include "Oma1Dcf.h" |
35 #include "Oma1Dcf.h" |
35 #include "oma2dcf.h" |
36 #include "oma2dcf.h" |
36 #include "DRMRightsClient.h" |
37 #include "DRMRightsClient.h" |
69 |
70 |
70 _LIT16(KOma1DcfContentType16, "application/vnd.oma.drm.content"); |
71 _LIT16(KOma1DcfContentType16, "application/vnd.oma.drm.content"); |
71 _LIT16(KOma2DcfContentType16, "application/vnd.oma.drm.dcf"); |
72 _LIT16(KOma2DcfContentType16, "application/vnd.oma.drm.dcf"); |
72 const TInt KMaxAlbumTrack = 3; |
73 const TInt KMaxAlbumTrack = 3; |
73 const TInt KMaxRecordingYear = 6; |
74 const TInt KMaxRecordingYear = 6; |
|
75 |
|
76 const TInt KAllowAllDefined = |
|
77 DRM::EDrmAllowAudioAnalog | |
|
78 DRM::EDrmAllowAudioFmTransmitter | |
|
79 DRM::EDrmAllowAudioBluetooth | |
|
80 DRM::EDrmAllowAudioUplink | |
|
81 DRM::EDrmAllowVideoAnalog | |
|
82 DRM::EDrmAllowVideoMacroVision | |
|
83 DRM::EDrmAllowAudioUsb | |
|
84 DRM::EDrmAllowAudioHdmiHdcpRequired | |
|
85 DRM::EDrmAllowAudioHdmi | |
|
86 DRM::EDrmAllowVideoHDMI | |
|
87 DRM::EDrmAllowVideoHdmiHdcpRequested | |
|
88 DRM::EDrmAllowVideoHdmiHdcpRequired; |
74 |
89 |
75 // ============================= LOCAL FUNCTIONS =============================== |
90 // ============================= LOCAL FUNCTIONS =============================== |
76 |
91 |
77 // ----------------------------------------------------------------------------- |
92 // ----------------------------------------------------------------------------- |
78 // CollectEmbeddedRosL |
93 // CollectEmbeddedRosL |
449 value = EOmaDrm1SeparateDelivery; |
464 value = EOmaDrm1SeparateDelivery; |
450 } |
465 } |
451 } |
466 } |
452 break; |
467 break; |
453 case DRM::EDrmAllowedOutputs: |
468 case DRM::EDrmAllowedOutputs: |
454 value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter; |
469 if( dcf2 ) |
|
470 { |
|
471 value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter; |
|
472 } |
|
473 else |
|
474 { |
|
475 value = KAllowAllDefined; |
|
476 } |
455 break; |
477 break; |
456 default: |
478 default: |
457 value = KErrCANotSupported; |
479 value = KErrCANotSupported; |
458 break; |
480 break; |
459 } |
481 } |
681 { |
703 { |
682 value = dcf2->iRecordingYear; |
704 value = dcf2->iRecordingYear; |
683 } |
705 } |
684 break; |
706 break; |
685 case DRM::EDrmAllowedOutputs: |
707 case DRM::EDrmAllowedOutputs: |
686 value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter; |
708 if( dcf2 ) |
|
709 { |
|
710 value = DRM::EDrmAllowAudioAnalog | DRM::EDrmAllowAudioBluetooth | DRM::EDrmAllowVideoMacroVision | DRM::EDrmAllowAudioFmTransmitter; |
|
711 } |
|
712 else |
|
713 { |
|
714 value = KAllowAllDefined; |
|
715 } |
687 break; |
716 break; |
688 case ERightsNone: |
717 case ERightsNone: |
689 if (aRightsClient == NULL) |
718 if (aRightsClient == NULL) |
690 { |
719 { |
691 value = client.Connect(); |
720 value = client.Connect(); |
815 TDes& aValue, |
844 TDes& aValue, |
816 const TVirtualPathPtr& aVirtualPath, |
845 const TVirtualPathPtr& aVirtualPath, |
817 RDRMRightsClient* aRightsClient) |
846 RDRMRightsClient* aRightsClient) |
818 { |
847 { |
819 TInt err = KErrCANotSupported; |
848 TInt err = KErrCANotSupported; |
|
849 TInt ret = KErrNone; |
820 HBufC* b = NULL; |
850 HBufC* b = NULL; |
821 COma1Dcf* dcf1 = NULL; |
851 COma1Dcf* dcf1 = NULL; |
822 COma2Dcf* dcf2 = NULL; |
852 COma2Dcf* dcf2 = NULL; |
823 TPtrC8 ptr(NULL, 0); |
853 TPtrC8 ptr(NULL, 0); |
824 TPtr ptr16(NULL, 0, 0); |
854 TPtr ptr16(NULL, 0, 0); |
984 { |
1014 { |
985 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L(*dcf2->iSilentParameter)); |
1015 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L(*dcf2->iSilentParameter)); |
986 } |
1016 } |
987 break; |
1017 break; |
988 case ERightsIssuerUrl: |
1018 case ERightsIssuerUrl: |
989 #ifndef __DRM_FULL |
1019 TRAP(ret, FeatureManager::InitializeLibL()); |
990 err = KErrNotSupported; |
1020 |
991 #else |
1021 if (!ret && FeatureManager::FeatureSupported(KFeatureIdFfOmadrm1FullSupport)) |
992 if (aDcfFile.iRightsIssuerURL != NULL) |
1022 { |
993 { |
1023 if (aDcfFile.iRightsIssuerURL != NULL) |
994 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L(*aDcfFile.iRightsIssuerURL)); |
1024 { |
995 } |
1025 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L( |
996 #endif |
1026 *aDcfFile.iRightsIssuerURL)); |
|
1027 } |
|
1028 } |
|
1029 else |
|
1030 { |
|
1031 err = KErrNotSupported; |
|
1032 } |
|
1033 |
|
1034 if (!ret) |
|
1035 { |
|
1036 FeatureManager::UnInitializeLib(); |
|
1037 } |
|
1038 |
997 break; |
1039 break; |
998 case ETransactionTrackingId: |
1040 case ETransactionTrackingId: |
999 if (dcf2 != NULL && dcf2->iTransactionTracking) |
1041 if (dcf2 != NULL && dcf2->iTransactionTracking) |
1000 { |
1042 { |
1001 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L(*dcf2->iTransactionTracking)); |
1043 TRAP(err, b = CnvUtfConverter::ConvertToUnicodeFromUtf8L(*dcf2->iTransactionTracking)); |