phone_plat/3d_ringing_tone_enabler_api/inc/c3dringingtoneinterface.h
changeset 37 ba76fc04e6c2
child 51 f39ed5e045e0
equal deleted inserted replaced
36:2eacb6118286 37:ba76fc04e6c2
       
     1 /*
       
     2 * Copyright (c) 2005,2007 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Provides abstract ECOM interface for 3D ringing tone 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef C3DRINGINGTONEINTERFACE_H
       
    21 #define C3DRINGINGTONEINTERFACE_H
       
    22 
       
    23 // INCLUDES
       
    24 #include    <e32base.h>
       
    25 
       
    26 // CONSTANTS
       
    27 const TInt32 K3DRingingToneInterfaceUid = 0x1020299A;
       
    28 
       
    29 
       
    30 enum T3DRingingToneInterfaceAttr
       
    31     {
       
    32     E3DRTIAttrProfileId = 0,
       
    33     E3DRTIAttr3DEffect = 1,
       
    34     E3DRTIAttr3DEcho = 2,
       
    35     E3DRTIAttr3DRingingTone = 3
       
    36     };
       
    37 
       
    38 enum T3DRingingToneInterfacePlayerAttr
       
    39     {
       
    40     E3DRTIAttrAudioPlayerUtility = 10,
       
    41     E3DRTIAttrAudioToneUtility = 11,
       
    42     E3DRTIAttrDrmPlayerUtility = 12,
       
    43     E3DRTIAttrVideoPlayerUtility = 13
       
    44     };
       
    45 
       
    46 
       
    47 
       
    48 
       
    49 // CLASS DECLARATION
       
    50 
       
    51 /**
       
    52 *  Abstract ECOM interface for playing 3D ringing tones.
       
    53 *
       
    54 *  @since 3.0
       
    55 */
       
    56 class C3DRingingToneInterface : public CBase
       
    57     {
       
    58     public:
       
    59             
       
    60         /**
       
    61         * Two-phased constructor.
       
    62         *
       
    63         * @param aImplementationUid  For selection when there are more than one
       
    64         *                            implementations. Not used yet, for future.
       
    65         */
       
    66         inline static C3DRingingToneInterface* NewL( TUid aImplementationUid );
       
    67         
       
    68         /**
       
    69         * Destructor.
       
    70         */
       
    71         virtual ~C3DRingingToneInterface();
       
    72         
       
    73         /**
       
    74         * Set 3D ringing tone interface attribute with specific 
       
    75         * integer value.
       
    76         * @param aAttributeKey An enum of T3DRingingToneInterfaceAttr.
       
    77         * @param aValue Attribute integer value.
       
    78         * @return KErrNone, attribute set, no errors
       
    79         *         KErrArgument, attribute not set, argument error
       
    80         *         Some system wide Symbian error, attribute not set
       
    81         */
       
    82         virtual TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, 
       
    83                               TInt aValue ) = 0;
       
    84 
       
    85         /**
       
    86         * Set 3D ringing tone interface attribute with specific 
       
    87         * string value.
       
    88         * @param aAttributeKey An enum of T3DRingingToneInterfaceAttr.
       
    89         * @param aValue Attribute string value.
       
    90         * @return KErrNone, attribute set, no errors
       
    91         *         KErrArgument, attribute not set, argument error
       
    92         *         Some system wide Symbian error, attribute not set
       
    93         */
       
    94         virtual TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, 
       
    95                               const TDesC& aValue ) = 0;
       
    96 
       
    97         /**
       
    98         * Set 3D ringing tone interface attribute value any of type.
       
    99         * @param aAttributeKey This can be for example one of the 
       
   100         * player utility classes (see T3DRingingToneInterfacePlayerAttr).
       
   101         * This method is left extendable.
       
   102         * @param aValue Attribute value can be any.
       
   103         * @return KErrNone, attribute set, no errors
       
   104         *         KErrArgument, attribute not set, argument error
       
   105         *         Some system wide Symbian error, attribute not set
       
   106         */
       
   107         virtual TInt SetAttr( TInt aAttributeKey, TAny* aValue ) = 0;
       
   108 
       
   109         /**
       
   110         * Start playing 3D ringing tone.
       
   111         * Method can leave with specific Symbian system wide error code.
       
   112         * @param None.
       
   113         * @return None.
       
   114         */        
       
   115         virtual void PlayL() = 0;
       
   116         
       
   117         /**
       
   118         * Stop playing 3D ringing tone.
       
   119         * @param None.        
       
   120         * @return None.
       
   121         */        
       
   122         virtual void Stop() = 0;
       
   123             
       
   124     private:    // Data
       
   125         
       
   126         // Uid required by ECOM.
       
   127         TUid iDtor_ID_Key;
       
   128     };
       
   129 
       
   130 
       
   131 #include    <c3dringingtoneinterface.inl>
       
   132 
       
   133 #endif      // C3DRINGINGTONEINTERFACE_H
       
   134             
       
   135 // End of File