phone_plat/3d_ringing_tone_enabler_api/inc/c3dringingtoneinterface.h
changeset 0 5f000ab63145
child 21 92ab7f8d0eab
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phone_plat/3d_ringing_tone_enabler_api/inc/c3dringingtoneinterface.h	Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2005,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:  Provides abstract ECOM interface for 3D ringing tone 
+*
+*/
+
+
+
+#ifndef C3DRINGINGTONEINTERFACE_H
+#define C3DRINGINGTONEINTERFACE_H
+
+// INCLUDES
+#include    <e32base.h>
+
+// CONSTANTS
+const TInt32 K3DRingingToneInterfaceUid = 0x1020299A;
+
+
+enum T3DRingingToneInterfaceAttr
+    {
+    E3DRTIAttrProfileId = 0,
+    E3DRTIAttr3DEffect = 1,
+    E3DRTIAttr3DEcho = 2,
+    E3DRTIAttr3DRingingTone = 3
+    };
+
+enum T3DRingingToneInterfacePlayerAttr
+    {
+    E3DRTIAttrAudioPlayerUtility = 10,
+    E3DRTIAttrAudioToneUtility = 11,
+    E3DRTIAttrDrmPlayerUtility = 12,
+    E3DRTIAttrVideoPlayerUtility = 13
+    };
+
+
+
+
+// CLASS DECLARATION
+
+/**
+*  Abstract ECOM interface for playing 3D ringing tones.
+*
+*  @since 3.0
+*/
+class C3DRingingToneInterface : public CBase
+    {
+    public:
+            
+        /**
+        * Two-phased constructor.
+        *
+        * @param aImplementationUid  For selection when there are more than one
+        *                            implementations. Not used yet, for future.
+        */
+        inline static C3DRingingToneInterface* NewL( TUid aImplementationUid );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~C3DRingingToneInterface();
+        
+        /**
+        * Set 3D ringing tone interface attribute with specific 
+        * integer value.
+        * @param aAttributeKey An enum of T3DRingingToneInterfaceAttr.
+        * @param aValue Attribute integer value.
+        * @return KErrNone, attribute set, no errors
+        *         KErrArgument, attribute not set, argument error
+        *		  Some system wide Symbian error, attribute not set
+        */
+        virtual TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, 
+        					  TInt aValue ) = 0;
+
+        /**
+        * Set 3D ringing tone interface attribute with specific 
+        * string value.
+        * @param aAttributeKey An enum of T3DRingingToneInterfaceAttr.
+        * @param aValue Attribute string value.
+        * @return KErrNone, attribute set, no errors
+        *         KErrArgument, attribute not set, argument error
+        *		  Some system wide Symbian error, attribute not set
+        */
+        virtual TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, 
+        					  const TDesC& aValue ) = 0;
+
+        /**
+        * Set 3D ringing tone interface attribute value any of type.
+        * @param aAttributeKey This can be for example one of the 
+        * player utility classes (see T3DRingingToneInterfacePlayerAttr).
+        * This method is left extendable.
+        * @param aValue Attribute value can be any.
+        * @return KErrNone, attribute set, no errors
+        *         KErrArgument, attribute not set, argument error
+        *		  Some system wide Symbian error, attribute not set
+        */
+        virtual TInt SetAttr( TInt aAttributeKey, TAny* aValue ) = 0;
+
+        /**
+        * Start playing 3D ringing tone.
+        * Method can leave with specific Symbian system wide error code.
+        * @param None.
+        * @return None.
+        */        
+        virtual void PlayL() = 0;
+        
+        /**
+        * Stop playing 3D ringing tone.
+        * @param None.        
+        * @return None.
+        */        
+        virtual void Stop() = 0;
+            
+    private:    // Data
+        
+        // Uid required by ECOM.
+        TUid iDtor_ID_Key;
+    };
+
+
+#include    <c3dringingtoneinterface.inl>
+
+#endif      // C3DRINGINGTONEINTERFACE_H
+            
+// End of File