omadrm/drmengine/agentv2/src/Oma2AgentAttributes.cpp
branchRCL_3
changeset 32 457cd4423b8c
parent 18 8a03a285ab14
child 36 ce3df08ce7f6
equal deleted inserted replaced
25:04da681812a9 32:457cd4423b8c
    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));