--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtviewer/SvgtViewerPlugin/UIControlInc/SVGTDrmHelper.h Thu Dec 17 08:40:16 2009 +0200
@@ -0,0 +1,261 @@
+/*
+* Copyright (c) 2004,2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: DRM helper for svg files.
+*
+*/
+
+
+
+#ifndef SVGTDRMHELPER_H
+#define SVGTDRMHELPER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// DATA TYPES
+enum TSVGTRightsStatus
+ {
+ ESVGTFull,
+ ESVGTMissing,
+ ESVGTRestricted,
+ ESVGTExpired,
+ ESVGTPreview
+ };
+
+enum TSVGTExpireConstraint
+ {
+ ESVGTNone,
+ ESVGTCount,
+ ESVGTTime,
+ ESVGTCountAndTime
+ };
+
+// CONSTANTS
+const TInt KSVGTRightsAboutToExpire = -40000;
+
+// FORWARD DECLARATIONS
+class CDRMHelper;
+class CDRMHelperRightsConstraints;
+class MDesCArray;
+class CCoeEnv;
+
+// CLASS DECLARATION
+
+/**
+* DRM helper for SVG files.
+*
+* @lib SVGTUIControl.dll
+* @since 3.0
+*/
+class CSVGTDrmHelper : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CSVGTDrmHelper* NewL();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CSVGTDrmHelper* NewLC();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSVGTDrmHelper();
+
+ public: // New functions
+
+
+ /**
+ * This Function checks whether the file has preview rights.
+ * @since 3.0
+ * @param aFileHandle File handle for which usage rights info is loaded.
+ * @return True if the file has only preview rights
+ * False if not.
+ */
+ TBool IsPreviewL( RFile& aFileHandle );
+
+ /**
+ * This Function checks the rights associated with the file.
+ * @since 3.0
+ * @param aFileHandle File handle for which usage rights is checked.
+ * @return Button code
+ */
+ TInt CheckRightsAmountL( RFile& aFileHandle );
+
+
+ /**
+ * This Function gets the drm details needed for thumbnail generation.
+ * @since 3.0
+ * @param aFileHandle File handle for which usage rights info is loaded.
+ * @param aRightsValid True if the rights are valid
+ * @param aIsSeparateDeliveryNS True if the file is a separate delivery
+ * drm file non-supersitributable
+ * @param aIsProtected True if the file is protected
+ */
+ void GetDrmDetailsL( RFile& aFileHandle,
+ TBool& aRightsValid,
+ TBool& aIsSeparateDeliveryNS,
+ TBool& aIsProtected );
+
+
+ /**
+ * Loads usage rights information for a svg file using
+ * CDRMHelper. The loaded constraint is CContentAccess::EPlay.
+ * @since 3.0
+ * @param aFileHandle File handle for which usage rights info is loaded.
+ */
+ void LoadUsageRigthsInfoL( RFile& aFileHandle );
+
+
+ /**
+ * Gets usage rigths status.
+ * @since 3.0
+ * @param aStatus:
+ * ESVGTFull: Full rights
+ * ESVGTMissing: Rights missing
+ * ESVGTRestricted: Restricted rights
+ * ESVGTExpired: Expired rights (could be also future rights)
+ * ESVGTPreview: Preview rights
+ */
+ void GetUsageRightsStatus( TSVGTRightsStatus& aStatus );
+
+ /**
+ * Checks if the usage rigths are about to expire. If they are, returns
+ * info about the rights contraints that are about to expire.
+ * @since 3.0
+ * @param aAboutToExpire Boolean telling if the rigths are about to
+ * expire or not.
+ * @param aConstraint Constraint that is about to expire:
+ * ESVGTCount: Usage count about to expire
+ * ESVGTTime: Usage time about to expire
+ * ESVGTCountAndTime: Usage count and time about to
+ * expire
+ * @param aCountLeft Usage counts left (only if count is about to expire)
+ * @param aDaysLeft Usage days left (only if time is about to expire)
+ */
+ void GetExpireStatus( TBool& aAboutToExpire,
+ TSVGTExpireConstraint& aConstraint,
+ TInt& aCountLeft,
+ TInt& aDaysLeft );
+
+ /**
+ * Checks if sending of the file is allowed.
+ * @since 3.0
+ * @return ETrue: Sending is allowed.
+ * EFalse: Sending is not allowed.
+ */
+ TBool SendingAllowed() const;
+
+ /**
+ * Gets usage count.
+ * @since 3.0
+ * @param aCount Counts left.
+ * @return Error code:
+ * KErrNone: Count returned.
+ * KErrNotFound: Object doesn't have count based rights.
+ * KErrNotReady: Usage rights info not loaded.
+ */
+ TInt GetCount( TUint32& aCount );
+
+ /**
+ * Gets start time of time based rights.
+ * @since 3.0
+ * @param aStartTime Start time.
+ * @return Error code:
+ * KErrNone: Start time returned.
+ * KErrNotFound: Object doesn't have time based rights.
+ * KErrNotReady: Usage rights info not loaded.
+ */
+ TInt GetStartTime( TTime& aStartTime );
+
+ /**
+ * Gets end time of time based rights.
+ * @since 3.0
+ * @param aEndTime End time.
+ * @return Error code:
+ * KErrNone: End time returned.
+ * KErrNotFound: Object doesn't have time based rights.
+ * KErrNotReady: Usage rights info not loaded.
+ */
+ TInt GetEndTime( TTime& aEndTime );
+
+ /**
+ * Gets interval time constraint.
+ * @since 3.0
+ * @param aInterval Interval.
+ * @return Error code:
+ * KErrNone: Interval returned.
+ * KErrNotFound: Object doesn't have interval constraint.
+ * KErrNotReady: Usage rights info not loaded.
+ */
+ TInt GetInterval( TTimeIntervalSeconds& aInterval );
+
+ /**
+ * Gets start time of activated interval constraint.
+ * @since 3.0
+ * @param aStartTime Start time.
+ * @return Error code:
+ * KErrNone: Start time returned.
+ * KErrNotFound: Interval has not been started yet.
+ * KErrNotReady: Usage rights info not loaded.
+ */
+ TInt GetIntervalStart( TTime& aStartTime );
+
+ /**
+ * Provides info about files DRM protection status.
+ * @since 3.0
+ * @return ETrue: The file is DRM protected.
+ * EFalse: The file is not DRM protected.
+ */
+ TBool IsProtected() const;
+
+ /**
+ * Checks if given content can be set as an automated content.
+ * @since 3.0
+ * @return Boolean.
+ */
+ TBool CanSetAutomated() const;
+
+ private: // Private contructors
+
+ /**
+ * C++ default constructor.
+ */
+ CSVGTDrmHelper();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // Data
+ CDRMHelper* iDrmHelper;
+ CDRMHelperRightsConstraints* iRightsConstraints;
+ CCoeEnv* iEnv;
+
+ TBool iProtected;
+ TBool iExpired;
+ TBool iSendingAllowed;
+ TBool iCanSetAutomated;
+ //flag to check for SD protection
+ TInt iIsSeparateDelivery;
+ };
+
+#endif // SVGTDRMHELPER_H
+
+// End of File