diff --git a/kde/.gitignore b/kde/.gitignore index f7fbb2166c9079e94c632c05085efbacb980a37f..be6839f09ce809ee984293daab5d2a6b58b43d72 100755 --- a/kde/.gitignore +++ b/kde/.gitignore @@ -35,6 +35,5 @@ src/cmake_install.cmake src/kcfg_settings.cpp src/kcfg_settings.h src/qrc_resources.cxx -src/kde src/kde.shell man/sflphone.pod diff --git a/kde/src/CMakeLists.txt b/kde/src/CMakeLists.txt index b8d4da2cd1874b4e64751b64726dfa3fa1f7ddc8..54ad9eda65886da33ca1332388f27e5efcd1b5f7 100755 --- a/kde/src/CMakeLists.txt +++ b/kde/src/CMakeLists.txt @@ -45,6 +45,7 @@ SET( conf/dlgaddressbook.cpp conf/dlghooks.cpp conf/dlgaccessibility.cpp + conf/dlgvideo.cpp conf/ConfigAccountList.cpp widgets/Dialpad.cpp widgets/ContactItemWidget.cpp @@ -77,8 +78,15 @@ SET( conf/dlgaddressbookbase.ui conf/dlghooksbase.ui conf/dlgaccessibility.ui + conf/dlgvideobase.ui ) +IF(${ENABLE_VIDEO} MATCHES true) + MESSAGE("VIDEO enabled") + SET(ENABLE_VIDEO 1 CACHE BOOLEAN "Enable video") + add_definitions( -DENABLE_VIDEO=true ) +ENDIF(${ENABLE_VIDEO} MATCHES true) + KDE4_ADD_UI_FILES(sflphone_client_kde_SRCS ui/SFLPhoneView_base.ui ${config_ui_files} ) QT4_ADD_DBUS_INTERFACES(sflphone_client_kde_SRCS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml) diff --git a/kde/src/CallView.cpp b/kde/src/CallView.cpp index 1f8f5003e0bbcf7196e7b7122de99a3c4bbf965b..03f6842a7f875a87f79181db6408a82d35bddf96 100644 --- a/kde/src/CallView.cpp +++ b/kde/src/CallView.cpp @@ -672,8 +672,7 @@ Call* CallView::addConference(Call* conf) kDebug() << "Adding " << callId << "to the conversation"; insertItem(extractItem(SFLPhone::model()->getIndex(callId)),confItem); } - - Q_ASSERT_X(confItem->childCount() == 0, "add conference","Conference created, but without any participants"); + return newConf; } //addConference diff --git a/kde/src/conf/ConfigurationDialog.cpp b/kde/src/conf/ConfigurationDialog.cpp index d2604b729ec88d04b49784ccca3f399be1ca3c1d..8dfe550c78af410dd1d0b246ffa1a17559a3ec3f 100755 --- a/kde/src/conf/ConfigurationDialog.cpp +++ b/kde/src/conf/ConfigurationDialog.cpp @@ -32,6 +32,7 @@ #include "dlgaddressbook.h" #include "dlghooks.h" #include "dlgaccessibility.h" +#include "dlgvideo.h" #include "lib/sflphone_const.h" @@ -47,6 +48,10 @@ ConfigurationDialog::ConfigurationDialog(SFLPhoneView *parent) dlgAddressBook = new DlgAddressBook (this); dlgHooks = new DlgHooks (this); dlgAccessibility = new DlgAccessibility (this); + + #ifdef ENABLE_VIDEO + dlgVideo = new DlgVideo (this); + #endif addPage( dlgGeneral , i18n("General") , "sflphone-client-kde" ); addPage( dlgDisplay , i18n("Display") , "applications-graphics" ); @@ -55,6 +60,9 @@ ConfigurationDialog::ConfigurationDialog(SFLPhoneView *parent) addPage( dlgAddressBook , i18n("Address Book") , "x-office-address-book" ); addPage( dlgHooks , i18n("Hooks") , "insert-link" ); addPage( dlgAccessibility , i18n("Accessibility") , "preferences-desktop-accessibility" ); + #ifdef ENABLE_VIDEO + addPage( dlgVideo , i18n("Video") , "camera-web" ); + #endif connect(this, SIGNAL(applyClicked()), this, SLOT(applyCustomSettings())); connect(this, SIGNAL(okClicked()), this, SLOT(applyCustomSettings())); diff --git a/kde/src/conf/ConfigurationDialog.h b/kde/src/conf/ConfigurationDialog.h index ac5755e78419e7c51f7474f37a1953cc60512a2d..0a9795f3dce6dad14813ba2d76dbfc7613cf0255 100755 --- a/kde/src/conf/ConfigurationDialog.h +++ b/kde/src/conf/ConfigurationDialog.h @@ -38,6 +38,7 @@ class DlgAddressBook; class DlgRecord; class DlgHooks; class DlgAccessibility; +class DlgVideo; class SFLPhoneView; @@ -63,6 +64,7 @@ private: DlgAddressBook* dlgAddressBook ; DlgHooks* dlgHooks ; DlgAccessibility* dlgAccessibility; + DlgVideo* dlgVideo ; public: ConfigurationDialog(SFLPhoneView *parent = 0); diff --git a/kde/src/conf/dlgvideo.cpp b/kde/src/conf/dlgvideo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9a7036019ea388dc5d0f03b09b84a563e0aadaef --- /dev/null +++ b/kde/src/conf/dlgvideo.cpp @@ -0,0 +1,31 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ + +#include "dlgvideo.h" + +DlgVideo::DlgVideo(QWidget *parent) + : QWidget(parent) +{ + setupUi(this); +} + + +DlgVideo::~DlgVideo() +{ +} \ No newline at end of file diff --git a/kde/src/conf/dlgvideo.h b/kde/src/conf/dlgvideo.h new file mode 100644 index 0000000000000000000000000000000000000000..86de2b147b1e9a0dea352174c5cacf07eb6bffcf --- /dev/null +++ b/kde/src/conf/dlgvideo.h @@ -0,0 +1,40 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ + +#ifndef DLG_VIDEO_H +#define DLG_VIDEO_H + +#include <QWidget> + +#include "ui_dlgvideobase.h" + +///@class DlgVideo video preferences for sflphone +class DlgVideo : public QWidget, public Ui_DlgVideoBase +{ +Q_OBJECT +public: + //Constructor + DlgVideo(QWidget *parent = 0); + + //Destructor + ~DlgVideo(); + +}; + +#endif diff --git a/kde/src/conf/dlgvideobase.ui b/kde/src/conf/dlgvideobase.ui new file mode 100644 index 0000000000000000000000000000000000000000..528b01995efd14a628152c3539e1e32416b2e2cd --- /dev/null +++ b/kde/src/conf/dlgvideobase.ui @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>DlgVideoBase</class> + <widget class="QWidget" name="DlgVideoBase"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + </widget> + <resources/> + <connections/> +</ui> diff --git a/kde/src/lib/Account.cpp b/kde/src/lib/Account.cpp index 301810123d088f86f701d4adc6d9d9ea2345e633..7359247a3175580681e42bd5edf90675ae80c1ee 100644 --- a/kde/src/lib/Account.cpp +++ b/kde/src/lib/Account.cpp @@ -27,9 +27,11 @@ //SFLPhone #include "sflphone_const.h" +#include "VideoCodec.h" //SFLPhone lib #include "configurationmanager_interface_singleton.h" +#include "video_interface_singleton.h" ///Match state name to user readable string const QString& account_state_name(const QString& s) @@ -249,4 +251,29 @@ bool Account::operator==(const Account& a)const return *m_pAccountId == *a.m_pAccountId; } +/***************************************************************************** + * * + * Video * + * * + ****************************************************************************/ +#ifdef ENABLE_VIDEO +void Account::setActiveVideoCodecList(QList<VideoCodec*> codecs) +{ + QStringList codecs; + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + foreach(VideoCodec* codec,codecs) { + codecs << codecs->getName(); + } + interface.setActiveCodecList(codecs,m_pAccountId); +} + +QList<VideoCodec*> Account::getActiveVideoCodecList() +{ + QList<VideoCodec*> codecs; + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + foreach (QString codec, interface.getActiveCodecList(m_pAccountId)) { + codecs << VideoCodec::getCodec(codec); + } +} +#endif \ No newline at end of file diff --git a/kde/src/lib/Account.h b/kde/src/lib/Account.h index 0ed07591e3f8753ec00124d9302593e835af9ccb..a228c0087f079637b57d43050fc9e8ad5554bcc5 100644 --- a/kde/src/lib/Account.h +++ b/kde/src/lib/Account.h @@ -21,9 +21,14 @@ #ifndef ACCOUNT_H #define ACCOUNT_H +#include <QtCore/QList> + //Qt class QString; +//SFLPhone +#include "VideoCodec.h" + #include "typedefs.h" const QString& account_state_name(const QString& s); @@ -52,6 +57,10 @@ class LIB_EXPORT Account : public QObject { void setAccountId (const QString& id ); void setAccountDetails (const MapStringString& m ); void setAccountDetail (const QString& param, const QString& val ); + #ifdef ENABLE_VIDEO + void setActiveVideoCodecList(QList<VideoCodec*> codecs); + QList<VideoCodec*> getActiveVideoCodecList(); + #endif //Updates virtual void updateState(); diff --git a/kde/src/lib/CMakeLists.txt b/kde/src/lib/CMakeLists.txt index 3db06e46222025221271cb49ff41cf8d14a01202..fdc6c4419062f917bf9afbf312504fa497de660b 100644 --- a/kde/src/lib/CMakeLists.txt +++ b/kde/src/lib/CMakeLists.txt @@ -33,9 +33,14 @@ set( qtsflphone_LIB_SRCS Contact.cpp ContactBackend.cpp Item.cpp + VideoCodec.cpp + VideoModel.cpp + VideoDevice.cpp configurationmanager_interface_singleton.cpp callmanager_interface_singleton.cpp instance_interface_singleton.cpp + video_interface_singleton.cpp + video_interface_singleton.cpp sflphone_const.h ) @@ -70,6 +75,20 @@ QT4_ADD_DBUS_INTERFACE( ${callmanager_xml} callmanager_dbus_interface) +# video manager interface +SET ( video_xml ${dbus_xml_introspecs_path}/video_controls-introspec.xml ) + +SET_SOURCE_FILES_PROPERTIES( + ${video_xml} + PROPERTIES + CLASSNAME VideoInterface + INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/dbus/metatypes.h") + +QT4_ADD_DBUS_INTERFACE( + qtsflphone_LIB_SRCS + ${video_xml} + video_dbus_interface) + # instance interface SET ( instance_xml ${dbus_xml_introspecs_path}/instance-introspec.xml ) diff --git a/kde/src/lib/Call.cpp b/kde/src/lib/Call.cpp index c04a8d5bc22eebd39b0c1bd72b02e9752373f71c..7d11ef8cb43e58334acd56b9e95b04822beecc4f 100644 --- a/kde/src/lib/Call.cpp +++ b/kde/src/lib/Call.cpp @@ -613,9 +613,6 @@ call_state Call::stateChanged(const QString& newStateName) call_state Call::actionPerformed(call_action action) { call_state previousState = m_CurrentState; - Q_ASSERT_X((previousState>10) || (previousState<0),"perform action","Invalid previous state ("+QString::number(previousState)+")"); - Q_ASSERT_X((state>4) || (state < 0),"perform action","Invalid action ("+QString::number(action)+")"); - Q_ASSERT_X((action>5) || (action < 0),"perform action","Invalid action ("+QString::number(action)+")"); //update the state if (previousState < 13 && action < 5) { changeCurrentState(actionPerformedStateMap[previousState][action]); diff --git a/kde/src/lib/VideoCodec.cpp b/kde/src/lib/VideoCodec.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d3e1c7befd8895ead483896ff06dfffd9b85617d --- /dev/null +++ b/kde/src/lib/VideoCodec.cpp @@ -0,0 +1,64 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#include "VideoCodec.h" +#include "Call.h" +#include "video_interface_singleton.h" + +QHash<QString,VideoCodec*> VideoCodec::m_slCodecs; + +///Private constructor +VideoCodec::VideoCodec(QString codecName) +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + QStringList details = interface.getCodecDetails(codecName); + m_Name = details[0];//TODO do not use stringlist + m_Id = details[1];//TODO do not use stringlist +} + +///Get a codec from a name +VideoCodec* VideoCodec::getCodec(QString name) +{ + return m_slCodecs[name]; +} + +///Get the current call codec +//TODO move to call.h? +VideoCodec* VideoCodec::getCurrentCodec(Call* call) +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return getCodec(interface.getCurrentCodecName(call->getCallId())); +} + +///Get the complete video codec list +QList<VideoCodec*> VideoCodec::getCodecList() +{ + return m_slCodecs.values(); +} + +///Get the current codec name +QString VideoCodec::getCodecName() +{ + return m_Name; +} + +///Get the current codec id +QString VideoCodec::getCodecId() +{ + return m_Id; +} \ No newline at end of file diff --git a/kde/src/lib/VideoCodec.h b/kde/src/lib/VideoCodec.h new file mode 100644 index 0000000000000000000000000000000000000000..f3283a2cc0efb3667f124b07e8065e047c6a6b25 --- /dev/null +++ b/kde/src/lib/VideoCodec.h @@ -0,0 +1,44 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#ifndef VIDEO_CODEC_H +#define VIDEO_CODEC_H + +#include "typedefs.h" + +//Qt +class QString; + +//SFLPhone +class Call; + +///@class VideoCodec Codecs used for video calls +class LIB_EXPORT VideoCodec { + public: + static VideoCodec* getCodec(QString name); + static VideoCodec* getCurrentCodec(Call* call); + static QList<VideoCodec*> getCodecList(); + QString getCodecName(); + QString getCodecId(); //Is the second field the ID? + private: + static QHash<QString,VideoCodec*> m_slCodecs; + VideoCodec(QString codecName); + QString m_Name; + QString m_Id; +}; +#endif \ No newline at end of file diff --git a/kde/src/lib/VideoDevice.cpp b/kde/src/lib/VideoDevice.cpp new file mode 100644 index 0000000000000000000000000000000000000000..94d09bbb3430637a2a7c271bbef6c23940346cf1 --- /dev/null +++ b/kde/src/lib/VideoDevice.cpp @@ -0,0 +1,96 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#include "VideoDevice.h" +#include "video_interface_singleton.h" + +QList<VideoDevice*> VideoDevice::getDeviceList() +{ + QList<VideoDevice*> list; + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + QStringList deviceList = interface.getInputDeviceList(); + foreach(QString device,deviceList) { + VideoDevice* dev = new VideoDevice(device); + list << dev; + } + return list; +} + +VideoDevice::VideoDevice(QString id) : m_DeviceId(id) +{ + +} + +QStringList VideoDevice::getRateList(VideoChannel channel, Resolution resolution) +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return interface.getInputDeviceRateList(m_DeviceId,channel,resolution.toString()); +} + +QList<VideoChannel> VideoDevice::getChannelList() +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return interface.getInputDeviceChannelList(m_DeviceId); +} + +void VideoDevice::setRate(VideoRate rate) +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + interface.setInputDeviceRate(rate); +} + +void VideoDevice::setResolution(Resolution resolution) //??? No device +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + interface.setInputDeviceSize(resolution.toString()); +} + +void VideoDevice::setChannel(VideoChannel channel) //??? No device +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + interface.setInputDeviceChannel(channel); +} + +Resolution VideoDevice::getResolution() +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return Resolution(interface.getInputDeviceSize()); +} + +VideoChannel VideoDevice::getChannel() //??? No device +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return interface.getInputDeviceChannel(); +} + +VideoRate VideoDevice::getRate() +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + return interface.getInputDeviceRate(); +} + +QList<Resolution> VideoDevice::getResolutionList(VideoChannel channel) +{ + QList<Resolution> toReturn; + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + QStringList list = interface.getInputDeviceSizeList(m_DeviceId,channel); + foreach(QString res,list) { + toReturn << Resolution(res); + } + return toReturn; +} diff --git a/kde/src/lib/VideoDevice.h b/kde/src/lib/VideoDevice.h new file mode 100644 index 0000000000000000000000000000000000000000..5077c508468919eb6656bf793d0756c88d3702ba --- /dev/null +++ b/kde/src/lib/VideoDevice.h @@ -0,0 +1,67 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#ifndef VIDEO_DEVICE_H +#define VIDEO_DEVICE_H + +#include "typedefs.h" +#include <QStringList> + +///@typedef VideoChannel A channel available in a Device +typedef QString VideoChannel; + +///@typedef VideoRate The rate for a device +typedef QString VideoRate; + +///@struct Resolution Equivalent of "640x480" +struct LIB_EXPORT Resolution { + explicit Resolution(uint _width, uint _height):width(_width),height(_height){} + Resolution(QString size) { + width=size.split("x")[0].toInt(); + height=size.split("x")[1].toInt(); + } + uint width; + uint height; + QString toString() { return QString::number(width)+"x"+QString::number(height);} +}; + +///@class VideoDevice V4L devices used to record video for video call +class LIB_EXPORT VideoDevice { + public: + //Constructor + VideoDevice(QString id); + + //Static getter + static QList<VideoDevice*> getDeviceList(); + + //Getter + QStringList getRateList(VideoChannel channel, Resolution resolution); + QList<Resolution> getResolutionList(VideoChannel channel); + QList<VideoChannel> getChannelList (); + Resolution getResolution (); + VideoChannel getChannel (); + VideoRate getRate (); + + //Setter + void setRate ( VideoRate rate ); + void setResolution ( Resolution resolution ); + void setChannel ( VideoChannel channel ); + private: + QString m_DeviceId; +}; +#endif \ No newline at end of file diff --git a/kde/src/lib/VideoModel.cpp b/kde/src/lib/VideoModel.cpp new file mode 100644 index 0000000000000000000000000000000000000000..60dfda8666eb37b65f7d8124d6be04c8fbc87d28 --- /dev/null +++ b/kde/src/lib/VideoModel.cpp @@ -0,0 +1,72 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#include "VideoModel.h" +#include "video_interface_singleton.h" + +///Constructor +VideoModel::VideoModel():m_BufferSize(0),m_ShmKey(0),m_SemKey(0),m_Res(0,0) +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + connect(&interface,SIGNAL(receivingEvent(int,int,int,int,int)),this,SLOT(receivingEvent(int,int,int,int,int))); + connect(&interface,SIGNAL(deviceEvent()),this,SLOT(deviceEvent())); + connect(&interface,SIGNAL(stoppedReceivingEvent(int,int)),this,SLOT(stoppedReceivingEvent(int,int))); +} + +///Stop video preview +void VideoModel::stopPreview() +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + interface.stopPreview(); +} + +///Start video preview +void VideoModel::startPreview() +{ + VideoInterface& interface = VideoInterfaceSingleton::getInstance(); + interface.startPreview(); +} + +///@todo Set the video buffer size +void VideoModel::setBufferSize(uint size) +{ + m_BufferSize = size; +} + +///Event callback +void VideoModel::receivingEvent(int shmKey, int semKey, int videoBufferSize, int destWidth, int destHeight) +{ + m_ShmKey = (uint)shmKey; + m_ShmKey = (uint)semKey; + m_BufferSize = videoBufferSize; + m_Res.width = destWidth; + m_Res.height = destHeight; +} + +///Callback when video is stopped +void VideoModel::stoppedReceivingEvent(int shmKey, int semKey) +{ + m_ShmKey = (uint)shmKey; + m_ShmKey = (uint)semKey; +} + +///Event callback +void VideoModel::deviceEvent() +{ + +} \ No newline at end of file diff --git a/kde/src/lib/VideoModel.h b/kde/src/lib/VideoModel.h new file mode 100644 index 0000000000000000000000000000000000000000..239d44c397eed3383cc66d4a9aa183d3da16058d --- /dev/null +++ b/kde/src/lib/VideoModel.h @@ -0,0 +1,44 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ +#include "typedefs.h" +#include <QtCore/QObject> + +//SFLPhone +#include "VideoDevice.h" + +///@class VideoModel Video event dispatcher +class LIB_EXPORT VideoModel : public QObject { +public: + VideoModel(); + void stopPreview(); + void startPreview(); + void setBufferSize(uint size); + +private: + //Attributes + uint m_BufferSize; + uint m_ShmKey; + uint m_SemKey; + Resolution m_Res; + +private slots: + void receivingEvent(int shmKey, int semKey, int videoBufferSize, int destWidth, int destHeight); + void stoppedReceivingEvent(int shmKey, int semKey); + void deviceEvent(); +}; \ No newline at end of file diff --git a/kde/src/lib/dbus/video_controls-introspec.xml b/kde/src/lib/dbus/video_controls-introspec.xml new file mode 100755 index 0000000000000000000000000000000000000000..34c93064fe26de0bbfe3a612ce4ae26a66217538 --- /dev/null +++ b/kde/src/lib/dbus/video_controls-introspec.xml @@ -0,0 +1,158 @@ +<?xml version="1.0" ?> +<node name="/video_controls-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> + <interface name="org.sflphone.SFLphone.VideoControls"> + <!-- Video device methods --> + + <method name="getInputDeviceList" tp:name-for-bindings="getInputDeviceList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getInputDeviceChannelList" tp:name-for-bindings="getInputDeviceChannelList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="s" name="device" direction="in"> + </arg> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getInputDeviceSizeList" tp:name-for-bindings="getInputDeviceSizeList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="s" name="device" direction="in"> + </arg> + <arg type="s" name="channel" direction="in"> + </arg> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getInputDeviceRateList" tp:name-for-bindings="getInputDeviceRateList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="s" name="device" direction="in"> + </arg> + <arg type="s" name="channel" direction="in"> + </arg> + <arg type="s" name="size" direction="in"> + </arg> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getInputDevice" tp:name-for-bindings="getInputDevice"> + <arg type="s" name="device" direction="out"> + </arg> + </method> + + <method name="getInputDeviceChannel" tp:name-for-bindings="getInputDeviceChannel"> + <arg type="s" name="channel" direction="out"> + </arg> + </method> + + <method name="getInputDeviceSize" tp:name-for-bindings="getInputDeviceSize"> + <arg type="s" name="size" direction="out"> + </arg> + </method> + + <method name="getInputDeviceRate" tp:name-for-bindings="getInputDeviceRate"> + <arg type="s" name="rate" direction="out"> + </arg> + </method> + + <method name="setInputDevice" tp:name-for-bindings="setInputDevice"> + <arg type="s" name="device" direction="in"> + </arg> + </method> + + <method name="setInputDeviceChannel" tp:name-for-bindings="setInputDeviceChannel"> + <arg type="s" name="channel" direction="in"> + </arg> + </method> + + <method name="setInputDeviceSize" tp:name-for-bindings="setInputDeviceSize"> + <arg type="s" name="size" direction="in"> + </arg> + </method> + + <method name="setInputDeviceRate" tp:name-for-bindings="setInputDeviceRate"> + <arg type="s" name="rate" direction="in"> + </arg> + </method> + + <!-- Video Codec related methods --> + + <method name="getCodecList" tp:name-for-bindings="getCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="getCodecDetails" tp:name-for-bindings="getCodecDetails"> + <arg type="s" name="codec" direction="in"> + </arg> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="as" name="details" direction="out"> + </arg> + </method> + + <method name="getActiveCodecList" tp:name-for-bindings="getActiveCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/> + <arg type="s" name="accountID" direction="in"> + </arg> + <arg type="as" name="list" direction="out"> + </arg> + </method> + + <method name="setActiveCodecList" tp:name-for-bindings="setActiveCodecList"> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/> + <arg type="as" name="list" direction="in"> + </arg> + <arg type="s" name="accountID" direction="in"> + </arg> + </method> + + <method name="startPreview" tp:name-for-bindings="startPreview"> + <arg type="i" name="width" direction="out"> + </arg> + <arg type="i" name="height" direction="out"> + </arg> + <arg type="i" name="shmKey" direction="out"> + </arg> + <arg type="i" name="semKey" direction="out"> + </arg> + <arg type="i" name="videoBufferSize" direction="out"> + </arg> + </method> + + <method name="stopPreview" tp:name-for-bindings="stopPreview"> + </method> + + <signal name="deviceEvent" tp:name-for-bindings="deviceEvent"> + </signal> + + <signal name="receivingEvent" tp:name-for-bindings="receivingEvent"> + <arg type="i" name="shmKey"> + </arg> + <arg type="i" name="semKey"> + </arg> + <arg type="i" name="videoBufferSize"> + </arg> + <arg type="i" name="destWidth"> + </arg> + <arg type="i" name="destHeight"> + </arg> + </signal> + + <signal name="stoppedReceivingEvent" tp:name-for-bindings="stoppedReceivingEvent"> + <arg type="i" name="shmKey"> + </arg> + <arg type="i" name="semKey"> + </arg> + </signal> + + <method name="getCurrentCodecName" tp:name-for-bindings="getCurrentCodecName"> + <arg type="s" name="callID" direction="in"/> + <arg type="s" name="codecName" direction="out"/> + </method> + </interface> +</node> diff --git a/kde/src/lib/video_interface_singleton.cpp b/kde/src/lib/video_interface_singleton.cpp new file mode 100644 index 0000000000000000000000000000000000000000..94723949321bc9c57ba564eed70ce7b784521b09 --- /dev/null +++ b/kde/src/lib/video_interface_singleton.cpp @@ -0,0 +1,31 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ + +#include "video_interface_singleton.h" + +VideoInterface* VideoInterfaceSingleton::interface + = new VideoInterface("org.sflphone.SFLphone", "/org/sflphone/SFLphone/Instance", QDBusConnection::sessionBus()); + +VideoInterface& VideoInterfaceSingleton::getInstance() +{ + if(!interface->connection().isConnected()) { + throw "Error : sflphoned not connected. Service " + interface->service() + " not connected. From instance interface."; + } + return *interface; +} diff --git a/kde/src/lib/video_interface_singleton.h b/kde/src/lib/video_interface_singleton.h new file mode 100644 index 0000000000000000000000000000000000000000..e594b967642a72aafff4e6548152ab74cbd1f1af --- /dev/null +++ b/kde/src/lib/video_interface_singleton.h @@ -0,0 +1,40 @@ +/************************************************************************************ + * Copyright (C) 2012 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***********************************************************************************/ + +#ifndef INSTANCE_INTERFACE_SINGLETON_H +#define INSTANCE_INTERFACE_SINGLETON_H + +#include "src/lib/video_dbus_interface.h" +#include "typedefs.h" + +/** + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + */ +class LIB_EXPORT VideoInterfaceSingleton +{ + +private: + static VideoInterface* interface; + +public: + static VideoInterface& getInstance(); + +}; + +#endif diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog index d7513f0170db97acf823055d85ae01ded71b5069..3e9664bcacf367d0d45f7a361f87af6ae07b1185 100644 --- a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog @@ -1,3 +1,36 @@ +sflphone-client-gnome (1.1.0-rc20120607~ppa1~SYSTEM) SYSTEM; urgency=low + + ** SNAPSHOT 1.1.0-rc20120607~ppa1~SYSTEM ** + + * gnome: cleanup logging + * * #12061: gnome: fix video codec list display + * * #12050: gnome: fixed regression in active codec handling + * #11732: Do not align menu with other interface component + * * #11818: gnome: stop daemon on SIGTERM, SIGINT or SIGHUP + * #10304: updatePlaybackScale dbus method uses int 32 bit for size and + position (allow for 24 days long recording playback) + * #10304: Add time lable for seekslider + * * #10725: gnome: seekslider: fixed compiler warning due to missing + header + * * #11732: gnome:calltree: fix warning when searchbar is not created + * * #11252: daemon: removed deprecated zrtp code + * #10725: Consolidate test to determine if there is a recording, + remove log on NULL pointer + * #10725: Remove logging from stop callback in seekslider + * #10725: No need of playback related callbacks in uimanager + * #10725: Remove logging in seekslider when no selected call + * #11732: Align Icons with dialpad in gnome client + * #10304: Make sure that the playback won't be updated after reset + * #10304: Prevent playback widget reset from stoping dtmf + * #10304: Move Playback widget at the bottom of the main window + * #10304: Fix logic to determine outgoing/incoming calls for recording + icon + * * #11685: gnome: fixed memory leaks in config menus + * #10304: Fix reset seekslider that prevent scale to be updated at + first read + + -- Julien Bonjean <julien.bonjean@savoirfairelinux.com> Thu, 07 Jun 2012 16:04:59 -0400 + sflphone-client-gnome (1.0.0-rc20110930~ppa1~SYSTEM) SYSTEM; urgency=low ** SNAPSHOT 1.0.0-rc20110930~ppa1~SYSTEM ** diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog index 1971a95b4829007a8c42a47968bc01832715f535..b9d5818c778489de6a27f15293bcf283360c80e0 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog @@ -1,3 +1,147 @@ +sflphone-client-kde (1.1.0-rc20120607~ppa1~SYSTEM) SYSTEM; urgency=low + + ** SNAPSHOT 1.1.0-rc20120607~ppa1~SYSTEM ** + + * [ #12096 ] Implement more calls details, make it more scalable + * [ #11290 ] Update french translation + * [ #11859 ] Fix a regression in name conversion + * [ #11850 ] Fix a little regression + * [ #11859 ] Fix sorting by popularity + * [ #11569 ] Fix filter + * [ #12003 ] Add icon overlay for history item + * [ #11886 ] Add basic reverse peer naming support + * kde/callview: removed trailing whitespace + * [ #12008 ] Implement GUI part + * [ #11988 ] Move ringtone to a new tab + * [ #11990 ] Fix history delegate width + * [ #11990 ] Make call item height configurable + * [ #7007 ] Fix many history bugs and add 'copy' contextual menu + * [ #7007 ] Add more contextual options + * [ #11963 ] Move ringtone to account + * [ #7003 ] Implement more drag and drop + * [ #11888 ] Add support for previous timestamp + * [ #11887 ] Drop phonon dependency + * [ #11887 ] Use daemon player instead of phonon + * [ #11889 ] Fix a regression + * [ #11889 ] Fix a regression + * [ #11861 ] Fix memory leak + * [ #11861 ] Little profiling + * [ #11850 ] Reimplement most destructor + * [ #11847 ] Move unregister back into SFLPhoneApplication + * [ #11847 ] Fix the unregister signal + * [ #11846 ] Fix the text message box behavior + * [ #11845 ] Refactor menus, duplicate display dock options + * [ #11731 ] Fix visual glitch when hang up, harden against 0 + participant conference + * [ #11798 ] Implement basic signal handling, it does not seem to be + enough, but it help + * [ #11815 ] Make double click call instead of queing items + * [ #11822 ] Add configuration options + * [ #11814 ] Add selection again + * [ #3912 ] Finally make double clicking work, it was the last client + bug, the other one is in the daemon + * Fix plasmoid + * [ #11733 ] Update the state machine to handle conferences correctly, + not just ignore them + * * #11252: daemon: removed deprecated zrtp code + * [ #11385 ] Removing account work again + * [ #11435 ] Fix trasfer, it apparently never worked, there was a bug + in the state machine path + * [ #11621 ] Support conferences in init + * [ #3905 ] Fix the oldest KDE open bug, edit the conference pixmap + * [ #11573 ] Add paste option + * [ #11574 ] Add a account status label in status bar + * [ #11577 ] Add a timer label + * [ #11572 ] Implement accent independent filter for history and + bookmark + * [ #11572 ] Implement accent independent filter for contact + * [ #11576 ] Implement optional contact details + * [ #10222 ] Change default caller name from Unknown to his/her phone + number + * [ #11337 ] Add/Restore keyboard call selection + * [ #11337 ] Add more accessibility options + * [ #11337 ] Add basic text to speech status for calls + * [ #11290 ] Fix dynamic translation + * [ #11290 ] Update french translation + * [ #11290 ] Add missing i18n() call, it should be translatable again + * Make dependencies check more enforced for submodules + * * #11269: merged master into video + * [ #11255 ] Code polishing + * [ #10222 ] Call again on double click + * [ #11219 ] Change license to LGPLv2 for libraries + * [ #7022 ] Make the new plasmoid the default, remove the old one, end + of an era + * [ #7022 ] Merge the new plasmoid branch, the older one is still the + default + * [ v1.1 ] Update version number + * [ #10724 ] Add more dataengine services + * [ #10724 ] Add bookmarks to the dataengine + * [ #10724 ] Add bookmarks to the dataengine + * [ #10724 ] Make contact sorting work for some sorting type + * [ #10724 ] Refactor sorting in the KDE library, implement contact in + the dataengine + * [ #10724 ] Move the dataengine to the new KDE lib + * [ #10724 ] Refactor data engine and split akonadi support out of the + client to make the dataengine more future proof + * Fix missing phonon + * Fix compilation warning on old GCC + * [ #10222 ] Fix warnings + * [ #10380 ] Can't send message without a call + * [ #10222 ] Test configuration dialog, fix it, implement basic + messaging + * [ #10222 ] Fix saving default history sorting + * [ #10222 ] Use categorized Tree for history + * [ #10222 ] Fix contact sorting + * [ #10222 ] Async update for bookmark dock + * [ #10222 ] Fix issues with account config dialog + * [ #10222 ] Use categorized views, fix bookmark + * [ #10222 ] Fix minor itches and bugs + * [ #10121 ] Sync the KDE with daemon, fix a few issues and implement + a recorded call player + * * #10018: renamed registration related keys in dbus + * * #8542: removed trailing whitespace from tree + * * #8357: gnome client now works with new dbus video API + * * 8487: cleanup in dbus + * * #8450: fixed confusion between expire and enable values + * * #8435: Remove typos + * cleanup in xml files + * Revert "Merge branch 'master' of + git+ssh://git.sflphone.org/var/repos/sflphone/git/sflphone" + * * #7264: gnome client now saves/loads history as List of Dicts. + * [ #7901 ] Cleanup the changes + * [ #7901 ] Fix compiler warnings + * [ #7901 ] Do not show the conf button when in the same conference + * [ #7929 ] Add some client side work around until it is fixed + * [ #7901 ] Cosmetic and bug fixes + * [ #7901 ] It is far from beautiful, but it work in most cases + * [ #7901 ] Partial rewrite of the drag and drop event, does not + really work + * [ #7899 #7900 ] Fix toolbar icons + * Remove useless icon in toolbar + * [ #7876 ] qDebug -> kDebug (to be able to disable them using KDE + gui) + * [ #7876 ] Remove unneeded comments + * [ #7887 ] 7% faster load time + * [ #7887 ] Fix warning + * [ #7887 ] Prevent most useless object copy + * [ #7874 ] Twice less lines, same result + * [ #7876 ] Remove unused class attribute, rename all attribute use + use m_ for private member, m_p for private pointer, m_s for private + static and m_sp for private static pointer + * [ #7876 ] Update copyright from 2010 to 2012 (next version wont be + released until then, so why not doing it now) + * [ #7876 ] Add some doxygen + * [ #7876 ] Sort include by owner, fix license issues + * [ #7876 ] Clean includes + * [ #7876 ] Add box comment for file sections (getter, setter, + mutator, slots) + * [ #7863 ] It work, here we go again + * [ #7876 ] Spring cleanup + * * #7264: added getHistorySimple, which return a dict of history + entries + + -- Julien Bonjean <julien.bonjean@savoirfairelinux.com> Thu, 07 Jun 2012 16:10:36 -0400 + sflphone-client-kde (1.1.0-rc20120607~ppa1~SYSTEM) SYSTEM; urgency=low ** SNAPSHOT 1.1.0-rc20120607~ppa1~SYSTEM ** diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/control b/tools/build-system/launchpad/sflphone-client-kde/debian/control index 774347a3d87bd265ae3c7d5e82d332e6364ef50f..2c69f95f346f7bdf09ae3d5ef2037d5b7646a015 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/control +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/control @@ -3,7 +3,6 @@ Section: kde Priority: optional Maintainer: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Uploaders: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> -Standards-Version: 1.1.0 Build-Depends: debhelper (>= 5.0), cdbs, kdelibs5-dev, cmake, kdepimlibs5-dev, Homepage: http://www.sfphone.org/ diff --git a/tools/build-system/launchpad/sflphone-common/debian/changelog b/tools/build-system/launchpad/sflphone-common/debian/changelog index a5ffee640b0309e18070ed67783a8cab8067536d..85ab9be0476445446d50488513682ca6358b9980 100644 --- a/tools/build-system/launchpad/sflphone-common/debian/changelog +++ b/tools/build-system/launchpad/sflphone-common/debian/changelog @@ -1,3 +1,483 @@ +sflphone-common (1.1.0-rc20120607~ppa1~SYSTEM) SYSTEM; urgency=low + + ** SNAPSHOT 1.1.0-rc20120607~ppa1~SYSTEM ** + + * * #12071: audiopreferences: fix make check + * * #12071: cleanup + * #12071: Lower expat dependency version + * * #12085: alsa: fix ringtone update bug, cleanup + * #12071: Fix pulseaudio compilation error + * #12071: Make pulseaudio optional at configuration time + * * #12091: daemon: issue warning if falling back to ALSA + * video: fixed make check + * *#12085: alsa: don't segfault on snd_pcm_avail_update error + * #12070: Add --without-pulse option + * * #12055: video: fix build for older libav + * [ #11886 ] cleanup + * [ #11886 ] Add basic reverse peer naming support + * [ #12008 ] Implement GUI part + * * #12012: video: fix some regressions + * * #12002: yamlparser: don't wipe out config if going from normal + build to --enable-video + * [ #12008 ] Add ConfigurationManager::getRingtoneList() + * * #12002: video: fix config file serialization/deserialization + * * #11987: managerimpl: fix bugs in conference when removing + participants + * * #11987: manager: fixed transfer from conference + * * #11987: mainbuffer: cleanup logging + * * #11979: pulse: fixed mismatched device list + * * #11971: audiolayer: fix bugs with getDeviceList + * * #11960: manager: validate conference earlier when processing + participants + * * #11960: manager: fixed segfault on transfer from conference + * * #11966: IP2IP: make alias consistently IP2IP + * * #11965: sipvoiplink: add more error checking in SDP negotiation + * * #11964: mainbuffer/ringbuffer: cleanup API + * sdp: remove unused variable warning + * * #11941: video: fix deprecated libav_api warnings + * * #11949: pulselayer: fix bug in getDeviceList + * video: whitespace fixes + * * #11951: video: fixed threading issues for ucommon Thread + * [#11848] Properly disable testPulseConnect + * [#11848] Disable pulseConnect test + * sdp: cleanup + * sdp: cleanup + * * #11860: mainbuffer: remove dead and/or buggy code + * * #11851: sdp: fixed gcc type narrowing warnings + * * #11851: audiostream: fixed gcc type narrowing warnings + * * #11841: don't put code with side effects in assert() + * * #11840: audiortp: remove some global symbols/variables + * * #11828: audiofile: fix broken build + * * #11828: audioloop: don't shadow sampleRate variable in derived + classes + * * #11818: gnome: stop daemon on SIGTERM, SIGINT or SIGHUP + * * #11499: daemon should also quit gracefully on SIGHUP + * * #11813: daemon configure should fail if expat is not installed + * #10304: updatePlaybackScale dbus method uses int 32 bit for size and + position (allow for 24 days long recording playback) + * #10304: Add time lable for seekslider + * * #11780: sip: don't use abort or leak calls on error and don't + restrict SDP size to 1000 bytes in transaction_request_cb + * * #11735: daemon: added timestamp start to call details + * * #10304: historyitem: added operator > defined in terms of operator + < + * * #11252: historyitem: added missing unistd.h header + * * #11252: daemon: removed deprecated zrtp code + * * #11728: yaml: check that nodes are valid before using them. + * * #10797: send DTMF over RTP as per RFC2833 + * * #11706: managerimpl: added unsetCurrentCall method + * * #11698: daemon: fix build for c++11 + * * #10304: historyitem: file_exists need not be a member method + * * #11499: managerimpl: don't crash if signal and dbus try and finish + the manager at the same time + * #10304: Prevent from storing removed files in history + * * #11499: daemon: Exit cleanly on SIGINT or SIGTERM + * * #10226: audiocodecfactory: use array instead of vector for codec + name lookup + * * #10226: audiocodecfactory: make codec loading stricter + * #10304: RCecale positions and size values for playback recording + * #11530: Make sure that only appropriate configuration option are + parsed for IP2IP calls + * * 11480: video: disabled by default + * * #11459: history: protect historyitems vector with mutex + * * #11448: fix video preferences for empty camera list + * #10304: Implemented playback seek in gnome client + * * #11269: video: fix codec per account management + * #10304: Implemented playback scale in gnome client + * Fix includes for gcc 4.7 + * * #11269: make clearer distinction between codecs and audiocodecs + * * #11269: merged master into video + * * #10296: managerimpl: more usage of getCallFromCallID + * * #10296: verify that calls exists before trying to join them in a + conference + * * #11208: bump version numbers for release 1.1.0 + * managerimpl: rename ManagerImpl::serialize/unserialize -> + join_string/split_string + * Fix warnings in resampler test + * * #10732: sipvoiplink: fix code that validates IP address + * Add historyChanged signal, better than managing it client side + * #10795: fix sipaccount deserialisation broken + * #10736: implement getConferenceId dbus method given a call id + * #10736: do not use iterator in daemon when joining conferences + * #10736: Fix joining conferences in daemon + * * #10736: gnome: fix crash on restart with active conference + * managerimpl: removed unused pulselayer.h header + * Save history everytime it change, prevent the file never to be saved + in some senario (SIG, crash, ASSERT, etc) + * * #10320: manager: check that participants are unique before joining + * #10335: Add a noise suppressor for incoming rtp streams + * * #10322: sip: registration state should not be always set to + ErrorAuth on error + * #10220: Fix recording thread does not exit when hanging up while + recording + * * #9903: fix includes for new ccrtp + * #10230: Get back default mainbuffer sampling rate to 8kHz, no need + of decoding noise suppressor + * #10230: Use a different samplerate converter for rtp encoding and + decoding + * * #9903: create DynamicPayloadFormat on stack, initialize earlier + * * #9903: audiorecorder: initialize buffer to silence, not random + data + * #10230: Test for triangular and sine signals + * #10230: Add resampling unit test + * * #10230: DTMF sample rate should come from main buffer, it should + not be hardcoded + * * #10213: audiolayer: create samplerateconverter on the stack + * * #10213: audiolayer: cleanup + * * #10213: increase resample buffer size, and check output size when + resampling + * * #10095: sipvoiplink: check pointers before using them + * #9981: IP2IP calls based on ip address instead of sip: + * * #10213: speex codecs should initialize their own parameters + * * #10213: account: removed redundant cast + * * #9832: removed extra printf + * * #10172: include -sflphone in recording file name + * * #9832: cleanup logging in tests + * * #10096: srtp: use vectors to simplify key/salt manipulation + * #10096: add case for non-srtp calls + * [ #10121 ] Sync the KDE with daemon, fix a few issues and implement + a recorded call player + * #9980: make keep registration optional as there is different + behavior on different registrar + * #10096: use c++ arrays to store keys in srtp sesssion + * * #10018: renamed registration related keys in dbus + * #10096: Fix onhold/offhold srtp + * * #8586: fixed make distcheck + * * #9832: logger: don't hide logging if NDEBUG is present + * #10096: Reinit crypto context when required on INVITE request + * * #10111: Fixes segfault on empty config file + * #100096: Set in/out queue crypto context at initialization, not when + starting the thread + * #10096: Update srtp key generation when holding/unholding a call + * * #9831: logger: removed extraneous carriage-return character + * * #10095: sipvoiplink: validate pointers before using them + * * #10094: renamed config/config.{h,cpp} config/sfl_config.{h,cpp} + * * #10090: fix segfault in transaction_state_changed_cb + * * #9832: audio_rtp_record_handler: cleanup logging + * * #9832: pulse: cleanup logging + * * #9832: cleanup logging + * * #9832: cleanup logging + * * #9832: dbus: fix logging + * * #9832: config: cleanup logging + * * #9832: remove unused header + * * #9832: manager: fix logging + * * #9832: audio: fix logging + * * #9832: audio: fix logging + * * #9832: zrtp: cleanup logging + * * #9832: AudioZRTPSession: cleanup logging + * * #9832: AudioSRTPSession: fix logging + * * #9832: cleanup logging + * * #9832: AudioRtpSession: cleanup logging + * * #9832: AudioRtpFactory: cleanup logging + * * #9832: codecs: fix logging + * * #9832: alsa: fix logging + * * #9832: audio: clean up logging + * * #9832: AudioRecord: cleanup logging + * * #9832: Fix logging in Manager + * * #9832: new logging macros + * * #9979: ulaw: fixed unused var warning + * * #10039: sipvoiplink: use references to avoid unnecessary parameter + validation + * * #10039: Fixed segfault on failed registration + * * #9979: codecs: fixed unused variable warnings + * * #9979: Don't do runtime assertions on data. + * * #10016: SDP: removed verbose debuggin + * #10016: Crypto context deletion are now managed inside the library + * * #10016: srtp: cleanup + * * #10016: SDES: fix uninitialized value bug, use const char* + * * 100016: don't double free crypto contexts, and don't improperly + copy CryptoSuiteDefinitions + * * #100016: cleanup crypto contexts in audio_srtp_session + * * #9979: removed unused methods from audicodec + * * #9979: ulaw: normalize types + * * #9979: cleanup + * * #9979: Alaw: cleanup + * * #9979: removed duplicate/superfluous code and type issues from + g722 + * * #9979: AudioRtpRecord: let AudioRtpRecord handle fadeIn internally + * #9980: Fix registration timer and transport shutdown on 401, default + registration timer to 3600 + * * #9979: use std::tr1::array instead of plain array for audio + buffers + * * #9969: set loose routing param when creating route set + * #9975: Fix account registration status display + * * #9969: SIP: initialize body earlier + * * #9969: sip: get received and rport fields if present in OK + * * #9968: fixed segfault in transaction callback + * #9898: make sure account are unregistered when sflphone quit, add + timeout on pending transaction + * #9910: fix contact header in outgoing request if via parameter are + present + * * #9910: SIP: use rport from VIA header if present + * * #9910: SipTransport: pass parameters by const reference + * #9910: fix sending call with new transport + * yaml: remove verbose debug messages + * * #9911: sipvoiplink: fixed "unused variable" warning + * #9910: create new udp transport to fix registration failure with 606 + error & received parameter + * * #9910: SIP: use pjsip error codes instead of magic numbers + * * #9911: SIP Transports must be cached by IP:port + * * #9910: SIP: cleanup + * * #9905: SipTransport: address has to stay on stack to be valid + * #9910: Update parse received parameter on 606 registration error + * * #9911: simplify network manager state reporting + * #9902: Fix SIPTest for IP to IP call + * #9911: Fix network manager crashes + * #9902: Move logic for ip2ip call in SIPVoIPLink + * #9902: Move logic for ip2ip call in SIPVoIPLink + * * #9910: fix 606 error code nomenclature + * * #9905: fixed address initialization in createUdpTransport + * * #9903: cleanup + * #9902: Log failure cause when new outgoing call fail + * * #9898: properly initialize ports + * #9898: Unregister account when leaving sflphone + * iax: create iaxvoiplink on stack + * account: removed unused methods + * * #9847: don't use assertions for input coming from DBus + * * #9897: audiorecord cleanup + * * #9897: audiorecord: cleanup, removed unused methods + * #9897: Initialize and fallback recording path in home directory if + not valid + * * #9871: SipTransport: hide more implementation + * * #9871: SipTransport: refactor SIP transport creation + * * #9871: disable STUN for account if STUN setup failed + * * #9847: check pointer before using it + * #9871: Fallback on normal upd transport when stun resolution fails + * Revert "#9871: Fallback on normal upd transport when stun resolution + fails" + * #9871: Fallback on normal upd transport when stun resolution fails + * pulse: cleanup + * * #9847: removed outdated README file + * * #9847: use references instead of pointers where possible + * * #9847: pass call by reference where possible + * * #9847: audiolayer: fixed typo + * * #9847: SIPVoipLink: gracefully handle invalid pointers + * * #9847: check that transport is initialized + * * #9847: SDP: avoid buffer overflow + * * #9847: fixed segfault on bad call invite + * * #9847: SDP: don't use assertions for runtime errors + * * #9847: handle invalid remote session gracefully + * * #9851: fixed segfault on stun socket cleanup + * * #8586: fixed warnings + * * #9849: added missing sstream header + * #9623: add required TLS certificates for testing purpose + * #9623: fixed tls registration + * #9623: fix storing tls port in config for normal account + * #9623: Allow all account to change tls listener port (not only + IP2IP) + * #9623: Allow for changing interface / port for tls transport + * #9623: Open TLS listener on selected interface + * #9833: remove unused debug + * #9833: handlingEvents_ must be initialized to true when starting iax + thread + * #9830: Remove create_route_set from sipvoiplink + * #9831: Fix sip transport port number + * #9830: move sip header parsing function in sip_utils + * Revert "* #8586: don't restore and save test files" + * * #8586: fixed make distcheck + * #9623: fixed tls registration + * * #8586: don't restore and save test files + * * #8586: refactored yaml code + * #9623: fix storing tls port in config for normal account + * #9623: Allow all account to change tls listener port (not only + IP2IP) + * #9623: Allow for changing interface / port for tls transport + * #9623: Open TLS listener on selected interface + * * #8586: added missing tests + * #9833: remove unused debug + * #9833: handlingEvents_ must be initialized to true when starting iax + thread + * #9830: Remove create_route_set from sipvoiplink + * #9831: Fix sip transport port number + * #9830: move sip header parsing function in sip_utils + * * #8977: removed unnecessary AC_CANONICAL macros from configure.ac + * * #8977: use actual PJSIP linking flags from pjproject/build.mak + * * #9774: sipvoiplink's destructor should not be public + * dbus: cleanup + * * #9774: make sure sipvoiplink is destroyed before accounts are + unloaded + * * #9777: don't use deprecated auto_ptr + * * #9778: removed AC_CHECK_FUNCS calls + * * #9782: fix warnings in tests + * * #9782: sip/sdp: fix emptiness checks + * * #9782: sdes_negotiator: fix iterator usage and set dangling + pointers to 0 + * * #9782: initialize all vars in iaxvoiplink + * * #9782: use fstreams instead of fscanf + * * #9782: yamlnode: fixed iterator usage + * * #9782: yamlemitter: fix iterator usage + * * #9782: yamlnode: make some methods const + * * #9782: initialize all member vars in constructor + * * #9782: Tone::interpolate should be const + * * #9782: mainbuffer: get rid of unused vars + * * #9782: GainControl::limit should be const + * * #9782: fix ARRAYSIZE check + * * #9782: use nanosleep instead of usleep + * * #9782: fixed "inefficient emptiness test" cppcheck warning + * * #9782: initialize dcblockers vars in constructor + * * #9779: dropped CELT support + * * #9750: moved sfl_data_format.h -> sfl_types.h + * * #9750: refactored global.h + * * #9736: restored command line options to daemon + * tests: cleanup + * * #8586: make distcheck was missing a header + * tests: cleanup + * * #9731: use all caps for application-wide constants + * tests: cleanup + * * #9730: cc++: enforce better checks in headers + * * #9730: builds against libccrtp1 + * * #9572: sipvoiplink: fixed typo + * * #9572: fixed threading issues with ccrtp2 + * * #9572: manager: pass config filename by const reference + * * #9572: Replace utilspp singleton implementation + * * #9571: regenerated config.{guess,sub} file to fix FTBFS on + armel/armhf. + * * #9665: siptransport: fixed udp_transport_start calls + * #9620 Add test SIP account in configuration sample (test/sflphoned- + sample.yml) + * * #9641: audiortp: Fixed CryptoContext management + * * #9641: fixed another memory leak in audio_srtp_session + * * #9641: audiosrtpsession: fixed memory leak, simplified memory + management + * * #9641: avoid dynamic memory allocs/raw pointer usage in audio rtp + stack + * * #9641: get rid of getType/RtpMethod logic + * fixed typo + * #9572: make sflphone compile with libccrtp 2 + * * #9490: fixed registration state change callback that was crashing + client + * * #9547: fixed warnings in SipTransport header + * #9547: Add SipTransport class + * #9547: Extract all the transport layer from SIPVoIPLink to new + SipTransport Class + * #9547: Destroy the STUN resolver in Transport shutdown + * sipvoiplink: removed erroneous FIXME + * sipvoiplink: cleanup + * #9547: Destroy the STUN resolver if server name change + * sipvoiplink: fix warning about variable shadowing + * #8320: Rename declared exception to avoid parameter shadowing + * #8320: Send signal to client on stun failure + * #8320: Use the same API for all transport creation (UDP, STUN, TLS) + * * #9509: use vector for credential info + * * #9508: fixes segfault in manager by changing order in which + destructors are called + * #8320: add dbus signal for stun failure + * #8320: Use two different variables for status and return statement + in stun's on_status_cb + * * #9490: removed resolve_once parameter that was causing a segfault + * #8320: make the retransmission callback to be rescheduled on error + * HookPreference: cleanup + * daemon: hookpreference: cleanup + * iaxvoiplink: terminate() doesn't have to be virtual + * sipvoiplink: functions need not be static if they are in an + anonymous namespace + * * #9037: moved CHECK macro into separate header + * * #9037: cleanup error handling/checking in video threads + * * #9037: video: cleanup + * * #9037: only signal receiving_video_event for rtp sessions + * * #9037: shared memory moved out of video_receive_thread + * * #9381: daemon: fixed make check for video + * * #9381: YAML_LIBS must be explicitly set in AC_SEARCH_LIBS macro + * * #9381: reverted yaml check + * * #9381: fix celt plugin compilation on fedora + * * #9381: use PKG_CHECK_MODULES to test for yaml + * * #9381: use autoconf macros and AC_SEARCH_LIBS + * * #9381: use AC_SEARCH_LIBS, AC_CHECK_LIB + * ringtonetest: cleanup + * configurationtest: cleanup + * instantmessagingtest.cpp: cleanup + * mainbuffertest: cleanup + * tests: cleanup + * #8320: Make sure stun keep alive is enabled + * call: push answer logic into call classes + * sipaccount: simplify IP2IP code + * sipaccount: avoid segfault if sipaccount is NULL + * sipaccount: cleanup + * #8084: Fix get sip header segfault when stun transport selected + * * #9037: created shared_memory class + * #8084: Init stun port with default valueas defined by RFC 3489 + * #9046: Move IP2IP_PROFILE global definition inside SIPAccount class + * #9045: fix Changing the account expire is not taken applied in + daemon + * vidoe_receive_thread: cleanup + * * #8968: suppress unusedFunction warnings for functions that are + actually used + * * #8821: fixed unit tests + * #8821: Renamed account map keys for consistency + * * #8968: audiorecord: added debug, clarified wave header creation + * * #8968: added debug message to get rid of "unused struct member" + warning + * * #8968: manager: create History on the stack + * * #9026: sfl::InstantMessaging is now a namespace + * * #8698: managerimpl: removed unused method isWaitingCall + * * #9008: don't include yaml headers in serializable.h + * * #9008: cleanup account map initialization + * refactor accountmap initialization + * #9020: fix config file not generated when no account created + * * #8968: audiorecord: removed unused getSndSamplingRate + * * #8968: config: removed getConfigTreeItemIntValue + * * #8968: recordable: removed unused getRecFileId + * * #8968: removed unused Codec::getMimeType method + * * #8968: manage lifetime of IMModule with auto_ptr + * * #8968: history: removed unused method + * * #8968: managerimpl: removed unused method + * * #8968: config: removed unused methods + * * #8968: managerimpl: removed unused getConfigBool/Int methods + * * #8968: networkmanager: cleanup + * * #8968: managerimpl: removed unused getConfig + * * #8968: managerimpl: Manage telephoneTone_ with auto_ptr. + * * #8968: history: fix memory leak upon exception + * * #8968: AudioFile: initialize filepath earlier + * * #8968: audiofile: fix memory leak on exception + * * #8968: audiocodec: removed unused getChannel method + * * #8968: use auto_ptr for dtmfKey + * * #8968: use vector instead of dynamically allocated int array + * * #8968: sdp.h: pass paramter by reference + * * #8968: sipvoiplink: avoid C-style pointer casting + * * #8968: yaml: avoid C-style pointer casts + * * #8968: pulselayer: avoid C-style pointer casting + * * #8968: recordable: removed unused getRecordingSmplRate method + * * #8968: alsalayer: use preincrement for iterators + * * #8968: config: removed unused method saveConfigTree + * * #8968: mainbuffer: preincrement iterators + * * #8977: history: added #include <fstream> + * * #8968: don't leak memory on exception + * * #8968: pulselayer: avoid C-style pointer casting + * * #8968: Member variables must be initialized in AudioSrtpSession + constructor + * * #8968: fix potential memory leak in audiorecord + * * #8968: Pass function parameter 'item' by const reference. + * * #8969: fixed memory leaks in sdes_negotiator + * video: cleanup + * * #8940: removed video test source for now + * #8763 Fix doxygen generation + * #8763 Generate Doxygen with Hudson + * * #8940: videosendthread: cleanup + * sipvoiplink: cleanup + * fileutils: cleanup + * #8335 Fix default transport initialization on 5062, 5064 + * #8762: update mute for mic only, fix remove slide for pulseaudio + * #8672: Add linear to decibel conversion functions in audio layer + * #8672: Implement audio gain management in pulseaudio + * #8671: Move audio gain management in audiolayer + * * #8542: create symbolic link properly + * * #8613: make check should fail early if another sflphone is running + * #8449: Update version 1.0.2 + * * #8545: fixed error case + * * #8545: fixed broken ringtone + * * #8586: fixed make dist + * sipvoiplink: use static_cast instead of reinterpret_cast if possible + * * #8542: test for .git existence before moving pre-commit hook + * * #8542: autogen.sh should not require git + * eventthread: cleanup + * * #8542: removed trailing whitespace from tree + * * #8357: added disable video option to client + * siptest: cleanup + * * #8521: use avcodec_open2 instead of deprecated avcodec_open, if + available + + -- Julien Bonjean <julien.bonjean@savoirfairelinux.com> Thu, 07 Jun 2012 16:08:15 -0400 + sflphone-common (1.0.0-rc20110930~ppa1~SYSTEM) SYSTEM; urgency=low ** SNAPSHOT 1.0.0-rc20110930~ppa1~SYSTEM ** diff --git a/tools/build-system/launchpad/sflphone-plugins/debian/changelog b/tools/build-system/launchpad/sflphone-plugins/debian/changelog index 440cc2e8987ee6c080171c63a61438b7a769233d..2cccb5d4740be43989ac01a546b55f7bcd4409af 100644 --- a/tools/build-system/launchpad/sflphone-plugins/debian/changelog +++ b/tools/build-system/launchpad/sflphone-plugins/debian/changelog @@ -1,3 +1,15 @@ +sflphone-plugins (1.1.0-rc20120607~ppa1~SYSTEM) SYSTEM; urgency=low + + ** SNAPSHOT 1.1.0-rc20120607~ppa1~SYSTEM ** + + * * #11208: bump version numbers for release 1.1.0 + * * #9381: use autoconf macros and AC_SEARCH_LIBS + * * #9144: Fixes "Only <glib.h> can be included directly" error + * #8449: Update version 1.0.2 + * * #8542: removed trailing whitespace from tree + + -- Julien Bonjean <julien.bonjean@savoirfairelinux.com> Thu, 07 Jun 2012 16:10:55 -0400 + sflphone-plugins (1.0.0-rc20110930~ppa1~SYSTEM) SYSTEM; urgency=low ** SNAPSHOT 1.0.0-rc20110930~ppa1~SYSTEM **