ipappsrv_plat/media_control_api/inc/mmccsecureinterface.h
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipappsrv_plat/media_control_api/inc/mmccsecureinterface.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2006 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:    Class is used for configuring secure RTP.
+*
+*/
+
+
+
+
+#ifndef MMCCSECURECINTERFACE_H
+#define MMCCSECURECINTERFACE_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <mmccinterface.h>
+
+// CONSTANTS
+const TInt KMccLinkSecure = 110; 
+const TInt KMccLinkSecureVideo = 111; 
+
+// FORWARD DECLARATIONS
+class CMccInterface;
+class CMccCryptoContextContainer;
+class TMccCryptoContext;
+
+/**
+*  MCC subsystem client interface for secure sessions.
+*
+*  @lib mmccinterface.lib
+*/
+class CMccSecureInterface : public CBase
+    {
+public:  // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     * @param aInterface reference to MCC interface.
+     * @return CMccSecureInterface* Pointer to the secure interface object created
+     */
+    IMPORT_C static CMccSecureInterface* NewL( CMccInterface& aInterface );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CMccSecureInterface();
+
+public: // New functions
+
+    /**
+     * Creates new crypto context.
+     * @since Series 60 3.2
+     * @param aMasterKey The master key value.
+     * @param aSaltKey The master salt value.
+     * @param aContextId ID of the new context if successful.
+     * @param aParams Crypto context optional parameters.
+     * @return KErrNone if success; otherwise system wide error code.
+    */
+    IMPORT_C TInt CreateContext( const TDesC8& aMasterKey, const TDesC8& aSaltKey,
+                                 TUint32& aContextId, const TDesC8& aParams );
+
+    /**
+     * Updates existing crypto context.
+     * @since Series 60 3.2
+     * @param aMasterKey The master key value.
+     * @param aSaltKey The master salt value.
+     * @param aContextId ID of the updated context.
+     * @param aParams Crypto context optional parameters.
+     * @return KErrNone if success; otherwise system wide error code.
+     */
+    IMPORT_C TInt UpdateContext( const TDesC8& aMasterKey, const TDesC8& aSaltKey,
+                                 TUint32 aContextId, const TDesC8& aParams );
+    /**
+     * Removes existing crypto context.
+     * @since Series 60 3.2
+     * @param aContextId ID of the context to be removed.
+     * @return KErrNone if success; otherwise system wide error code.
+     */
+    IMPORT_C TInt RemoveContext( TUint32 aContextId );
+
+    /**
+     * Binds crypto context into stream. Binding must be done
+     * before stream is prepared.
+     * @since Series 60 3.2
+     * @param aSessionId ID of session.
+     * @param aLinkId ID of link.
+     * @param aStreamId ID of stream.
+     * @param aEndpointId ID identifying endpoint of the stream.    
+     * @param aContextId ID of context.
+     * @return KErrNone if success;
+     *         KErrArgument if context is already binded.
+     *         Otherwise one of the standard system-wide error codes.
+     */
+    IMPORT_C TInt Bind( TUint32 aSessionId, TUint32 aLinkId,
+    					TUint32 aStreamId, TUint32 aEndPointId,
+    				    TUint32 aContextId );
+
+private:
+    
+    /**
+     * C++ default constructor.
+     */
+    CMccSecureInterface( CMccInterface& aController );
+    
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL( );
+        
+private:
+    
+    /**
+     * Instance of Mcc interface.
+     */
+    CMccInterface& iInterface;
+    
+    /**
+     * Contains unique ID of controller interface
+     */
+    TMMFMessageDestinationPckg iMessageDest;
+    
+    /**
+     * Handle to the controller plugin for sending custom commands
+     */
+    RMMFController iController;
+    
+    /**
+     * Crypto context container for context containing and handling
+     * Own.
+     */
+    CMccCryptoContextContainer* iContextContainer;	
+	
+    };
+    
+#endif /* MMCCSECUREINTERFACE_H */