Added changes to properly power up the modem once paired, and keep it powered. Added...
authorBrian Jones <brian.j.jones@intel.com>
Tue, 10 Apr 2012 23:12:54 +0000 (16:12 -0700)
committerBrian Jones <brian.j.jones@intel.com>
Tue, 10 Apr 2012 23:12:54 +0000 (16:12 -0700)
to indicate when the CallManager connection has changed. Without this if CallManager wasn't ready during
the initial startup, certain connections wouldn't be made.

qml/DialPage.qml
src/callmanager.cpp
src/callmanager.h
src/managerproxy.cpp
src/qmldialer.cpp

index ba0d0c6..e987d33 100644 (file)
@@ -33,10 +33,10 @@ Item
     Connections {
         target: adapter
         onModemOnlineChanged: {
-            console.log("BJONES POWERED HAS CHANGED!")
+
+           //If the modem gets powered down for any reason, attempt to power it again to maintain connection
             if (!adapter.modemOnline)
             {
-                console.log("BJONES MODEM NOW POWERED DOWN TRYING TO RECONNECT")
                 adapter.modemOnline = true
             }
          }
@@ -212,9 +212,10 @@ Item
                         model: btDevicesModel
 
                         Component.onCompleted: {
-                            if (!adapter.modemOnline)
+                            
+                           //Once model is completed, check if the modem is powered. If not, power it
+                           if (!adapter.modemOnline)
                             {
-                                console.log("BJONES previously created modem is not powered! Try and re-connect")
                                 adapter.modemOnline = true
                             }
                         }
@@ -237,10 +238,6 @@ Item
                                 }
 
                                 onConnectedChanged: {
-                                    console.log("device CONNECTED, attempting to hook up audio")
-                                    // device.connectAudio()
-                                    // device.connectAudioSrc()
-                                    // device.connectInput()
                                 }
                             }
 
index f9fd397..01608e7 100644 (file)
@@ -57,6 +57,8 @@ CallManager::CallManager(const QString &modemPath, QObject *parent)
 
     connect(this,SIGNAL(callsChanged()),this,SLOT(callChangedSlot()));
 
+    connect(this, SIGNAL(validityChanged(bool)), this, SLOT(modemValidityChanged(bool)) );
+
     if (isValid())
         emit connected();
 }
@@ -77,6 +79,13 @@ CallManager::~CallManager()
     d->callItems.clear();
 }
 
+void CallManager::modemValidityChanged(bool valid)
+{
+    TRACE;
+    if (valid)
+       emit connected();
+}
+
 QList<CallItem *> CallManager::getCallItems() const
 {
     TRACE;
index ba09301..5ec3362 100644 (file)
@@ -85,6 +85,7 @@ private Q_SLOTS:
     void sendTonesFinished(const bool status);
     void callStateChanged();
     void callMultipartyChanged();
+    void modemValidityChanged(bool valid);
 
     // Handlers for Resource Policy Manager states and conditions
     void proceedCallDial(const QString number);
index e89ec3c..3f94a10 100644 (file)
@@ -50,6 +50,7 @@ ManagerProxy::ManagerProxy(const QString &service,
         connect(this,
                 SIGNAL(ModemRemoved(const QDBusObjectPath&)),
                 SLOT(modemRemoved(const QDBusObjectPath&)));
+
     }
 
     gManager = this;
@@ -131,6 +132,7 @@ void ManagerProxy::modemAdded(const QDBusObjectPath &in0,const QVariantMap &in1)
     m_modemList.removeDuplicates();
 
     setModem(in0.path());
+    setCallManager(m_modemPath);
 }
 
 void ManagerProxy::modemRemoved(const QDBusObjectPath &in0)
@@ -189,11 +191,10 @@ void ManagerProxy::setModem(QString modemPath)
         m_modem->isValid() &&
         m_modem->path() == modemPath)
     {
+       //If we have a modem, it's valid, but not powered, power it up.
        if (!m_modem->powered())
                m_modem->setPowered(true);
 
-       qDebug()<<"BJONES setting modem, but we already have it! If not powered, power that thing!";
-
         return;
     }
 
@@ -239,6 +240,7 @@ void ManagerProxy::setNetwork(QString modempath)
 
 void ManagerProxy::setCallManager(QString modempath)
 {
+    TRACE
     if (!m_modem || !m_modem->isValid())
         return;
 
@@ -253,11 +255,13 @@ void ManagerProxy::setCallManager(QString modempath)
         }
     }
     else {
-        if(m_callManager || !m_callManager->isValid()) {
-            delete m_callManager;
-            m_callManager = new CallManager(modempath);
-            emit callManagerChanged();
-        }
+        
+        if(m_callManager)
+            delete m_callManager;        
+        
+        m_callManager = new CallManager(modempath);
+        connect(m_callManager, SIGNAL(connected()), this, SIGNAL(callManagerChanged()));
+         emit callManagerChanged();
     }
 }
 
index 91a116e..84d117c 100644 (file)
@@ -248,17 +248,17 @@ void QMLDialer::connectAll()
     TRACE;
     CallManager *cm = ManagerProxy::instance()->callManager();
 
+     if (ManagerProxy::instance()->modem() && ManagerProxy::instance()->modem()->isValid())
+     {
+        connect(ManagerProxy::instance()->modem(), SIGNAL(poweredChanged(bool)), this, SIGNAL(modemOnlineChanged(bool)));
+     }
+
     if (cm && cm->isValid())
         {
             disconnect(cm, SIGNAL(callsChanged()));
             disconnect(cm, SIGNAL(incomingCall(CallItem*)));
             connect(cm, SIGNAL(callsChanged()), this, SLOT(onCallsChanged()));
             connect(cm, SIGNAL(incomingCall(CallItem*)), SLOT(onIncomingCall(CallItem*)));
-           
-           if (ManagerProxy::instance()->modem() && ManagerProxy::instance()->modem()->isValid())
-           {   
-               connect(ManagerProxy::instance()->modem(), SIGNAL(poweredChanged(bool)), this, SIGNAL(modemOnlineChanged(bool)));
-           }
             qDebug() << QString("CallMgr is connected");
         }
     else if (cm)