]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Start persisting settings. Portaudio devices are persisted.
authorJoão Mesquita <jmesquita@freeswitch.org>
Tue, 5 Jan 2010 22:16:46 +0000 (22:16 +0000)
committerJoão Mesquita <jmesquita@freeswitch.org>
Tue, 5 Jan 2010 22:16:46 +0000 (22:16 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16164 d0543943-73ff-0310-b7d9-9358b9ac24b2

fscomm/conf/portaudio.conf.xml
fscomm/mod_qsettings/mod_qsettings.cpp
fscomm/prefdialog.cpp
fscomm/prefdialog.h
fscomm/prefdialog.ui
fscomm/resources.qrc
fscomm/resources/pref_general.jpg [new file with mode: 0644]

index 39caf9243b87340dcea415041bb59cafd3569547..41b9f44a0dc43ec7b784c2555899b7f11b036304 100644 (file)
@@ -8,11 +8,11 @@
                 <!--<param name="ringdev" value="${ringdev}"/>-->
                 <param name="ring-file" value="${ring-file}"/>
                 <param name="ring-interval" value="${ring-interval}"/>
-                <param name="hold-file" value="$${hold_music}"/>
+                <param name="hold-file" value="${hold-file}"/>
                 <!--<param name="timer-name" value="soft"/>-->
                 <param name="dialplan" value="XML"/>
-                <param name="cid-name" value="$${outbound_caller_name}"/>
-                <param name="cid-num" value="$${outbound_caller_number}"/>
+                <param name="cid-name" value="${cid-name}"/>
+                <param name="cid-num" value="${cid-num}"/>
                 <param name="sample-rate" value="48000"/>
                 <param name="codec-ms" value="10"/>
             </settings>
index 5ab20747105330446641166a8cdb6dd1382a0454..cef4720b4559b45747ac3172a48fd868f7275117 100644 (file)
@@ -66,12 +66,15 @@ switch_xml_t XMLBinding::getConfigXML(QString tmpl)
     /* Open template file and expand all strings based on QSettings */
     QByteArray tmplContents(tmplFile.readAll());
     tmplFile.close();
-    _settings->beginGroup("FreeSIWTCH/conf");
+
+    _settings->beginGroup("FreeSWITCH/conf");
     _settings->beginGroup(tmpl);
     foreach(QString k, _settings->childKeys())
     {
         switch_event_add_header_string(e, SWITCH_STACK_BOTTOM, k.toAscii().constData(), _settings->value(k).toByteArray().constData());
     }
+    _settings->endGroup();
+    _settings->endGroup();
 
     char *res = switch_event_expand_headers(e, tmplContents.data());
     switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Template %s as follows:\n%s", tmpl.toAscii().constData(), res);
index 8f842a5c41a82ca44b62834198b4ec34245856d0..3dc2ca9acd813667a9f76fac4b7704c87ef496de 100644 (file)
@@ -7,6 +7,8 @@ PrefDialog::PrefDialog(QWidget *parent) :
     ui(new Ui::PrefDialog)
 {
     ui->setupUi(this);
+    _settings = new QSettings();
+    connect(this, SIGNAL(accepted()), this, SLOT(configAccepted()));
     getPaDevlist();
 }
 
@@ -15,6 +17,25 @@ PrefDialog::~PrefDialog()
     delete ui;
 }
 
+void PrefDialog::configAccepted()
+{
+    _settings->beginGroup("FreeSWITCH/conf");
+
+    _settings->beginGroup("portaudio.conf");
+    _settings->setValue("cid-name", ui->PaCallerIdNameEdit->text());
+    _settings->setValue("cid-num", ui->PaCallerIdNumEdit->text());
+    _settings->setValue("indev", ui->PaIndevCombo->currentIndex());
+    _settings->setValue("outdev", ui->PaOutdevCombo->currentIndex());
+    _settings->setValue("ringdev", ui->PaRingdevCombo->currentIndex());
+    _settings->setValue("ring-file", ui->PaRingFileEdit->text());
+    _settings->setValue("ring-interval", ui->PaRingIntervalSpin->value());
+    _settings->setValue("hold-file", ui->PaHoldFileEdit->text());
+    _settings->endGroup();
+
+    _settings->endGroup();
+
+}
+
 void PrefDialog::getPaDevlist()
 {
     QString result;
index 4a73498f11bd3760c9ae1382c1e85dc80d7081ef..913ced9d52884c8f3f98220816e5b0e21cbfd531 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QDialog>
 #include <QDomDocument>
+#include <QSettings>
 #include <fshost.h>
 
 namespace Ui {
@@ -18,10 +19,14 @@ public:
 protected:
     void changeEvent(QEvent *e);
 
+private slots:
+    void configAccepted();
+
 private:
     void getPaDevlist(void);
     Ui::PrefDialog *ui;
     QDomDocument _xmlPaDevList;
+    QSettings *_settings;
 };
 
 #endif // PREFDIALOG_H
index 68c168364744b32652cfb8825211441f85890ad3..9ffe34bdede89aa3d679975ac987da0d22cc7835 100644 (file)
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>477</width>
-    <height>356</height>
+    <width>661</width>
+    <height>437</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Preferences</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_3">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
+  <layout class="QGridLayout" name="gridLayout_2">
+   <item row="0" column="0">
+    <widget class="QListWidget" name="listSections">
+     <property name="minimumSize">
+      <size>
+       <width>120</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>120</width>
+       <height>16777215</height>
+      </size>
+     </property>
+     <property name="showDropIndicator" stdset="0">
+      <bool>false</bool>
+     </property>
+     <property name="dragDropMode">
+      <enum>QAbstractItemView::NoDragDrop</enum>
+     </property>
+     <property name="iconSize">
+      <size>
+       <width>96</width>
+       <height>84</height>
+      </size>
+     </property>
+     <property name="movement">
+      <enum>QListView::Static</enum>
+     </property>
+     <property name="flow">
+      <enum>QListView::LeftToRight</enum>
+     </property>
+     <property name="isWrapping" stdset="0">
+      <bool>true</bool>
+     </property>
+     <property name="spacing">
+      <number>12</number>
+     </property>
+     <property name="viewMode">
+      <enum>QListView::IconMode</enum>
+     </property>
      <item>
-      <widget class="QListWidget" name="listSections">
-       <property name="minimumSize">
-        <size>
-         <width>120</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>120</width>
-         <height>16777215</height>
-        </size>
-       </property>
-       <property name="showDropIndicator" stdset="0">
-        <bool>false</bool>
-       </property>
-       <property name="dragDropMode">
-        <enum>QAbstractItemView::NoDragDrop</enum>
-       </property>
-       <property name="iconSize">
-        <size>
-         <width>96</width>
-         <height>84</height>
-        </size>
-       </property>
-       <property name="movement">
-        <enum>QListView::Static</enum>
-       </property>
-       <property name="flow">
-        <enum>QListView::LeftToRight</enum>
-       </property>
-       <property name="isWrapping" stdset="0">
-        <bool>true</bool>
-       </property>
-       <property name="spacing">
-        <number>12</number>
-       </property>
-       <property name="viewMode">
-        <enum>QListView::IconMode</enum>
-       </property>
+      <property name="text">
+       <string>Sofia</string>
+      </property>
+      <property name="icon">
+       <iconset resource="resources.qrc">
+        <normaloff>:/images/pref_sip.png</normaloff>:/images/pref_sip.png</iconset>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>PortAudio</string>
+      </property>
+      <property name="icon">
+       <iconset resource="resources.qrc">
+        <normaloff>:/images/pref_audio.gif</normaloff>:/images/pref_audio.gif</iconset>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>General</string>
+      </property>
+      <property name="icon">
+       <iconset resource="resources.qrc">
+        <normaloff>:/images/pref_general.jpg</normaloff>:/images/pref_general.jpg</iconset>
+      </property>
+     </item>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QStackedWidget" name="stackedWidget">
+     <property name="currentIndex">
+      <number>1</number>
+     </property>
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout" name="verticalLayout_2">
        <item>
-        <property name="text">
-         <string>Sofia</string>
-        </property>
-        <property name="icon">
-         <iconset resource="resources.qrc">
-          <normaloff>:/images/pref_sip.png</normaloff>:/images/pref_sip.png</iconset>
-        </property>
+        <widget class="QGroupBox" name="groupBox">
+         <property name="title">
+          <string>Global Settings</string>
+         </property>
+         <layout class="QFormLayout" name="formLayout">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label">
+            <property name="text">
+             <string>log-level</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QSpinBox" name="logLevelSpin"/>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_2">
+            <property name="text">
+             <string>auto-restart</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QComboBox" name="autoRestartCombo"/>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_3">
+            <property name="text">
+             <string>debug-presence</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QSpinBox" name="debugPresenceSpin"/>
+          </item>
+         </layout>
+        </widget>
        </item>
        <item>
-        <property name="text">
-         <string>PortAudio</string>
-        </property>
-        <property name="icon">
-         <iconset resource="resources.qrc">
-          <normaloff>:/images/pref_audio.gif</normaloff>:/images/pref_audio.gif</iconset>
-        </property>
+        <widget class="QGroupBox" name="groupBox_2">
+         <property name="title">
+          <string>Softphone Profile</string>
+         </property>
+         <layout class="QFormLayout" name="formLayout_2">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_4">
+            <property name="text">
+             <string>user-agent-string</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="userAgentStringEdit"/>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_5">
+            <property name="text">
+             <string>debug</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QSpinBox" name="debugSpin"/>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_6">
+            <property name="text">
+             <string>sip-trace</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QComboBox" name="sipTraceCombo"/>
+          </item>
+         </layout>
+        </widget>
        </item>
-      </widget>
-     </item>
-     <item>
-      <widget class="QStackedWidget" name="stackedWidget">
-       <property name="currentIndex">
-        <number>1</number>
-       </property>
-       <widget class="QWidget" name="page">
-        <layout class="QVBoxLayout" name="verticalLayout_2">
-         <item>
-          <widget class="QGroupBox" name="groupBox">
-           <property name="title">
-            <string>Global Settings</string>
-           </property>
-           <layout class="QFormLayout" name="formLayout">
-            <item row="0" column="0">
-             <widget class="QLabel" name="label">
-              <property name="text">
-               <string>log-level</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="1">
-             <widget class="QSpinBox" name="spinBox"/>
-            </item>
-            <item row="1" column="0">
-             <widget class="QLabel" name="label_2">
-              <property name="text">
-               <string>auto-restart</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QComboBox" name="comboBox"/>
-            </item>
-            <item row="2" column="0">
-             <widget class="QLabel" name="label_3">
-              <property name="text">
-               <string>debug-presence</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="1">
-             <widget class="QSpinBox" name="spinBox_2"/>
-            </item>
-           </layout>
-          </widget>
-         </item>
-         <item>
-          <widget class="QGroupBox" name="groupBox_2">
-           <property name="title">
-            <string>Softphone Profile</string>
-           </property>
-           <layout class="QFormLayout" name="formLayout_2">
-            <item row="0" column="0">
-             <widget class="QLabel" name="label_4">
-              <property name="text">
-               <string>user-agent-string</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="1">
-             <widget class="QLineEdit" name="lineEdit"/>
-            </item>
-            <item row="1" column="0">
-             <widget class="QLabel" name="label_5">
-              <property name="text">
-               <string>debug</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QSpinBox" name="spinBox_3"/>
-            </item>
-            <item row="2" column="0">
-             <widget class="QLabel" name="label_6">
-              <property name="text">
-               <string>sip-trace</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="1">
-             <widget class="QComboBox" name="comboBox_2"/>
-            </item>
-           </layout>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-       <widget class="QWidget" name="page_2">
-        <layout class="QVBoxLayout" name="verticalLayout">
-         <item>
-          <widget class="QGroupBox" name="groupBox_3">
-           <property name="title">
-            <string>Devices</string>
-           </property>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_2">
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <item>
+        <widget class="QGroupBox" name="groupBox_3">
+         <property name="title">
+          <string>Devices</string>
+         </property>
+         <layout class="QFormLayout" name="formLayout_3">
+          <item row="0" column="0">
            <widget class="QLabel" name="label_7">
-            <property name="geometry">
-             <rect>
-              <x>72</x>
-              <y>34</y>
-              <width>34</width>
-              <height>17</height>
-             </rect>
-            </property>
             <property name="text">
              <string>indev</string>
             </property>
            </widget>
-           <widget class="QComboBox" name="PaIndevCombo">
-            <property name="geometry">
-             <rect>
-              <x>111</x>
-              <y>32</y>
-              <width>111</width>
-              <height>26</height>
-             </rect>
+          </item>
+          <item row="0" column="1">
+           <widget class="QComboBox" name="PaIndevCombo"/>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_8">
+            <property name="text">
+             <string>outdev</string>
             </property>
            </widget>
-           <widget class="QLabel" name="label_8">
-            <property name="geometry">
-             <rect>
-              <x>63</x>
-              <y>64</y>
-              <width>43</width>
-              <height>17</height>
-             </rect>
+          </item>
+          <item row="1" column="1">
+           <widget class="QComboBox" name="PaOutdevCombo"/>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_9">
+            <property name="text">
+             <string>rindgev</string>
             </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QComboBox" name="PaRingdevCombo"/>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item>
+        <widget class="QGroupBox" name="groupBox_4">
+         <property name="title">
+          <string>Files</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_10">
             <property name="text">
-             <string>outdev</string>
+             <string>ring-file</string>
             </property>
            </widget>
-           <widget class="QComboBox" name="PaOutdevCombo">
-            <property name="geometry">
-             <rect>
-              <x>111</x>
-              <y>62</y>
-              <width>111</width>
-              <height>26</height>
-             </rect>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="PaRingFileEdit">
+            <property name="text">
+             <string>tone_stream://%(2000,4000,440.0,480.0);loops=20</string>
             </property>
            </widget>
-           <widget class="QLabel" name="label_9">
-            <property name="geometry">
-             <rect>
-              <x>59</x>
-              <y>94</y>
-              <width>47</width>
-              <height>17</height>
-             </rect>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_12">
+            <property name="text">
+             <string>ring-interval</string>
             </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QSpinBox" name="PaRingIntervalSpin"/>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_11">
             <property name="text">
-             <string>rindgev</string>
+             <string>hold-file</string>
             </property>
            </widget>
-           <widget class="QComboBox" name="PaRingdevCombo">
-            <property name="geometry">
-             <rect>
-              <x>111</x>
-              <y>92</y>
-              <width>111</width>
-              <height>26</height>
-             </rect>
+          </item>
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="PaHoldFileEdit"/>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_3">
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <item>
+        <widget class="QGroupBox" name="groupBox_5">
+         <property name="title">
+          <string>User Information</string>
+         </property>
+         <layout class="QFormLayout" name="formLayout_4">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_13">
+            <property name="text">
+             <string>CallerID Name:</string>
             </property>
            </widget>
-          </widget>
-         </item>
-         <item>
-          <widget class="QGroupBox" name="groupBox_4">
-           <property name="title">
-            <string>Files</string>
-           </property>
-           <layout class="QFormLayout" name="formLayout_3">
-            <item row="0" column="0">
-             <widget class="QLabel" name="label_10">
-              <property name="text">
-               <string>ring-file</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="1">
-             <widget class="QLineEdit" name="lineEdit_2">
-              <property name="text">
-               <string>tone_stream://%(2000,4000,440.0,480.0);loops=20</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="0">
-             <widget class="QLabel" name="label_12">
-              <property name="text">
-               <string>ring-interval</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QSpinBox" name="spinBox_4"/>
-            </item>
-            <item row="2" column="0">
-             <widget class="QLabel" name="label_11">
-              <property name="text">
-               <string>hold-file</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="1">
-             <widget class="QLineEdit" name="lineEdit_3"/>
-            </item>
-           </layout>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </widget>
-     </item>
-    </layout>
+          </item>
+          <item row="0" column="1">
+           <widget class="QLineEdit" name="PaCallerIdNameEdit"/>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_14">
+            <property name="text">
+             <string>CallerID Number:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QLineEdit" name="PaCallerIdNumEdit"/>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
    </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QDialogButtonBox" name="buttonBox">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="standardButtons">
-        <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
+   <item row="1" column="1">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
    </item>
   </layout>
  </widget>
index 992ac3b6ffb6681bebb41ee0ed948b51b3b48177..8c6ac288edcb7b28642ba2da9770367782da9d63 100644 (file)
@@ -3,6 +3,7 @@
         <file alias="splash.png">resources/splash.png</file>
         <file alias="pref_sip.png">resources/pref_sip.png</file>
         <file alias="pref_audio.gif">resources/pref_audio.gif</file>
+        <file alias="pref_general.jpg">resources/pref_general.jpg</file>
     </qresource>
     <qresource prefix="/confs">
         <file alias="freeswitch.xml">conf/freeswitch.xml</file>
diff --git a/fscomm/resources/pref_general.jpg b/fscomm/resources/pref_general.jpg
new file mode 100644 (file)
index 0000000..105ce3f
Binary files /dev/null and b/fscomm/resources/pref_general.jpg differ