mmmw_plat/mtp_wmdrm_api/inc/MMtpJanusDrmIf.h
changeset 0 71ca22bcf22a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmmw_plat/mtp_wmdrm_api/inc/MMtpJanusDrmIf.h	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2009 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:   Defines the interface for implementation of the Windows DRM commands for MTP
+*                An implementor should derive from the class contained in this header file and
+*                supply a DLL with a single export which returns a pointer to an instance of
+*                the MMtpJanusDrmIf class.  The ordinal 1 export may not be a leaving function
+*                - all memory allocation should be done on the ConstructL() function call,
+*                which may leave.
+*
+*/
+
+
+#ifndef MMTPJANUSDRMIF_H
+#define MMTPJANUSDRMIF_H
+
+#include <e32std.h>
+
+
+/**
+ *  Interface class of Windows DRM for MTP
+ *
+ *  @lib MtpServer.lib
+ *  @since S60 3.2
+ */
+class MMtpJanusDrmIf
+    {
+    public:
+    
+        /**
+         * Second phase constructor. All allocation for the library should be performed at this call
+         *
+         * @since S60 3.2
+         */
+        virtual void ConstructL() = 0;
+        
+        /**
+         * Called before the library is unloaded. All destruction and clean-up should be performed at this call
+         *
+         * @since S60 3.2
+         */
+        virtual void Close() = 0;
+                
+        /**
+         * Gets a secure time challenge from the initiator
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor to populate with the challenge data (responder->initiator)
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt GetSecureTimeChallenge(TDes8& aDataPhase, TUint32& aResponseParamOne) = 0;
+        
+        /**
+         * Sends a secure time response to the responder
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the response data (initiator->responder)
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SetSecureTimeResponse(const TDesC8& aDataPhase, TUint32& aResponseParamOne) = 0;
+    
+        /**
+         * Sends a license response object to the responder
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the license response data
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SetLicenseResponse(const TDesC8& aDataPhase, TUint32& aResponseParamOne) = 0;
+        
+        /**
+         * Sends a list of items to the initiator, based on the parameters in the query
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the sync list requested (responder -> initiator)
+         * @param aParamOne Contains the maximum remaining count value for the query (IN) and the DRM_RESULT (OUT)
+         * @param aParamTwo Contains the maximum remaining song validity for the query (IN) and the next starting index (OUT)
+         * @param aParamThree Contains the starting index for the data phase (IN) and the number of items processed (OUT)
+         * @param aParamFour Contains the number of items that should be processed in this call (IN)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt GetSyncList(TDes8& aDataPhase, TUint32& aParamOne, TUint32& aParamTwo, 
+                                 TUint32& aParamThree, TUint32 aParamFour) = 0;
+    
+        /**
+         * Sends a meter challenge query.
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the meter challenge query (initiator -> responder)
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SendMeterChallengeQuery(const TDesC8& aDataPhase, TUint32& aResponseParamOne) = 0;
+        
+        /**
+         * Gets a meter challenge from the initiator
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor to populate with the challenge data (responder->initiator)
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt GetMeterChallenge(TDes8& aDataPhase, TUint32& aResponseParamOne) = 0;
+        
+        /**
+         * Sends a meter response to the responder
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the response data (initiator->responder)
+         * @param aResponseParamOne Contains the DRM_RESULT (OUT)
+         * @param aMeterResponseFlags Contains the bit mask of flags to be passed to the initiator
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SetMeterResponse(const TDesC8& aDataPhase, TUint32& aResponseParamOne, TUint32& aMeterResponseFlags) = 0;
+        
+        /**
+         * Instructs the mobile device to clean the data store
+         *
+         * @since S60 3.2
+         * @param aParamOne Contains the cleaning flags bitmask (IN) and the DRM_RESULT (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt CleanDataStore(TUint32& aParamOne) = 0;
+
+        /**
+         * Gets the state of the license requested in the data phase
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the state query data
+         * @param aParamOne Contains the DRM_RESULT (OUT)
+         * @param aParamTwo Contains the category (OUT)
+         * @param aParamThree Contains the DRM license state (OUT)
+         * @param aParamFour Contains the DRM license state (OUT)
+         * @param aParamFive Contains reserved data (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt GetLicenseState(const TDesC8& aDataPhase, TUint32& aParamOne, TUint32& aParamTwo, 
+                                     TUint32& aParamThree, TUint32& aParamFour, TUint32& aParamFive) = 0;
+                                 
+        /**
+         * Sends a WMDRM command to the portable device for processing
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the command data phase (initiator -> responder)
+         * @param aParamOne Contains the operation code (IN) and the DRM_RESULT (OUT)
+         * @param aParamTwo Contains the first request argument (IN) and the first response result (OUT)
+         * @param aParamThree Contains the second request argument (IN) and the second response result (OUT)
+         * @param aParamFour Contains the third request argument (IN) and the third response result (OUT)
+         * @param aParamFive Contains the fourth request argument (IN) and the fourth response result (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SendWMDRMCommand(const TDesC8& aDataPhase, TUint32& aParamOne, TUint32& aParamTwo, 
+                                      TUint32& aParamThree, TUint32& aParamFour, TUint32& aParamFive) = 0;
+
+        /**
+         * Sends a WMDRM request to the portable device for processing
+         *
+         * @since S60 3.2
+         * @param aDataPhase Descriptor containing the command data phase (responder -> initiator)
+         * @param aParamOne Contains the operation code (IN) and the DRM_RESULT (OUT)
+         * @param aParamTwo Contains the first request argument (IN) and the first response result (OUT)
+         * @param aParamThree Contains the second request argument (IN) and the second response result (OUT)
+         * @param aParamFour Contains the third request argument (IN) and the third response result (OUT)
+         * @param aParamFive Contains the fourth request argument (IN) and the fourth response result (OUT)
+         * @return Error state. Negative values are Symbian error codes, positive values are MTP error codes
+         */
+        virtual TInt SendWMDRMRequest(TDes8& aDataPhase, TUint32& aParamOne, TUint32& aParamTwo, 
+                                      TUint32& aParamThree, TUint32& aParamFour, TUint32& aParamFive) = 0;
+        
+        /**
+         * Get the device certificate to pass back as the device property. The descriptor returned should
+         * contain the device certificate information as required by the GetDeviceProperty MTP command for
+         * the MTP_PROPERTYCODE_JANUS_DEVICECERTIFICATE dataset. 
+         * Ownership of the descriptor is passed back
+         *
+         * @since S60 3.2
+         * @return A populated buffer of the device certificate dataset, or NULL in the case of an error
+         */
+        virtual HBufC* DeviceCertificate() = 0;
+
+        /**
+         * Get the secure time of the device.
+         * Ownership of the descriptor is passed back
+         *
+         * @since S60 3.2
+         * @return A populated buffer of the device secure time, or NULL in the case of an error
+         */
+//        virtual HBufC* SecureTime() = 0;
+    };
+
+#endif // MMTPJANUSDRMIF_H