Revision
14207
Author
jmesquita
Date
2009-07-12 21:48:08 -0500 (Sun, 12 Jul 2009)

Log Message

We are at the right place now, but ... Why cant we bind to those signals?!

Modified Paths

Added Paths

Diff

Added: freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.cpp (0 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.cpp	                        (rev 0)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.cpp	2009-07-13 02:48:08 UTC (rev 14207)
@@ -0,0 +1,64 @@
+#include "esl_oop.h"
+#include "esl_connection.h"
+#include <iostream>
+
+eslConnectionManager::eslConnectionManager() {}
+eslConnectionManager::eslConnectionManager(QString host, QString pass, QString port)
+        : _host(host), _pass(pass), _port(port)
+{
+    doConnect(host, pass, port);
+    start();
+}
+
+eslConnectionManager::~eslConnectionManager()
+{
+    doDisconnect();
+}
+
+void eslConnectionManager::doConnect(QString host, QString pass, QString port)
+{
+    connection = new ESLconnection(host.toAscii(), port.toAscii(), pass.toAscii());
+    eslSetLogLevel(0);
+    isConnected = false;
+}
+
+void eslConnectionManager::doDisconnect()
+{
+    delete connection;
+}
+
+void eslConnectionManager::run()
+{
+    forever
+    {
+        if (connection->connected() && isConnected)
+        {
+            /* We should process our event queue here */
+            ESLevent * event = connection->recvEventTimed(10);
+            if (event)
+            {
+                std::cout << "We received and event!" << std::endl;
+                emit gotEvent(event);
+            }
+         }
+        else if (!connection->connected() && isConnected)
+        {
+            std::cout << "We just got disconnected." << std::endl;
+            isConnected = false;
+            emit gotDisconnected();
+        }
+        else if (connection->connected() && !isConnected)
+        {
+            std::cout << "We just got connected." << std::endl;
+            isConnected = true;
+            connection->sendRecv("log 7");
+            emit gotConnected();
+        }
+        else
+        {
+            std::cout << "We are disconnected and should stop this." << std::endl;
+            doDisconnect();
+            break;
+        }
+    }
+}

Added: freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.h (0 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.h	                        (rev 0)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/esl_connection.h	2009-07-13 02:48:08 UTC (rev 14207)
@@ -0,0 +1,35 @@
+#ifndef ESL_CONNECTION_H
+#define ESL_CONNECTION_H
+
+#include <QThread>
+
+/* Forward declaration of ESLConnection */
+class ESLconnection;
+class ESLevent;
+
+class eslConnectionManager : public QThread    
+{
+    Q_OBJECT
+    Q_DISABLE_COPY(eslConnectionManager)
+public:
+    eslConnectionManager();
+    virtual ~eslConnectionManager();
+    eslConnectionManager(QString,QString,QString);
+    void doConnect(QString, QString, QString);
+    void doDisconnect();
+signals:
+    void gotDisconnected();
+    void gotConnected();
+    void gotEvent(ESLevent *);
+private:
+    ESLconnection* connection;
+    QString _host;
+    QString _pass;
+    QString _port;
+    bool isConnected;
+
+protected:
+    void run();
+};
+
+#endif // ESL_CONNECTION_H

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.cpp (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.cpp	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.cpp	2009-07-13 02:48:08 UTC (rev 14207)
@@ -1,5 +1,6 @@
 #include "fs_gui.h"
 #include "ui_fs_gui.h"
+#include <iostream>
 
 Cfsgui::Cfsgui(QWidget *parent) :
     QMainWindow(parent),
@@ -7,14 +8,32 @@
     serverDialog(new CserverManager)
 {
     m_ui->setupUi(this);
+    connect(m_ui->actionConnect, SIGNAL(triggered())
+            , serverDialog, SLOT(show()));
+    connect(serverDialog, SIGNAL(doConnect(QString,QString,QString)),
+            this, SLOT(newConnectionFromDialog(QString,QString,QString)));
+
+    /*connect(eslConnection, SIGNAL(gotConnected(void)),
+            this, SLOT(gotConnectedSlot(void)));
+    connect(eslConnection, SIGNAL(gotDisconnected(void)),
+            this, SLOT(gotDisconnectedSlot(void)));*/
 }
-
 Cfsgui::~Cfsgui()
 {
     delete m_ui;
     delete serverDialog;
 }
 
+void Cfsgui::gotConnectedSlot()
+{
+    m_ui->textConsole->append("Conneted!");
+    m_ui->statusBar->showMessage("Connected");
+}
+void Cfsgui::gotDisconnectedSlot()
+{
+    m_ui->statusBar->showMessage("Disconnected");
+    m_ui->textConsole->append("Conneted!");
+}
 void Cfsgui::changeEvent(QEvent *e)
 {
     QMainWindow::changeEvent(e);
@@ -30,5 +49,12 @@
 void Cfsgui::closeEvent(QCloseEvent *e)
 {
     /* TODO: We have to stop threads and do cleanup */
+    delete eslConnection;
     e->accept();
 }
+
+void Cfsgui::newConnectionFromDialog(QString host, QString pass, QString port)
+{
+    m_ui->statusBar->showMessage("Connecting...");
+    eslConnection = new eslConnectionManager(host, pass, port);
+}

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.h (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.h	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/fs_gui.h	2009-07-13 02:48:08 UTC (rev 14207)
@@ -3,6 +3,7 @@
 
 #include <QtGui>
 #include "server_manager.h"
+#include "esl_connection.h"
 
 namespace Ui {
     class Cfsgui;
@@ -19,9 +20,15 @@
     virtual void changeEvent(QEvent *e);
     void closeEvent(QCloseEvent *e);
 
+private slots:
+    void newConnectionFromDialog(QString,QString,QString);
+    void gotConnectedSlot();
+    void gotDisconnectedSlot();
+
 private:
     Ui::Cfsgui *m_ui;
     CserverManager *serverDialog;
+    eslConnectionManager *eslConnection;
 };
 
 #endif // FS_GUI_H

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro	2009-07-13 02:48:08 UTC (rev 14207)
@@ -5,10 +5,12 @@
 TEMPLATE = app
 SOURCES += main.cpp \
     fs_gui.cpp \
-    server_manager.cpp
-INCLUDEPATH += ../../../libs/esl/src/include/
+    server_manager.cpp \
+    esl_connection.cpp
+INCLUDEPATH += ../../../libs/esl/src/include
 HEADERS += fs_gui.h \
-    server_manager.h
+    server_manager.h \
+    esl_connection.h
 FORMS += fs_gui.ui \
     server_manager.ui
 LIBS += -L../../../libs/esl \

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.cpp (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.cpp	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.cpp	2009-07-13 02:48:08 UTC (rev 14207)
@@ -6,6 +6,8 @@
     m_ui(new Ui::CserverManager)
 {
     m_ui->setupUi(this);
+    connect(this, SIGNAL(accepted()),
+            this, SLOT(newConnection()));
 }
 
 CserverManager::~CserverManager()
@@ -24,3 +26,11 @@
         break;
     }
 }
+
+void CserverManager::newConnection()
+{
+    //TODO: Sanity checking needed.
+    emit doConnect(m_ui->host->text(),
+                   m_ui->pass->text(),
+                   m_ui->port->text());
+}

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.h (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.h	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.h	2009-07-13 02:48:08 UTC (rev 14207)
@@ -13,10 +13,12 @@
 public:
     explicit CserverManager(QWidget *parent = 0);
     virtual ~CserverManager();
-
+signals:
+    void doConnect(QString, QString, QString);
 protected:
     virtual void changeEvent(QEvent *e);
-
+private slots:
+    void newConnection();
 private:
     Ui::CserverManager *m_ui;
 };

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.ui (14206 => 14207)


--- freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.ui	2009-07-12 18:58:21 UTC (rev 14206)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/server_manager.ui	2009-07-13 02:48:08 UTC (rev 14207)
@@ -39,7 +39,11 @@
          </widget>
         </item>
         <item row="0" column="1">
-         <widget class="QLineEdit" name="lineEdit"/>
+         <widget class="QLineEdit" name="host">
+          <property name="text">
+           <string>localhost</string>
+          </property>
+         </widget>
         </item>
         <item row="1" column="0">
          <widget class="QLabel" name="label_2">
@@ -49,7 +53,11 @@
          </widget>
         </item>
         <item row="1" column="1">
-         <widget class="QLineEdit" name="lineEdit_2"/>
+         <widget class="QLineEdit" name="pass">
+          <property name="text">
+           <string>ClueCon</string>
+          </property>
+         </widget>
         </item>
         <item row="2" column="0">
          <widget class="QLabel" name="label_3">
@@ -59,7 +67,11 @@
          </widget>
         </item>
         <item row="2" column="1">
-         <widget class="QLineEdit" name="lineEdit_3"/>
+         <widget class="QLineEdit" name="port">
+          <property name="text">
+           <string>8021</string>
+          </property>
+         </widget>
         </item>
         <item row="3" column="0">
          <widget class="QPushButton" name="pushButton">