phoneapp/phoneuiview/src/phonebubbleextensiondata.cpp
changeset 0 5f000ab63145
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiview/src/phonebubbleextensiondata.cpp	Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,230 @@
+/*
+* Copyright (c) 2008 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:  Contains call data.
+*
+*/
+
+
+#include "phonebubbleextensiondata.h"
+#include "tphonecmdparamcallheaderdata.h"
+#include "pevirtualengine.h"
+
+// --------------------------------------------------------------------------
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+//
+CPhoneBubbleExtensionData* CPhoneBubbleExtensionData::NewL(
+    TInt aBubbleId,
+    TPhoneCmdParamCallHeaderData* aParams, 
+    TBool aFirst )
+    {
+    CPhoneBubbleExtensionData* self =
+        CPhoneBubbleExtensionData::NewLC( aBubbleId, aParams, aFirst );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+//
+CPhoneBubbleExtensionData* CPhoneBubbleExtensionData::NewLC(
+    TInt aBubbleId,
+    TPhoneCmdParamCallHeaderData* aParams, 
+    TBool aFirst )
+    {
+    CPhoneBubbleExtensionData* self =
+        new( ELeave ) CPhoneBubbleExtensionData( aBubbleId, aParams, aFirst );
+    CleanupStack::PushL( self );
+    self->ConstructL( aParams );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CPhoneBubbleExtensionData::~CPhoneBubbleExtensionData()
+    {
+    delete iContactLink;
+    delete iRemotePhoneNumber;
+    }
+
+// ---------------------------------------------------------------------------
+// Sets the call state
+// ---------------------------------------------------------------------------
+//
+void CPhoneBubbleExtensionData::SetState( TInt aState, TBool aFirst )
+    {
+    switch ( aState )
+        {
+        case EPEStateDialing:
+            iState = MTelBubbleExtensionData::EOutgoing;
+            break;
+
+        case EPEStateRinging:
+            if ( aFirst )
+                {
+                iState = MTelBubbleExtensionData::EIncoming;
+                }
+            else
+                {
+                iState = MTelBubbleExtensionData::EWaiting;
+                }
+            break;
+
+        case EPEStateConnecting:
+            iState = MTelBubbleExtensionData::EAlerting;
+            break;
+
+        case EPEStateHeld: // fall-through
+        case EPEStateHeldConference:
+            iState = MTelBubbleExtensionData::EOnHold;
+            break;
+
+        case EPEStateDisconnecting: // fall-through
+        case EPEStateConferenceIdle: // fall-through
+        case EPEStateIdle:
+            iState = MTelBubbleExtensionData::EDisconnected;
+            break;
+
+        case EPEStateConnected: // fall-through
+        case EPEStateConnectedConference:
+            iState = MTelBubbleExtensionData::EActive;
+            break;
+
+        case EPEStateUnknown: // fall-through
+        default:
+            break;
+        }
+    
+    }
+
+// ---------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Bubble ID.
+// ---------------------------------------------------------------------------
+//
+inline TInt CPhoneBubbleExtensionData::BubbleId() const
+    {
+    return iBubbleId;
+    }
+
+// --------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Call state information.
+// --------------------------------------------------------------------------
+//
+inline CPhoneBubbleExtensionData::TCallState
+    CPhoneBubbleExtensionData::State() const
+    {
+    return iState;
+    }
+
+// ---------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Call type information
+// ---------------------------------------------------------------------------
+//
+inline CPhoneBubbleExtensionData::TCallType
+    CPhoneBubbleExtensionData::Type() const
+    {
+    return iType;
+    }
+
+// ---------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Call service id
+// ---------------------------------------------------------------------------
+//
+inline TUint32 CPhoneBubbleExtensionData::ServiceId() const
+    {
+    return iService;
+    }
+
+// ---------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Contact Link related to this call.
+// ---------------------------------------------------------------------------
+//
+inline const TDesC8& CPhoneBubbleExtensionData::ContactLink() const
+    {
+    return *iContactLink;
+    }
+
+// ---------------------------------------------------------------------------
+// From class MTelBubbleExtensionData.
+// Remote phone number related to this call.
+// ---------------------------------------------------------------------------
+//
+const TDesC& CPhoneBubbleExtensionData::RemotePhoneNumber() const
+    {
+    return *iRemotePhoneNumber;
+    }
+
+// ---------------------------------------------------------------------------
+// First phase constructor
+// ---------------------------------------------------------------------------
+//
+CPhoneBubbleExtensionData::CPhoneBubbleExtensionData( 
+    TInt aBubbleId,
+    TPhoneCmdParamCallHeaderData* aParams, 
+    TBool aFirst )
+    : iBubbleId(aBubbleId), iState(ENone), iType(EUninitialized), iService(0)
+    {
+    // call state
+    SetState( aParams->CallState(), aFirst );
+
+    // call type
+    switch ( aParams->CallType() )
+        {
+        case EPECallTypeCSVoice:
+            iType = MTelBubbleExtensionData::ECsVoice;
+            break;
+
+        case EPECallTypeVideo:
+            iType = MTelBubbleExtensionData::ECsVideo;
+            break;
+        
+        case EPECallTypeVoIP:
+            iType = MTelBubbleExtensionData::EPsVoice;
+            break;
+        
+        case EPECallTypeUninitialized:
+        default:
+            iType = MTelBubbleExtensionData::EUninitialized;
+            break;
+        }
+    
+    // service ID
+    iService = aParams->ServiceId();
+    }
+
+
+// ---------------------------------------------------------------------------
+// Second phase constructor
+// ---------------------------------------------------------------------------
+//
+void CPhoneBubbleExtensionData::ConstructL( 
+    TPhoneCmdParamCallHeaderData* aParams )
+    {
+    // Copy contact link to local buffer
+    iContactLink = HBufC8::NewL( aParams->ContactLink().Length() );
+    *iContactLink = aParams->ContactLink();
+    
+    // Copy phone number to local buffer
+    iRemotePhoneNumber = aParams->RemotePhoneNumber().AllocL();
+    }
+
+