author | harlekin <harlekin> | 2004-02-22 23:38:58 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2004-02-22 23:38:58 (UTC) |
commit | 666a49773d06ac94c19996d763854725c2f7a578 (patch) (side-by-side diff) | |
tree | c886c9373ed967ed5dfe468ac6260d4c5218c4d1 /noncore/net | |
parent | 2fc1e609a40a47df6a38256faccfee7916b59bbd (diff) | |
download | opie-666a49773d06ac94c19996d763854725c2f7a578.zip opie-666a49773d06ac94c19996d763854725c2f7a578.tar.gz opie-666a49773d06ac94c19996d763854725c2f7a578.tar.bz2 |
initial checkin of opie linphone, not really usefull yet, just to make sure I dont loose any data
-rw-r--r-- | noncore/net/linphone/.cvsignore | 6 | ||||
-rw-r--r-- | noncore/net/linphone/linphone.pro | 12 | ||||
-rw-r--r-- | noncore/net/linphone/linphoneconfig.cpp | 65 | ||||
-rw-r--r-- | noncore/net/linphone/linphoneconfig.h | 21 | ||||
-rw-r--r-- | noncore/net/linphone/main.cpp | 22 | ||||
-rw-r--r-- | noncore/net/linphone/mainwidget.ui | 714 | ||||
-rw-r--r-- | noncore/net/linphone/mainwindow.cpp | 37 | ||||
-rw-r--r-- | noncore/net/linphone/mainwindow.h | 35 | ||||
-rw-r--r-- | noncore/net/linphone/qlinphone.cpp | 210 | ||||
-rw-r--r-- | noncore/net/linphone/qlinphone.h | 138 | ||||
-rw-r--r-- | noncore/net/linphone/settingsdialog.ui | 797 |
11 files changed, 2057 insertions, 0 deletions
diff --git a/noncore/net/linphone/.cvsignore b/noncore/net/linphone/.cvsignore new file mode 100644 index 0000000..e971ae6 --- a/dev/null +++ b/noncore/net/linphone/.cvsignore @@ -0,0 +1,6 @@ +.moc +Makefile +mainwidget.cpp +mainwidget.h +settingsdialog.cpp +settingsdialog.h diff --git a/noncore/net/linphone/linphone.pro b/noncore/net/linphone/linphone.pro new file mode 100644 index 0000000..9f9163c --- a/dev/null +++ b/noncore/net/linphone/linphone.pro @@ -0,0 +1,12 @@ +CONFIG += qt warn on release quick-app + +HEADERS = qlinphone.h mainwindow.h linphoneconfig.h +SOURCES = qlinphone.cpp mainwindow.cpp linphoneconfig.cpp main.cpp +INTERFACES = mainwidget.ui settingsdialog.ui + +INCLUDEPATH += $(OPIEDIR)/include /usr/include/linphone /usr/include/osipua /usr/include/ortp /usr/include/glib-2.0 /usr/lib/glib-2.0/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe -lopie -llinphone +TARGET = olinphone + +include ( $(OPIEDIR)/include.pro ) diff --git a/noncore/net/linphone/linphoneconfig.cpp b/noncore/net/linphone/linphoneconfig.cpp new file mode 100644 index 0000000..ee02e1a --- a/dev/null +++ b/noncore/net/linphone/linphoneconfig.cpp @@ -0,0 +1,65 @@ +#include <qspinbox.h> +#include <qlineedit.h> +#include <qcheckbox.h> +#include <qslider.h> + +#include <qpe/config.h> + +#include "linphoneconfig.h" + + +LinPhoneConfig::LinPhoneConfig( QWidget* parent , const char* name , bool modal, WFlags fl ) : SettingsDialog( parent, name, modal, fl ) { + loadConfig(); +} + +LinPhoneConfig::~LinPhoneConfig() { +} + +void LinPhoneConfig::loadConfig() { + Config cfg("opie-phone"); + cfg.setGroup( "net" ); + cfg.setGroup( "sip" ); + PortSpin->setValue( cfg.readNumEntry( "sip_port", 5060 ) ); + UserPartLine->setText( cfg.readEntry( "username", "" ) ); + HostPartLine->setText( cfg.readEntry( "hostname", "" ) ); + CheckBoxReg->setChecked( cfg.readBoolEntry( "use_registrar", 0 ) ); + ServerAddressLine->setText( cfg.readEntry( "registrar", "" ) ); + // cannot use crypt due to gnome stuff in linephone + PasswordLine->setText( cfg.readEntry( "reg_password", "" ) ); + RecordLine->setText( cfg.readEntry( "addr_of_rec", "" ) ); + CheckBoxProxy->setChecked( cfg.readBoolEntry( "as_proxy", 0 ) ); + cfg.setGroup( "rtp" ); + RTPPort->setText( cfg.readEntry( "audio_rtp_port", "" ) ); + SliderJitter->setValue( cfg.readNumEntry( "jitt_comp", 60 ) ); + cfg.setGroup( "audio" ); + // source + cfg.setGroup( "video" ); + cfg.setGroup( "codecs" ); + cfg.setGroup( "address_book" ); +} + +void LinPhoneConfig::writeConfig() { + Config cfg("opie-phone"); + cfg.setGroup( "net" ); + cfg.setGroup( "sip" ); + cfg.writeEntry( "sip_port", PortSpin->value() ); + cfg.writeEntry( "username", UserPartLine->text() ); + cfg.writeEntry( "hostname", HostPartLine->text() ); + cfg.writeEntry( "use_registrar", CheckBoxReg->isChecked() ); + cfg.writeEntry( "registrar", ServerAddressLine->text() ); + cfg.writeEntry( "reg_password", PasswordLine->text() ); + cfg.writeEntry( "addr_of_rec", RecordLine->text() ); + cfg.writeEntry( "as_proxy", CheckBoxProxy->isChecked() ); + cfg.setGroup( "rtp" ); + cfg.writeEntry( "audio_rtp_port", RTPPort->text() ); + cfg.writeEntry( "jitt_comp", SliderJitter->value() ); + cfg.setGroup( "audio" ); + cfg.setGroup( "video" ); + cfg.setGroup( "codecs" ); + cfg.setGroup( "address_book" ); +} + +void LinPhoneConfig::accept() { + writeConfig(); + QDialog::accept(); +} diff --git a/noncore/net/linphone/linphoneconfig.h b/noncore/net/linphone/linphoneconfig.h new file mode 100644 index 0000000..6ab8947 --- a/dev/null +++ b/noncore/net/linphone/linphoneconfig.h @@ -0,0 +1,21 @@ +#ifndef LINPHONECONFIG_H +#define LINPHONECONFIG_H + +#include "settingsdialog.h" + +class LinPhoneConfig : public SettingsDialog { + + Q_OBJECT + +public: + LinPhoneConfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + virtual ~LinPhoneConfig(); + +private slots: + void accept(); + +private: + void writeConfig(); + void loadConfig(); +}; +#endif diff --git a/noncore/net/linphone/main.cpp b/noncore/net/linphone/main.cpp new file mode 100644 index 0000000..9146fee --- a/dev/null +++ b/noncore/net/linphone/main.cpp @@ -0,0 +1,22 @@ +/*************************************************************************** + main-opie.cpp - description + ------------------- + begin : ven mai 23 19:26:00 CEST 2003 + copyright : (C) 2003 by Simon Morlat + email : simon.morlat@linphone.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +#include <opie/oapplicationfactory.h> +#include "mainwindow.h" + +OPIE_EXPORT_APP( OApplicationFactory<MainWindow> ) + + diff --git a/noncore/net/linphone/mainwidget.ui b/noncore/net/linphone/mainwidget.ui new file mode 100644 index 0000000..b354713 --- a/dev/null +++ b/noncore/net/linphone/mainwidget.ui @@ -0,0 +1,714 @@ +<!DOCTYPE UI><UI> +<class>_QLinphoneMainWidget</class> +<widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>_QLinphoneMainWidget</cstring> + </property> + <property stdset="1"> + <name>geometry</name> + <rect> + <x>0</x> + <y>0</y> + <width>385</width> + <height>410</height> + </rect> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>7</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> + <name>caption</name> + <string>opie-phone</string> + <comment>SIP internet phone</comment> + </property> + <property stdset="1"> + <name>icon</name> + <pixmap>image0</pixmap> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QFrame</class> + <property stdset="1"> + <name>name</name> + <cstring>Frame5</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>7</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> + <name>frameShape</name> + <enum>StyledPanel</enum> + </property> + <property stdset="1"> + <name>frameShadow</name> + <enum>Raised</enum> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>sip_url</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>sip:</string> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout10</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>_callbutton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Call/Answer</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>_hangupbutton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Hangup/Refuse</string> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBox1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Show more</string> + </property> + </widget> + <widget> + <class>QTabWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>TabWidget2</cstring> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Sound</string> + </attribute> + <grid> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <spacer row="0" column="0" > + <property> + <name>name</name> + <cstring>Spacer2</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget row="1" column="0" rowspan="1" colspan="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Output Level</string> + </property> + </widget> + <widget row="3" column="0" rowspan="1" colspan="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Input Level</string> + </property> + </widget> + <spacer row="5" column="0" > + <property> + <name>name</name> + <cstring>Spacer3</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget row="4" column="0" > + <class>QSlider</class> + <property stdset="1"> + <name>name</name> + <cstring>SliderInput</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>100</number> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + </widget> + <widget row="4" column="1" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>TextLabel2</string> + </property> + </widget> + <widget row="2" column="1" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>TextLabel1</string> + </property> + </widget> + <widget row="2" column="0" > + <class>QSlider</class> + <property stdset="1"> + <name>name</name> + <cstring>SliderOutput</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>100</number> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + </widget> + </grid> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Avail</string> + </attribute> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>DTMF</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>LineEdit2</cstring> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout5</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>1</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>2</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>3</string> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout6</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB4</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>4</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB5</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>5</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB6</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>6</string> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout7</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB7</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>7</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB8</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>8</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB9</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>9</string> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout8</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButton12</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>*</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushB0</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>0</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushBSharp</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>#</string> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>My friends</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QListView</class> + <property stdset="1"> + <name>name</name> + <cstring>FriendListView</cstring> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout10</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButtonAdd</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Add friend</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButtonDel</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>delete</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButton17</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Add add. book</string> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer4</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget> + <class>Line</class> + <property stdset="1"> + <name>name</name> + <cstring>Line1</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>status_bar</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Status</string> + </property> + </widget> + </vbox> + </widget> + </hbox> +</widget> +<customwidgets> + <customwidget> + <class>QListView</class> + <header location="global">qlistview.h</header> + <sizehint> + <width>-1</width> + <height>-1</height> + </sizehint> + <container>0</container> + <sizepolicy> + <hordata>5</hordata> + <verdata>5</verdata> + </sizepolicy> + <pixmap>image1</pixmap> + </customwidget> +</customwidgets> +<images> + <image> + <name>image0</name> + <data format="XPM.GZ" length="8246">789cb5985b532a4912c7dfcfa73026df4e6ce470e946888d7df08622a2888ae0c63e6475370a0272157562bffbfebb2aabbc9d9970cecc1e02e1d7999559999595559c5fbf6ff5daadadefbf7e5bae64354cb6923b596c7d4fd793c9f3bffff3afdfbefd1217b6a278ab542a6c957ef9c7b75fce575bc9d6e9c334cb41c6002ad87f399b8972a4bcb15cf52cf3c055cb9172d5b179544e94939c8b85c0a9e7a2b33f749cbfacbd7be548e54f96ab415e56f6f29972d5313d0676fed6ca8963a69c4b85c0578ef1c471d573c9f96b2a47ca6dcb35cfe641b9ea98aa816b56bfa59c289b9ccb45cfe6c573b968e5278ecb05d54f3c3b39dd58ae79e6a172a4f2b97255ed5d0776feac3c2a7ab91905b67232ca3a1ff3ca6e7ce6382a38e65dcf91f3df548ed4deb6672737b796c5ebcbb3b2d7bff2acf676028be5997255c78f025bb9dc28272a1f0476e3ed7ac5253f9ef702bbf14b653ffe29b0934f1cc705c766e939b69b4b0e9563c7e4c68bd767f1ece4bcad1cebfcba9e557ead5c531e0576f6f69553959bc0ce9eada74ac98f972365af9f0676f6ca8e2b45e53bcf1537bea71c3b265bdf1509fac79e557fa81c3bb9649e55be50ae3936cfcaa932e7bc5df6fa66a1acf153ddb3dabb0aece45365b5c78781dd7cd4fe76d1b111cfdb652bbf558e9d9c6b968dd7a754d9cb179edd783350f6f3697b7672be0d6cacbfbe72ea986cfeaa653f9efb9edd78ba0c6cf5b9a99caafd24b093b71d57353ebe0fecfcaf3c579dfd3be558d99e175513ecdf38f6e3a9e259f547cab1fa7ff6ece466aaacf3a73dcf4e2e75e554ed1de45c8b82bd13653fbee859c797023bf94059edf14e60177feab8a6f3e7416037fed6732db2fa3a9f5aace35f3c3b393bff89f727e781ddfc9d7e12ecef2bab3dce3cabbf8ab28f67e159e5bb81132bb7f52d91d7e79e67a74ff7819d7e4139557bd3c0562ec79ec5c577e4588a2adf538ed59e5d6f4982bdaa63d1fcf14160a79f28fbf1879e9d3f79501695973dabdcf65393fb77f19d06b6fadc52d6f15cf4ecc6d39972a6f1343cabfc38b0f31f3b3625c7c6de2f4ceaed9bb1b2b757f0acf39d39c678c7fb819d7ec7b371f2ae7245e7130576f12c3d3b7d5a2b8bdaab797672b6f94962ef9fcf94bd7d09ece29d28fb7c5160e77fec59e77ba9acf9e2c03abf46e0d4eac78e138d972e023bf98ee724b672bb7f92101f9f2b7bfb7dc7c1de26b0b377aaacf9e242602be727cfce9f59298b93d3ae6795dbfd94c6de9e6c023bfd9ab21fdff1ecc6cb85b2e683bb9e35de526037ff33c7a9e643ee025bb9719c797b429e9d3e478ec37809ecfc373ca74ebfaeacf9e04d60a73ff1ecf465ad2c8ec9f68bace2c75316d88daf288b63ea7956ff17ca1a3fc79e553e0dec7edf141d673a7f3a0f6ce564ef5759e6c7d3cab1d7e757b6fadc51ae283f78ce2a76fc525954bef6ece4627f9f0c2a61fc5c59e5ece599f22cb0d53f5ffdff5f7fc50f130b1b4e38e58c0778dff2dddfe787873ce27b1ef384a7fcc0339ebf7b2ffeba1f3bf725af78cd8fb0f8c81b7ee2677ee11d78dee53ddee703aef3e1cffb819523ccdfcd79cd0dd83ee6261ff2095e2d3ee533bcda7cce1dbee0cb9ff1c35798ed13e69ec7d0c52a5c738ffbd66efebac1930217b9c4658ee065ce315778fbcff9e12af23485fddccb92175c23e653223e2322b19f069f093f520aeb2be8c10b6534f8ba1fbea25b1b035682eef89a86b03aa27bce684c132ed1941e684673aed3829688b08068d6d05dc1d3faab7ee89136762dbafc4c4ff40c1f2fdcc2ac0fe1778776e06d97f66840fb8823816e420754a743eed08a8e38faaa1f64bc4d0d3ae6436ad209b5e894ceb8496d3c5fd3c2561b62a573c2ba23ca0bbaa42baaf30d3e17348266f72b7e30b323ba460e7a985b05dffbc8d20d9e16a8881d93d86cceecdbee192a5199228aa942db54a506f7be160f57a9867c60cec8761ddff01616c2e70d56aa63d76d22623fd75442cda562704f4b2942950f3996ec8ffdc8801772cb290d503d73fb5ad9988812da83c74b1ecb1daa6141c71463952ee161c83d48f7b13a13ca30a394ae78f3d1d35b3f32e21db997b1e4fa1798ed1a59c92b75841ae8e36f9d6a94c814eb728c9e56c59e69c983cc644ee75c9005388fbd2e4b59c99a873ff6032f8732b6797b41e46e0de6744d45ccf54836f2447579b6bb31f750c43e59c98bece0492203ca6486711bbb7f229acb2e1dffd8cf6b07c4be3842be7ab2878ca4ba3e135e62956bf8ded1795740893cc93ee28ce400332aa34623d5375c94fa673ff428a1ff2173981bea758cce729eaf8f1c71260b640df9c7eb09bdad629f37641ff9426e25df0311aaad956b40ef529a58e3db8f7e60a9f6a61e4eb0f235ecce3e4d685f5aa8b202f2a3b587b57b91d3fc3b6abe80cc0d309b36edc919bac22d62aa5959dec33734ffb43e19a5d20eb9bb9121f6f889ada731767e94c7626b2f8fa983782de3ef0b2af110cf06b28bf8ce316edfe9d10346773ed71b35dff674ecf03e6ae9426378f7c62e7e426eed77d950996f85d15a87d8c935ece57bbb8e15b9c4897b447b9feafa4a1a6ffcccf85d0cef3fd1c70a6ebdc0e788772a5d64f31a59ebf3b12cd0cef3f59bc93577f3bdf4266f53f9d02fe444369f6309ef1831641adfb1f4798908477283156374df99dd49f9ae5ad2ee3b3f6d1a7dec167896d839efe345ef63829f3b9c3dcaf2c435ac4e03796af05c8ad24065c08794f0bc20e3377eca382bcb9f3c45549418fbbf8b9df431a68eac72ef762ff5b1cf2fb1b73bb4918a3d37705a705fb6f94caaaf7e642435baa7ea673fc8c292aed08b069fd729ef637915db1adc487e0f79c1fd6a4587e8ee9c9fecf9a96b58c23d515ad412f3b99ff373feeb13eb4bf0f3b9ee56e8343dd403439ac7708c1abfe19621e7c1be856b465ef386bd9c980f9ed025a64e863ef9e3da5b613d76b880336880589a38179cf597d7cffc6614e23941af664e358aa131b94f6987275726c1cda9fe312678eb60ed4694d26998bfbd0be59ff64d74f29a3744fd98af06b6db1ecea03b8c8ea9873e7260ef3933f4ce217ec14fd0893ec4a473f76f42a7127b1f9a68e65a865feb1ab5d6371975d16f2f50f70d39c5de4bb07f629c75796515a96306e616f7b9d6fb98cc1dee5a2f32f3eb81bf13f7c6df67de36c3f7fd009d7689dd72cd97d4451fbd92b619d11c7533c609d437f798fd0a5e7b6688aedaf7315166c688e3f44d3ca4f1a4d4351377a2bde9d706ebd9e5c84c99cc0313ce86f0827684ddd5b4674f4c9199413e0bfb66285d7a575f5245ff8cbc87b77e707758a066f6696e32dc428a4466eef5e8ca8cd0171ecdc41858c73d10b53ec64a96f3fe4703b3785d1f33e65abe8e26f9b83f9c1fba412c389965cec62ca5670c763fc1e71027a59815aa36c2497782f543c6d019c7f6343c9186c96fdc880331c08394df47f1c94f8a6c47b81b9569475ae87d4d9c399dbc8ab15eb87d20e12b7b033ae03dc4d0f5d610558a3b694926a8c5dff1f0ea4796a8e0183db089aa15dcd362fbfba28e6c9f4b01bb196736aa0c273fa2bae6a6345f6de611fcb187573fe616fbe3597003c3ac23ac7486ea2ac2eb1332d1c65dbd877acb30f304f545d2fe8add1fe70d153c454ef25bc1193ae30c7364dcd38a2631eb7c8fa2c74db0be8fe89411b7e5e467fdd80ccc25321bf3e4ba0c6a6e803333fd981574fd062af0533d7dddcffb17f67d11abd295c95b3fa8c85323e6f9cf67eef77fcf61f51b7c83b2d8332fe641fd64b85f574df277fa81d5850c4dfe5baa801a89786056dc356bd4dba753f7aff9b1779e1acecb1af64e0fb598a0daaed107e9eff683ec0d8551d3114ebc0d6239e0eacf54f557ffff006b15a183ff9407f5f3df7f7efb1f2140aae1</data> + </image> + <image> + <name>image1</name> + <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1ddec44f503c0ae2a154410f53d0ed20e2bf6bdb656dd6861dd23d9a66591b0587fd1654235ebded6f0edcd53e419d87ae7b1f4f9b8f906d0bfe012317426a70b07bdc2f3ec77f8ed6b89559061a0343d06a124cc105596482585094bc0ae599b04646c9018926491b2205e140c485cace25755c175d0a967b622ff900b8cc9c7d29af594ea722d589167f813aa852ba07d94b9dce296e883fe7bb163f23896753</data> + </image> +</images> +<connections> + <connection> + <sender>_callbutton</sender> + <signal>clicked()</signal> + <receiver>_QLinphoneMainWidget</receiver> + <slot>callOrAccept()</slot> + </connection> + <connection> + <sender>_hangupbutton</sender> + <signal>clicked()</signal> + <receiver>_QLinphoneMainWidget</receiver> + <slot>terminateCall()</slot> + </connection> + <connection> + <sender>SliderOutput</sender> + <signal>valueChanged(int)</signal> + <receiver>TextLabel1_2</receiver> + <slot>setNum(int)</slot> + </connection> + <connection> + <sender>SliderInput</sender> + <signal>valueChanged(int)</signal> + <receiver>TextLabel2_2</receiver> + <slot>setNum(int)</slot> + </connection> + <slot access="public">callOrAccept()</slot> + <slot access="public">terminateCall()</slot> +</connections> +</UI> diff --git a/noncore/net/linphone/mainwindow.cpp b/noncore/net/linphone/mainwindow.cpp new file mode 100644 index 0000000..1bd9987 --- a/dev/null +++ b/noncore/net/linphone/mainwindow.cpp @@ -0,0 +1,37 @@ +#include <qlayout.h> +#include <qpe/resource.h> +#include <qpe/qpeapplication.h> + +#include "mainwindow.h" +#include "linphoneconfig.h" + +MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) +: QMainWindow( parent, name, flags ) { + + setCaption( tr( "Sip Phone" ) ); + setToolBarsMovable( false ); + + toolBar = new QToolBar( this ); + toolBar->setHorizontalStretchable( true ); + menuBar = new QMenuBar( toolBar ); + prefMenu = new QPopupMenu( menuBar ); + menuBar->insertItem( tr( "Connection" ), prefMenu ); + + settings = new QAction( tr("Settings"), QIconSet( Resource::loadPixmap("SettingsIcon") ), 0, 0, this); + settings->addTo( prefMenu ); + connect( settings, SIGNAL( activated() ), + SLOT( slotSettings() ) ); + + mainWidget = new QLinphoneMainWidget( this, "qlinphone", WStyle_ContextHelp ); + setCentralWidget( mainWidget ); +} + + +MainWindow::~MainWindow() {} + +void MainWindow::slotSettings() { + LinPhoneConfig settings( this, 0, true, WStyle_ContextHelp ); + QPEApplication::execDialog( &settings ); + // FIXME - only in OK case + mainWidget->createLinphoneCore(); +} diff --git a/noncore/net/linphone/mainwindow.h b/noncore/net/linphone/mainwindow.h new file mode 100644 index 0000000..5a9bafb --- a/dev/null +++ b/noncore/net/linphone/mainwindow.h @@ -0,0 +1,35 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include <qmainwindow.h> + +#include <qtoolbar.h> +#include <qmenubar.h> +#include <qaction.h> + +#include "qlinphone.h" + +class MainWindow : public QMainWindow { + Q_OBJECT + +public: + MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); + virtual ~MainWindow(); + + static QString appName() { + return QString::fromLatin1("olinphone"); + } + + QLinphoneMainWidget *mainWidget; + QToolBar *toolBar; + QMenuBar *menuBar; + QPopupMenu *prefMenu; + + QAction *settings; + +public slots: + void slotSettings(); + +}; + +#endif diff --git a/noncore/net/linphone/qlinphone.cpp b/noncore/net/linphone/qlinphone.cpp new file mode 100644 index 0000000..3cc2ebc --- a/dev/null +++ b/noncore/net/linphone/qlinphone.cpp @@ -0,0 +1,210 @@ +/*************************************************************************** + qlinphone.cpp - description + ------------------- + begin : sam mai 24 2003 + copyright : (C) 2003 by Simon Morlat, 2004 Maximilian Reiss + email : simon.morlat@linphone.org, harlekin@handhelds.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "qlinphone.h" +#include <qlineedit.h> +#include <qlabel.h> +#include <qwidget.h> +#include <qslider.h> +#include <qtabwidget.h> +#include <qcheckbox.h> +#include <qmessagebox.h> +#include <qpe/config.h> +#include <qpe/qpeapplication.h> +#include <linphonecore.h> + +extern "C" { + static void stub(LinphoneCore*lc, char*msg) {} + + static void qt_show(LinphoneCore *lc) { + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + w->pushGuiTask(new ShowTask(w)); + } + + static void qt_inv_recv(LinphoneCore *lc, char *from) { + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + QString tmp(from); + w->pushGuiTask(new InviteReceivedTask(w,tmp)); + } + + static void qt_display_status(LinphoneCore *lc, char *status) { + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + QString tmp(status); + w->pushGuiTask(new UpdateStatusBarTask(w,tmp)); + } + static void qt_display_message(LinphoneCore *lc, char *message) { + QString qmsg(message); + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); + } + static void qt_display_warning(LinphoneCore *lc, char *message) { + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + QString qmsg(message); + w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Warn)); + } + static void qt_display_url(LinphoneCore *lc, char *message, char *url) { + QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; + QString qmsg=QString(message)+QString(url); + w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); + } + static void qt_notify_recv(LinphoneCore *lc, const char *url, const char *status) { + } + + LinphoneCoreVTable lcvtable={ + show: + qt_show, + inv_recv: + qt_inv_recv, + bye_recv : + stub, + notify_recv : + qt_notify_recv, + display_status : + qt_display_status, + display_message : + qt_display_message, + display_warning : + qt_display_warning, + display_url : + qt_display_url, + display_question : + stub + }; + + +} //extern "C" + +void UpdateStatusBarTask::execute() { + static_cast<QLinphoneMainWidget*>(_w)->displayStatus(_msg); +} + +void InviteReceivedTask::execute() { + static_cast<QLinphoneMainWidget*>(_w)->inviteReceived(_msg); +} + +void DisplayMessageTask::execute() { + switch(_msgtype) { + case Info: + QMessageBox::information(0,QObject::tr("Information"),_msg); + break; + case Warn: + QMessageBox::warning(0,QObject::tr("Warning"),_msg); + break; + } +} + +QLinphoneMainWidget::QLinphoneMainWidget(QWidget* parent , const char* name , WFlags fl ) : +_QLinphoneMainWidget( parent, name, fl ) { + + readConfig(); + createLinphoneCore(); + connect( CheckBox1, SIGNAL( toggled( bool ) ), this, SLOT( slotHide( bool ) ) ); + CheckBox1->setChecked( true ); +} + +QLinphoneMainWidget::~QLinphoneMainWidget() { + linphone_core_destroy(_core); + writeConfig(); +} + +void QLinphoneMainWidget::slotHide( bool show ) { + if ( show ) { + TabWidget2->show(); + } else { + TabWidget2->hide(); + } +} + +void QLinphoneMainWidget::callOrAccept() { + if (linphone_core_inc_invite_pending(_core)) { + linphone_core_accept_dialog(_core,NULL); + return; + } + QString url=sip_url->text(); + linphone_core_invite(_core,(char*)url.ascii()); +} +void QLinphoneMainWidget::terminateCall() { + linphone_core_terminate_dialog(_core,NULL); +} + +void QLinphoneMainWidget::inviteReceived(QString &tmp) { + sip_url->setText(tmp); +} + +void QLinphoneMainWidget::displayStatus(QString &msg) { + status_bar->setText(msg); +} + +void QLinphoneMainWidget::pushGuiTask(GuiTask* g) { + _mutex.lock(); + _actionq.enqueue(g); + _mutex.unlock(); + printf("New action added to task list.\n"); +} + +void QLinphoneMainWidget::processGuiTasks() { + GuiTask *g; + _mutex.lock(); + while(!_actionq.isEmpty()) { + g=_actionq.dequeue(); + printf("Executing action...\n"); + g->execute(); + delete g; + } + _mutex.unlock(); +} + +void QLinphoneMainWidget::timerEvent(QTimerEvent *t) { + processGuiTasks(); +} + +void QLinphoneMainWidget::readConfig() { + Config cfg( "opie-phone" ); + cfg.setGroup( "audio" ); + SliderInput->setValue( cfg.readNumEntry( "rec_lev", 50 ) ); + SliderOutput->setValue( cfg.readNumEntry( "play_lev", 50 ) ); +} + +void QLinphoneMainWidget::writeConfig() { + Config cfg( "opie-phone" ); + cfg.setGroup( "audio" ); + cfg.writeEntry( "rec_lev", SliderInput->value() ); + cfg.writeEntry( "playlev", SliderOutput->value() ); +} + +void QLinphoneMainWidget::helpAbout() { + QMessageBox::about(this,tr("About Linphone"),tr("QT version of linphone\nJuly 2003 - Made in old Europe.")); +} + +void QLinphoneMainWidget::createLinphoneCore() { + if ( _core ) { + linphone_core_destroy(_core); + } + + gchar *home=getenv("HOME"); + gchar *suffix="/Settings/opie-phone.conf"; + if (home==0) + home=strdup("/root"); + gchar *config=new char[strlen(home)+strlen(suffix)+2]; + sprintf(config,"%s/%s",home,suffix); + /* tracing for osip */ + TRACE_INITIALIZE((trace_level_t)5,stdout); + _core=linphone_core_new(&lcvtable,config,(gpointer)this); + delete [] config; + startTimer(10); +} + diff --git a/noncore/net/linphone/qlinphone.h b/noncore/net/linphone/qlinphone.h new file mode 100644 index 0000000..4192a4c --- a/dev/null +++ b/noncore/net/linphone/qlinphone.h @@ -0,0 +1,138 @@ +/*************************************************************************** + qlinphone.h - description + ------------------- + begin : sam mai 24 2003 + copyright : (C) 2003 by Simon Morlat, 2004 Maximilian Reiss + email : simon.morlat@linphone.org, harlekin@handhelds.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif +#include "mainwidget.h" +#include <qobject.h> +#include <qpushbutton.h> +#include <qqueue.h> +#include <pthread.h> + +class GuiTask { +public: + GuiTask(QWidget *w) { + _w=w; + } + virtual void execute()=0; + virtual ~GuiTask() {} + ; +protected: + QWidget *_w; +}; + +class ShowTask: public GuiTask { +public: +ShowTask(QWidget *w) : GuiTask(w) {} + ; +private: + void execute() { + _w->show(); + } +}; + +class DisplaySomethingTask : public GuiTask { +public: +DisplaySomethingTask(QWidget* w,QString &msg): GuiTask(w) { + _msg=msg; + } +protected: + QString _msg; +}; + +class UpdateStatusBarTask : public DisplaySomethingTask { +public: +UpdateStatusBarTask(QWidget *w,QString &msg) :DisplaySomethingTask(w,msg) {} + ; +private: + void execute(); +}; + +class InviteReceivedTask : public DisplaySomethingTask { +public: +InviteReceivedTask(QWidget *w,QString &msg) :DisplaySomethingTask(w,msg) {} + ; +private: + void execute(); +}; + +class DisplayMessageTask : public DisplaySomethingTask { +public: + enum MessageType{Info,Warn}; +DisplayMessageTask(QWidget *w,QString &msg,MessageType type) : DisplaySomethingTask(w,msg) { + _msgtype=type; + }; +private: + void execute(); + MessageType _msgtype; +}; + + + +typedef struct _LinphoneCore LinphoneCore; + +class MyMutex { +public: + MyMutex() { + pthread_mutex_init(&_mutex,NULL); + } + void lock() { + pthread_mutex_lock(&_mutex); + } + void unlock() { + pthread_mutex_unlock(&_mutex); + } + ~MyMutex() { + pthread_mutex_destroy(&_mutex); + } +private: + pthread_mutex_t _mutex; +}; + +class QLinphoneMainWidget : public _QLinphoneMainWidget { + +Q_OBJECT + +public: + QLinphoneMainWidget(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); + ~QLinphoneMainWidget(); + + + void callOrAccept(); + void terminateCall(); + void inviteReceived(QString &from); + void displayStatus(QString &status); + void helpAbout(); + // make it private + void createLinphoneCore(); + void pushGuiTask(GuiTask* g); + +private slots: + void slotHide( bool show ); + +private: + void readConfig(); + void writeConfig(); + void processGuiTasks(); + void timerEvent(QTimerEvent *); + LinphoneCore *_core; + QQueue<GuiTask> _actionq; + MyMutex _mutex; +}; + + diff --git a/noncore/net/linphone/settingsdialog.ui b/noncore/net/linphone/settingsdialog.ui new file mode 100644 index 0000000..69d3228 --- a/dev/null +++ b/noncore/net/linphone/settingsdialog.ui @@ -0,0 +1,797 @@ +<!DOCTYPE UI><UI> +<class>SettingsDialog</class> +<widget> + <class>QDialog</class> + <property stdset="1"> + <name>name</name> + <cstring>SettingsDialog</cstring> + </property> + <property stdset="1"> + <name>geometry</name> + <rect> + <x>0</x> + <y>0</y> + <width>393</width> + <height>459</height> + </rect> + </property> + <property stdset="1"> + <name>caption</name> + <string>Settings</string> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QTabWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>TabWidget4</cstring> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Network</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox1</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string>NAT traversal options (experimental)</string> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout15</cstring> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBoxNAT</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Enable</string> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Firewall ip address (in dot notations):</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>NatIpField</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + </widget> + </vbox> + </widget> + </vbox> + </widget> + <widget> + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox2</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string>RTP properties</string> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout17</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>RTP port used for audio</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>RTPPort</cstring> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout15</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>buffer miliiseconds:</string> + </property> + </widget> + <widget> + <class>QSlider</class> + <property stdset="1"> + <name>name</name> + <cstring>SliderJitter</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>512</number> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>TextLabel3</string> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + </vbox> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Sound device</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox3</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string>Sound properties</string> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="1" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel5</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Source:</string> + </property> + </widget> + <widget row="1" column="1" > + <class>QComboBox</class> + <property stdset="1"> + <name>name</name> + <cstring>SourceCombo</cstring> + </property> + </widget> + <widget row="0" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel4</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Device:</string> + </property> + </widget> + <widget row="0" column="1" > + <class>QComboBox</class> + <property stdset="1"> + <name>name</name> + <cstring>DeviceCombo</cstring> + </property> + </widget> + </grid> + </widget> + </vbox> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>SIP</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox4</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string>Basic</string> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout19</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel6</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Port:</string> + </property> + </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer7</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget> + <class>QSpinBox</class> + <property stdset="1"> + <name>name</name> + <cstring>PortSpin</cstring> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>64000</number> + </property> + <property stdset="1"> + <name>value</name> + <number>5060</number> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout20</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel7</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Sip address:</string> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout18</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel8</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>sip:</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>UserPartLine</cstring> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel9</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>@</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>HostPartLine</cstring> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + </vbox> + </widget> + <widget> + <class>QGroupBox</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupBox5</cstring> + </property> + <property stdset="1"> + <name>title</name> + <string>Remote services</string> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBoxReg</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Use sip registrar</string> + </property> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout21</cstring> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="2" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel13</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Address of record:</string> + </property> + </widget> + <widget row="0" column="1" > + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>ServerAddressLine</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + </widget> + <widget row="2" column="1" > + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>RecordLine</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + </widget> + <widget row="1" column="1" > + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>PasswordLine</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>echoMode</name> + <enum>Password</enum> + </property> + </widget> + <widget row="0" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel11</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Server address:</string> + </property> + </widget> + <widget row="1" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel12</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Password:</string> + </property> + </widget> + </grid> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBoxProxy</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Use this registrar as proxy</string> + </property> + </widget> + </vbox> + </widget> + </vbox> + </widget> + <widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>tab</cstring> + </property> + <attribute> + <name>title</name> + <string>Codecs</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel14</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>later</string> + </property> + </widget> + </vbox> + </widget> + </widget> + </vbox> +</widget> +<connections> + <connection> + <sender>SliderJitter</sender> + <signal>valueChanged(int)</signal> + <receiver>TextLabel3_2</receiver> + <slot>setNum(int)</slot> + </connection> + <connection> + <sender>CheckBoxNAT</sender> + <signal>toggled(bool)</signal> + <receiver>NatIpField</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxNAT</sender> + <signal>toggled(bool)</signal> + <receiver>TextLabel1</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>CheckBoxProxy</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>PasswordLine</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>RecordLine</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>ServerAddressLine</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>TextLabel11</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>TextLabel12</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>CheckBoxReg</sender> + <signal>toggled(bool)</signal> + <receiver>TextLabel13</receiver> + <slot>setEnabled(bool)</slot> + </connection> +</connections> +</UI> |