diff -r 000000000000 -r 95b198f216e5 drm_plat/drm_utility_api/inc/drmuicheckrightsobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/drm_plat/drm_utility_api/inc/drmuicheckrightsobserver.h Thu Dec 17 08:52:27 2009 +0200 @@ -0,0 +1,154 @@ +/* +* Copyright (c) 2006-2007 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: Observer interface for CheckRightsAmount + * +*/ + + +#ifndef MDRMUICHECKRIGHTSOBSERVER_H +#define MDRMUICHECKRIGHTSOBSERVER_H + +#include +#include + +namespace DRM + { + + /** + * An interface containing callbacks for CDrmUiHandling::CheckRightsAmount() + * + * By implementing these methods observer can get more information about + * what kind of rights content has and can also override the default + * behaviour. + * + * @code + * #include + * #include + * + * using namespace DRM; + * + * // Call NewLC() to create an instance of CDrmUiHandling. + * CDrmUiHandling* drmUiHandler = CDrmUiHandling::NewLC(); + * + * // Handling the error got when tried to read the file + * drmHandlerError = drmUiHandler->CheckRightsAmountL( file, this ); + * + * // delete the created instance of CDrmUiHandling + * CleanupStack::PopAndDestroy( drmUiHandler ); + * + * ... + * + * // implement callbacks + * TCheckRightsAction CMyClass::RightsLeft( TInt aDays, TInt aCounts, TInt aAccumulatedMinutes ) + * { + * return ECheckRightsActionDefault; + * } + * + * TCheckRightsAction CMyClass::RightsNotValid( TCheckRightsStatus aRightsStatus ) + * { + * return ECheckRightsActionDefault; + * } + * + * @endcode + * + * @since S60 V5.0 + * @see CDrmUiHandling::CheckRightsAmount + */ +class MDrmUiCheckRightsObserver : public MDrmHandleErrorObserver + { + +public: + + /** + * Tells how much rights are left + * + * @since S60 v5.0 + * @param[in] aOperationId Identifier of the asynchronous operation + * which was returned when the asynchronous + * operation was initiated, Zero(0) if it + * is a call back from a synchronous + * operation + * @param[in] aUnconstrained ETrue, if the content either has no + * constraints or if the content is only + * for example start time based. Or the + * time left is so long that it does not + * fit to the aTime parameter's + * TTimeIntervalSeconds otherwise EFalse. + * + * This parameter needs to always be + * checked first, if the value is ETrue + * the other parameters: aTime, aCounts and + * aAccumulated should be ignored. + * + * @param[in] aTime Time left in seconds. Zero(0) if + * the content does not have count + * constraint + * @param[in] aCounts Counts left. Zero(0) if content + * does not have count constraint. + * @param[in] aAccumulated Accumulated time left in seconds. + * Zero(0) if content does not have + * accumulated time constraint. + * + * @return ECheckRightsActionDefault DRM Utility performs the default + * handling which is the handling specified in the S60 UI + * specification + * ECheckRightsActionOpenDetailsView Details view is opened, + * no notes shown by DRM Utility + * ECheckRightsActionAcquireNewRights New rights are acquired, + * no notes shown by DRM Utility + * ECheckRightsActionIgnore DRM Utility does not do anything + */ + virtual TCheckRightsAction RightsLeft( + TInt aOperationId, + TBool aUnconstrained, + TTimeIntervalSeconds aTime, + TInt aCounts, + TTimeIntervalSeconds aAccumulated ) = 0; + + /** + * Called if there are no valid rights. + * + * @since S60 v5.0 + * @param[in] aOperationId Identifier of the asynchronous operation + * which was returned when the asynchronous + * operation was initiated, Zero(0) if it + * is a call back from a synchronous + * operation + * @parem[in] aRightsStatus The reason why rights are invalid + * @param[in] aReason Rejection reason, a bitvector which + * states for what reasons rights have + * been rejected from use using + * TRejectionType + * + * @return ECheckRightsActionDefault DRM Utility performs the default + * handling which is the handling specified by the S60 UI + * specification + * ECheckRightsActionOpenDetailsView Details view is opened, + * no notes shown by DRM Utility + * ECheckRightsActionAcquireNewRights New rights are acquired, + * no notes shown by DRM Utility + * ECheckRightsActionIgnore DRM Utility does not do anything + */ + virtual TCheckRightsAction RightsNotValid( + TInt aOperationId, + TCheckRightsStatus aRightsStatus, + TInt aReason ) = 0; + +protected: + + }; + + } + +#endif // MDRMUICHECKRIGHTSOBSERVER_H