--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/src/phonecommandextensionwrapper.cpp Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,152 @@
+/*!
+* 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: Wraps phone command extensions.
+*/
+
+#include "phonecommandextensionwrapper.h"
+#include "qtphonelog.h"
+#include <xqplugin.h>
+#include <xqpluginloader.h>
+#include <pevirtualengine.h>
+
+
+PhoneCommandExtensionWrapper::PhoneCommandExtensionWrapper(int pluginUid) :
+ m_plugin(0),m_pluginUid(pluginUid)
+{
+ PHONE_DEBUG("PhoneCommandExtensionWrapper::PhoneMenuExtensionWrapper");
+ XQPluginLoader pluginLoader;
+ pluginLoader.setUid(m_pluginUid);
+
+ QObject *plugin = pluginLoader.instance();
+
+ if (plugin) {
+ m_plugin = qobject_cast<XQTelUiCommandExtension*>(plugin);
+ }
+}
+
+PhoneCommandExtensionWrapper::~PhoneCommandExtensionWrapper()
+{
+ PHONE_DEBUG("PhoneCommandExtensionWrapper::~PhoneCommandExtensionWrapper");
+ release();
+}
+
+int PhoneCommandExtensionWrapper::pluginUid()
+{
+ return m_pluginUid;
+}
+
+void PhoneCommandExtensionWrapper::modifyMenuCommandList(
+ const QList<XQTelUiCommandExtension::CallInfo> &callInfo,
+ QList<int> &menuCmdList)
+{
+ if (m_plugin) {
+ m_plugin->modifyMenuCommandList(callInfo, menuCmdList);
+ }
+}
+
+void PhoneCommandExtensionWrapper::modifyPushButtonCommandList(
+ const QList<XQTelUiCommandExtension::CallInfo> &callInfo,
+ QList<int> &buttonCmdList)
+{
+ if (m_plugin) {
+ m_plugin->modifyPushButtonCommandList(callInfo, buttonCmdList);
+ }
+}
+
+void PhoneCommandExtensionWrapper::addMenuActions(
+ const QList<XQTelUiCommandExtension::CallInfo> &callInfo,
+ QList<HbAction*> &menuActions)
+{
+ if (m_plugin) {
+ m_plugin->addMenuActions(callInfo,menuActions);
+ }
+}
+
+void PhoneCommandExtensionWrapper::releaseMenu()
+{
+ if (m_plugin) {
+ m_plugin->releaseMenu();
+ }
+}
+
+void PhoneCommandExtensionWrapper::release()
+{
+ if (m_plugin) {
+ m_plugin->release();
+ m_plugin = 0;
+ }
+}
+
+void PhoneCommandExtensionWrapper::getCallInfoList(
+ QList<XQTelUiCommandExtension::CallInfo> &callInfo,
+ QMap<int,int> callStates,
+ QMap<int,int> serviceIds,
+ int expandedCall )
+{
+ for (int i=0;i<callStates.keys().count();++i) {
+ XQTelUiCommandExtension::CallInfo info;
+ info.mCallState = mapCallState(callStates.values().at(i));
+ info.mServiceId = serviceIds.value(callStates.keys().at(i));
+ info.mIsExpanded = (expandedCall == callStates.keys().at(i));
+ callInfo.append(info);
+ }
+}
+
+XQTelUiCommandExtension::CallState PhoneCommandExtensionWrapper::mapCallState(
+ int callState )
+{
+ XQTelUiCommandExtension::CallState state(XQTelUiCommandExtension::None);
+
+ switch( callState ) {
+ case EPEStateDisconnecting: {
+ state = XQTelUiCommandExtension::Disconnecting;
+ }
+ break;
+
+ case EPEStateRinging: {
+ state = XQTelUiCommandExtension::Incoming;
+ }
+ break;
+
+ case EPEStateDialing:
+ case EPEStateConnecting: {
+ state = XQTelUiCommandExtension::Outgoing;
+ }
+ break;
+
+ case EPEStateConnected:
+ case EPEStateConnectedConference: {
+ state = XQTelUiCommandExtension::Active;
+ }
+ break;
+
+ case EPEStateHeld:
+ case EPEStateHeldConference: {
+ state = XQTelUiCommandExtension::OnHold;
+ }
+ break;
+
+ case EPEStateUnknown:
+ case EPEStateIdle:
+ case EPEStateConferenceIdle:
+ break;
+
+ default:
+ break;
+ }
+
+ return state;
+}
+
+