phoneapp/phoneuiqtviewadapter/inc/phonecallheaderutil.h
author hgs
Fri, 17 Sep 2010 17:09:12 +0300
changeset 74 d1c62c765e48
child 76 cfea66083b62
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
74
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  A parameter class for setting call header information
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef PHONECALLHEADERUTIL_H
hgs
parents:
diff changeset
    20
#define PHONECALLHEADERUTIL_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
//INCLUDES
hgs
parents:
diff changeset
    23
#include    "mpeengineinfo.h"
hgs
parents:
diff changeset
    24
#include    "tphonecmdparamcallheaderdata.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
//FORWARD
hgs
parents:
diff changeset
    27
class MPEEngineInfo;
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
/**
hgs
parents:
diff changeset
    30
 * A parameter class for setting call header information.
hgs
parents:
diff changeset
    31
 *
hgs
parents:
diff changeset
    32
 *  @since S60 v10.1
hgs
parents:
diff changeset
    33
 */
hgs
parents:
diff changeset
    34
class PhoneCallHeaderUtil
hgs
parents:
diff changeset
    35
    {
hgs
parents:
diff changeset
    36
    public: // Constructors & destructors.
hgs
parents:
diff changeset
    37
            
hgs
parents:
diff changeset
    38
        /**
hgs
parents:
diff changeset
    39
        * C++ constructor.
hgs
parents:
diff changeset
    40
        */
hgs
parents:
diff changeset
    41
        PhoneCallHeaderUtil( MPEEngineInfo& engineInfo );
hgs
parents:
diff changeset
    42
        
hgs
parents:
diff changeset
    43
        virtual ~PhoneCallHeaderUtil();
hgs
parents:
diff changeset
    44
        
hgs
parents:
diff changeset
    45
    public: // New functions.
hgs
parents:
diff changeset
    46
        
hgs
parents:
diff changeset
    47
        /**
hgs
parents:
diff changeset
    48
        * Sets info to outgoing call header.
hgs
parents:
diff changeset
    49
        * @param aCallId - call id.
hgs
parents:
diff changeset
    50
        * @param aWaitingCall - if call is waiting value is ETrue otherwise EFalse.
hgs
parents:
diff changeset
    51
        * @param aVideoCall - if call is video value is ETrue otherwise EFalse.
hgs
parents:
diff changeset
    52
        * @param aCallHeaderData - Call header parameter into which the text/picture
hgs
parents:
diff changeset
    53
        *                          parameters will be set.
hgs
parents:
diff changeset
    54
        */           
hgs
parents:
diff changeset
    55
        void SetIncomingCallHeaderParams(
hgs
parents:
diff changeset
    56
                const TInt aCallId, 
hgs
parents:
diff changeset
    57
                const TBool aWaitingCall,
hgs
parents:
diff changeset
    58
                const TBool aVideoCall,
hgs
parents:
diff changeset
    59
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
    60
        /**
hgs
parents:
diff changeset
    61
        * Sets info to outgoing call header.
hgs
parents:
diff changeset
    62
        * @param aCallId - call id.
hgs
parents:
diff changeset
    63
        * @param aCallHeaderData - Call header parameter into which the text/picture
hgs
parents:
diff changeset
    64
        *                          parameters will be set.
hgs
parents:
diff changeset
    65
        */
hgs
parents:
diff changeset
    66
        void SetOutgoingCallHeaderParams(
hgs
parents:
diff changeset
    67
                const TInt aCallId,
hgs
parents:
diff changeset
    68
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
    69
        /**
hgs
parents:
diff changeset
    70
        * Updates call header info. 
hgs
parents:
diff changeset
    71
        * NOTE: This method is used when state receives
hgs
parents:
diff changeset
    72
        * EPEMessageRemotePartyInfoChanged from PhoneEngine.
hgs
parents:
diff changeset
    73
        * 
hgs
parents:
diff changeset
    74
        * @param aCallId - call id.
hgs
parents:
diff changeset
    75
        * @param aWaitingCall - if call is waiting value is ETrue otherwise EFalse.
hgs
parents:
diff changeset
    76
        * @param aVideoCall - if call is video value is ETrue otherwise EFalse.
hgs
parents:
diff changeset
    77
        * @param aCallHeaderData - Call header parameter into which the text/picture
hgs
parents:
diff changeset
    78
        *                          parameters will be set.
hgs
parents:
diff changeset
    79
        */             
hgs
parents:
diff changeset
    80
        void UpdateCallHeaderInfo( 
hgs
parents:
diff changeset
    81
                const TInt aCallId,
hgs
parents:
diff changeset
    82
                const TBool aWaitingCall,
hgs
parents:
diff changeset
    83
                const TBool aVideoCall,
hgs
parents:
diff changeset
    84
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
        /**
hgs
parents:
diff changeset
    87
        * Sets the call header type used in the call bubble.
hgs
parents:
diff changeset
    88
        * @param aCallHeaderType, call header type.
hgs
parents:
diff changeset
    89
        */    
hgs
parents:
diff changeset
    90
        void SetCallHeaderType( 
hgs
parents:
diff changeset
    91
                TInt aCallHeaderType );
hgs
parents:
diff changeset
    92
        /**
hgs
parents:
diff changeset
    93
        * Returns the set call header type. Used for constructing right type
hgs
parents:
diff changeset
    94
        * of call bubble.
hgs
parents:
diff changeset
    95
        */
hgs
parents:
diff changeset
    96
        TInt CallHeaderType() const;
hgs
parents:
diff changeset
    97
            
hgs
parents:
diff changeset
    98
        /**
hgs
parents:
diff changeset
    99
        * Setter for divert indication showing in bubble.
hgs
parents:
diff changeset
   100
        * @param aDivertIndication ETrue to show divert indication,
hgs
parents:
diff changeset
   101
        *        EFalse to not. Usually setting EFalse isn't necessary
hgs
parents:
diff changeset
   102
        *        as it's a default value in bubble creation.
hgs
parents:
diff changeset
   103
        */
hgs
parents:
diff changeset
   104
        void SetDivertIndication( const TBool aDivertIndication );
hgs
parents:
diff changeset
   105
        
hgs
parents:
diff changeset
   106
        /**
hgs
parents:
diff changeset
   107
        * Return remote info data
hgs
parents:
diff changeset
   108
        * @return True if secondary CLI is used
hgs
parents:
diff changeset
   109
        * @param aCallid call id
hgs
parents:
diff changeset
   110
        * @param aData the returned remote info data
hgs
parents:
diff changeset
   111
        */
hgs
parents:
diff changeset
   112
        TBool GetRemoteInfoData( 
hgs
parents:
diff changeset
   113
                const TInt aCallId,
hgs
parents:
diff changeset
   114
                TDes& aData ) const;           
hgs
parents:
diff changeset
   115
    
hgs
parents:
diff changeset
   116
        /**
hgs
parents:
diff changeset
   117
        * Sets texts for voice call header.
hgs
parents:
diff changeset
   118
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   119
        * @param aWaitingCall - Waiting call indication.
hgs
parents:
diff changeset
   120
        * @param aCallHeaderData - Call header parameter into which the text
hgs
parents:
diff changeset
   121
        *                          will be set.
hgs
parents:
diff changeset
   122
        */
hgs
parents:
diff changeset
   123
        void SetCallHeaderTexts( 
hgs
parents:
diff changeset
   124
            const TInt aCallId, 
hgs
parents:
diff changeset
   125
            const TBool aWaitingCall,
hgs
parents:
diff changeset
   126
            const TBool aVideoCall,
hgs
parents:
diff changeset
   127
            TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   128
        
hgs
parents:
diff changeset
   129
        /**
hgs
parents:
diff changeset
   130
        * Returns the call header label text
hgs
parents:
diff changeset
   131
        * @return Returns the label
hgs
parents:
diff changeset
   132
        */
hgs
parents:
diff changeset
   133
        const TDesC& LabelText( TInt aCallId );
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
        const TDesC& EmergencyHeaderText();
hgs
parents:
diff changeset
   136
        
hgs
parents:
diff changeset
   137
        const TDesC& AttemptingEmergencyText();
hgs
parents:
diff changeset
   138
        
hgs
parents:
diff changeset
   139
        /**
hgs
parents:
diff changeset
   140
        * Returns the call header call state.
hgs
parents:
diff changeset
   141
        * @return Returns the call state
hgs
parents:
diff changeset
   142
        */
hgs
parents:
diff changeset
   143
        TInt CallState( TInt aCallId ) const;
hgs
parents:
diff changeset
   144
        
hgs
parents:
diff changeset
   145
        void LoadResource( TDes& aData, const TInt aResource ) const;
hgs
parents:
diff changeset
   146
                
hgs
parents:
diff changeset
   147
        HBufC* LoadResource( const TInt aResource ) const;
hgs
parents:
diff changeset
   148
        
hgs
parents:
diff changeset
   149
    private:
hgs
parents:
diff changeset
   150
        
hgs
parents:
diff changeset
   151
        
hgs
parents:
diff changeset
   152
        
hgs
parents:
diff changeset
   153
        /**
hgs
parents:
diff changeset
   154
        * Set basic info to call header.
hgs
parents:
diff changeset
   155
        * @param aCallId - call id.
hgs
parents:
diff changeset
   156
        * @param aCallHeaderData - Call header parameter into which the text/picture
hgs
parents:
diff changeset
   157
        *                          parameters will be set.
hgs
parents:
diff changeset
   158
        */
hgs
parents:
diff changeset
   159
        void SetBasicCallHeaderParams(
hgs
parents:
diff changeset
   160
            const TInt aCallId, 
hgs
parents:
diff changeset
   161
            TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   162
        
hgs
parents:
diff changeset
   163
        /**
hgs
parents:
diff changeset
   164
        * Sets divert indication to call header if necessary
hgs
parents:
diff changeset
   165
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   166
        * @param aCallHeaderData - Call header where indication will be set
hgs
parents:
diff changeset
   167
        *                          if needed.
hgs
parents:
diff changeset
   168
        */
hgs
parents:
diff changeset
   169
        void SetDivertIndicatorToCallHeader( 
hgs
parents:
diff changeset
   170
                const TInt aCallId, 
hgs
parents:
diff changeset
   171
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   172
        
hgs
parents:
diff changeset
   173
        /**
hgs
parents:
diff changeset
   174
        * Sets divert indication to call header if necessary
hgs
parents:
diff changeset
   175
        * @param aFeatureKey - feature key id Id.
hgs
parents:
diff changeset
   176
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   177
        */
hgs
parents:
diff changeset
   178
        TBool IsFeatureSupported( 
hgs
parents:
diff changeset
   179
                const TInt aFeatureKey, 
hgs
parents:
diff changeset
   180
                const TInt aCallId ) const;
hgs
parents:
diff changeset
   181
        
hgs
parents:
diff changeset
   182
        /**
hgs
parents:
diff changeset
   183
        * Return CNAP (Calling Name Presentation) text
hgs
parents:
diff changeset
   184
        * @param aCallid call id
hgs
parents:
diff changeset
   185
        * @param aData the returned CNAP text
hgs
parents:
diff changeset
   186
        * @param aDirection the returned CNAP clipping direction
hgs
parents:
diff changeset
   187
        */
hgs
parents:
diff changeset
   188
        void GetCNAPText( 
hgs
parents:
diff changeset
   189
               const TInt aCallId,
hgs
parents:
diff changeset
   190
               TDes& aData, 
hgs
parents:
diff changeset
   191
               TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection& aDirection ) const;
hgs
parents:
diff changeset
   192
        
hgs
parents:
diff changeset
   193
        /**
hgs
parents:
diff changeset
   194
        * Check if contact is available(RemoteName or RemoteCompanyName),
hgs
parents:
diff changeset
   195
        * if available ETrue is returned otherwise EFalse.
hgs
parents:
diff changeset
   196
        * @param aCallid call id
hgs
parents:
diff changeset
   197
        */
hgs
parents:
diff changeset
   198
        TBool ContactInfoAvailable( 
hgs
parents:
diff changeset
   199
                const TInt aCallId ) const;
hgs
parents:
diff changeset
   200
        
hgs
parents:
diff changeset
   201
        /**
hgs
parents:
diff changeset
   202
        * Returns call type and stores type to member variable.
hgs
parents:
diff changeset
   203
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   204
        * @param aCallHeaderData - Call header data.
hgs
parents:
diff changeset
   205
        */
hgs
parents:
diff changeset
   206
        TPECallType GetCallType( 
hgs
parents:
diff changeset
   207
                const TInt aCallId,
hgs
parents:
diff changeset
   208
                TPhoneCmdParamCallHeaderData* aCallHeaderData ); 
hgs
parents:
diff changeset
   209
        
hgs
parents:
diff changeset
   210
        /**
hgs
parents:
diff changeset
   211
        * Sets caller image. 
hgs
parents:
diff changeset
   212
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   213
        * @param aCallHeaderData - Call header parameter where modifications
hgs
parents:
diff changeset
   214
        *                          are made.
hgs
parents:
diff changeset
   215
        */
hgs
parents:
diff changeset
   216
        void SetCallerImage( 
hgs
parents:
diff changeset
   217
                const TInt aCallId, 
hgs
parents:
diff changeset
   218
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   219
        
hgs
parents:
diff changeset
   220
        /**
hgs
parents:
diff changeset
   221
        * Updates cli and cnap parameters to call header.
hgs
parents:
diff changeset
   222
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   223
        * @param aCallHeaderData - Call header parameter where modifications
hgs
parents:
diff changeset
   224
        *                          are made.
hgs
parents:
diff changeset
   225
        */
hgs
parents:
diff changeset
   226
        void SetCliAndCnapParamaters( 
hgs
parents:
diff changeset
   227
                const TInt aCallId, 
hgs
parents:
diff changeset
   228
                TPhoneCmdParamCallHeaderData* aCallHeaderData  );
hgs
parents:
diff changeset
   229
        /**
hgs
parents:
diff changeset
   230
        * Updates cli parameter to call header.
hgs
parents:
diff changeset
   231
        * @param aCallId - Call Id.
hgs
parents:
diff changeset
   232
        * @param aCallHeaderData - Call header parameter where modifications
hgs
parents:
diff changeset
   233
        *                          are made.
hgs
parents:
diff changeset
   234
        */
hgs
parents:
diff changeset
   235
        void SetCliParamaters(
hgs
parents:
diff changeset
   236
                const TInt aCallId, 
hgs
parents:
diff changeset
   237
                TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   238
        
hgs
parents:
diff changeset
   239
        void LoadCallHeaderTexts(
hgs
parents:
diff changeset
   240
            const TInt aLabelId, 
hgs
parents:
diff changeset
   241
            TPhoneCmdParamCallHeaderData* aCallHeaderData );
hgs
parents:
diff changeset
   242
        
hgs
parents:
diff changeset
   243
        TBool IsVideoCall(int aCallId ) const;
hgs
parents:
diff changeset
   244
        
hgs
parents:
diff changeset
   245
    private:
hgs
parents:
diff changeset
   246
        
hgs
parents:
diff changeset
   247
        MPEEngineInfo& m_engineInfo;
hgs
parents:
diff changeset
   248
        TInt iCallHeaderType;
hgs
parents:
diff changeset
   249
        TBool iSetDivertIndication;
hgs
parents:
diff changeset
   250
        HBufC *iLabelText;
hgs
parents:
diff changeset
   251
        HBufC *iEmergencyHeaderText;
hgs
parents:
diff changeset
   252
        HBufC *iAttemptingEmergencyText;
hgs
parents:
diff changeset
   253
            
hgs
parents:
diff changeset
   254
    };
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
#endif // PHONECALLHEADERUTIL_H