diff -r 594d59766373 -r 7d48bed6ce0c telutils/xqtelephonyservice/src/xqcallinfoimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/xqtelephonyservice/src/xqcallinfoimpl.cpp Tue Aug 31 15:45:17 2010 +0300 @@ -0,0 +1,65 @@ +/* +* Copyright (c) 2009 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 implementation for XQCallInfo -class. +* +*/ + +#include "xqcallinfoimpl.h" +#include +#include +#include + +XQCallInfoImpl::XQCallInfoImpl(): XQCallInfo(), m_CallInformation(0) +{ + TRAPD( error, m_CallInformation = CCallInformation::NewL()); + qt_symbian_throwIfError(error); + setCallInformationObserver(); +} + +XQCallInfoImpl::~XQCallInfoImpl() +{ + delete m_CallInformation; +} + +void XQCallInfoImpl::setCallInformationObserver() +{ + m_CallInformation->NotifyCallInformationChanges(*this); +} + +void XQCallInfoImpl::getCalls(QList &calls) +{ + TRAPD( error, m_Iter = &m_CallInformation->GetCallsL() ); + qt_symbian_throwIfError(error); + + for (m_Iter->First(); !m_Iter->IsDone(); m_Iter->Next()) { + const MCall& call = m_Iter->Current(); + CallInfo callInfo; + callInfo.m_Direction = call.CallDirection(); + callInfo.m_Index = call.CallIndex(); + callInfo.m_ServiceId = call.ServiceId(); + callInfo.m_Type = call.CallType(); + callInfo.m_State = call.CallState(); + calls.append(callInfo); + } +} + +bool XQCallInfoImpl::isCallInState(CCPCall::TCallState state) const +{ + return m_CallInformation->IsCallInState(state); +} + +void XQCallInfoImpl::CallInformationChanged() +{ + XQCallInfo::sendCallInfoChangedSignal(); +}