/*
* Copyright (c) 2006-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: This file contains the header file of the CPERemoteInfo object
*
*/
#ifndef CPEREMOTEINFO_H
#define CPEREMOTEINFO_H
#include <e32base.h>
#include "pevirtualengine.h"
class CPhCntContactId;
/**
* Remote info definition
*
* This class defines the call remote end information
* used for contact matching and logging
*
* @lib PhoneEngine.lib
* @since S60 v4.0
*/
NONSHARABLE_CLASS( CPERemoteInfo ) : public CBase
{
public:
/**
* Two-phased constructor.
*/
static CPERemoteInfo* NewL();
/**
* Destructor
*/
virtual ~CPERemoteInfo();
/**
* Get call id associated with this information
* @return call identification number
*/
TInt CallId() const;
/**
* Get contact link or id
* @return contact link or id
*/
const CPhCntContactId& ContactId() const;
/**
* Get contact link.
* @return Virtual phonebook contact link
*/
const TDesC8& ContactLink() const;
/**
* Get remote end phone number
* @return phone number
*/
const TPEPhoneNumber& PhoneNumber() const;
/**
* Get remote end connected phone number
* @return phone number
*/
const TPEPhoneNumber& ColpNumber() const;
/**
* Get contact name
* Depending on user selected language may be in order:
* first + last name OR last + first name
* @return contact name
*/
const TPEContactName& Name() const;
/**
* Get contact company name
* @return company name
*/
const TPEContactCompany& CompanyName() const;
/**
* Get ringing tone
* Returns a ringing tone defined for one of the user groups
* if personal tone is not found
* @return ringing tone file path
*/
const TPEContactFileName& PersonalRingingTone() const;
/**
* Get remote end phone number type
* @return phone number type
*/
const TPEPhoneNumberIdType& PhoneNumberType() const;
/**
* Get text to speech text for this contact. Used in
* text to speech ringing tone.
* @return descriptor, ownership passed.
*/
const TPtrC TextToSpeechText() const;
/**
* Get user group ids this contact is assigned to
* @return array for group ids
*/
const TArray< TContactItemId > ContactGroups() const;
/**
* Get caller text
* @return caller text
*/
const TPtrC CallerText() const;
/**
* Get caller image
* @return caller image
*/
const TPtrC CallerImage() const;
/**
* Get caller thumbnail
* @return pointer to thumbnail data
*/
CFbsBitmap* CallerThumbnail() const;
/**
* Get caller thumbnail status
* @return status of caller thumbnail
*/
TBool HasCallerThumbnail() const;
/**
* Get predefined dtmf strings
* @return reference to string array
*/
CDesCArray& PredefinedDtmfStrings();
/**
* Set call association for this information
* @param aContactId pointer to contact id
*/
void SetCallId( const TInt aCallId );
/**
* Set contact link or id
* @param aContactId pointer to contact id
*/
void SetContactId( CPhCntContactId* aContactId );
/**
* Set remote end phone number
* @param aPhoneNumber phone number
*/
void SetPhoneNumber( const TPEPhoneNumber& aPhoneNumber );
/**
* Set remote end connected phone number
* @param aColpNumber phone number
*/
void SetColpNumber( const TPEPhoneNumber& aColpNumber );
/**
* Set contact name
* Depending on user selected language may be in order:
* first + last name OR last + first name
* @param aContactName contact name
*/
void SetName( const TPEContactName& aContactName );
/**
* Set contact company name
* @param aCompanyName company name
*/
void SetCompanyName( const TPEContactName& aCompanyName );
/**
* Set ringing tone
* @param aPersonalRingingTone ringing tone file path
*/
void SetPersonalRingingTone(
const TPEContactFileName& aPersonalRingingTone );
/**
* Set remote end phone number type
* @param aPhoneNumberType phone number id
*/
void SetPhoneNumberType( const TPEPhoneNumberIdType aPhoneNumberType );
/**
* Set remote end Text To Speech Text
* @param aText Text To Speech Text
*/
void SetTextToSpeechText( HBufC* aText );
/**
* Set user group ids this contact is assigned to
* Array is reset if the operation fails.
* @param aGroupIdArray array of group ids
*/
void SetContactGroups( const TArray< TContactItemId >& aGroupIdArray );
/**
* Set caller text
* @param aCallerText caller text
*/
void SetCallerText( const TPtrC aCallerText );
/**
* Set caller image
* @param aCallerImage caller image
*/
void SetCallerImage( const TPtrC aCallerImage );
/**
* Set caller thumbnail
* @param aCallerThumbnail caller thumbnail
*/
void SetCallerThumbnail( CFbsBitmap* aCallerThumbnail );
/**
* Set caller thumbnail status
* @param aStatus caller thumbnail status
*/
void SetHasCallerThumbnail( TBool aStatus );
/**
* Set predefined dtmf strings
* @param aArray, is reference to sring array
*/
void SetPredefinedDtmfStrings(
const CDesCArray& aArray );
/**
* Reset remote information
* Resets all member data
*/
void ResetRemoteInfo();
private:
/**
* Constructor
*/
CPERemoteInfo();
private: // data
/**
* Call id association
*/
TInt iCallId;
/**
* Contact link or id
* Own.
*/
CPhCntContactId* iContactId;
/**
* Contact link
* Own.
*/
HBufC8* iContactLink;
/**
* Remote end phone number
*/
TPEPhoneNumber iPhoneNumber;
/**
* Remote end phone number if the mobile originated call was forwarded
*/
TPEPhoneNumber iColpNumber;
/**
* First name + Last name
*/
TPEContactName iName;
/**
* Remote end company name
*/
TPEContactCompany iCompanyName;
/**
* Remote end personal or group ringing tone
*/
TPEContactFileName iPersonalRingingTone;
/**
* Remote end phone number type
*/
TPEPhoneNumberIdType iPhoneNumberType;
/**
* Remote end Text To Speech text
*/
HBufC* iTextToSpeechText;
/**
* Array for caller group ids
* Own.
*/
RArray< TContactItemId > iGroupId;
/**
* Caller text
*/
HBufC* iCallerText;
/**
* Caller image
*/
HBufC* iCallerImage;
/**
* Caller thumbnail image
* Own.
*/
CFbsBitmap* iCallerThumbnail;
/**
* Caller thumbnail image status
* Own.
*/
TBool iHasCallerThumbnail;
/**
* Dtmf array
*
*/
CDesCArray* iPredefinedDtmfStrings;
};
#endif // CPEREMOTEINFO_H