~ubuntu-branches/ubuntu/trusty/sflphone/trusty

« back to all changes in this revision

Viewing changes to kde/src/klib/configurationskeleton.cpp

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2014-01-28 18:23:36 UTC
  • mfrom: (4.3.4 sid)
  • Revision ID: package-import@ubuntu.com-20140128182336-jrsv0k9u6cawc068
Tags: 1.3.0-1
* New upstream release 
  - Fixes "New Upstream Release" (Closes: #735846)
  - Fixes "Ringtone does not stop" (Closes: #727164)
  - Fixes "[sflphone-kde] crash on startup" (Closes: #718178)
  - Fixes "sflphone GUI crashes when call is hung up" (Closes: #736583)
* Build-Depends: ensure GnuTLS 2.6
  - libucommon-dev (>= 6.0.7-1.1), libccrtp-dev (>= 2.0.6-3)
  - Fixes "FTBFS Build-Depends libgnutls{26,28}-dev" (Closes: #722040)
* Fix "boost 1.49 is going away" unversioned Build-Depends: (Closes: #736746)
* Add Build-Depends: libsndfile-dev, nepomuk-core-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
 *   Copyright (C) 2009-2013 by Savoir-Faire Linux                          *
3
 
 *   Author : Jérémy Quentin <jeremy.quentin@savoirfairelinux.com>          *
4
 
 *            Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
5
 
 *                                                                          *
6
 
 *   This library is free software; you can redistribute it and/or          *
7
 
 *   modify it under the terms of the GNU Lesser General Public             *
8
 
 *   License as published by the Free Software Foundation; either           *
9
 
 *   version 2.1 of the License, or (at your option) any later version.     *
10
 
 *                                                                          *
11
 
 *   This library is distributed in the hope that it will be useful,        *
12
 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
13
 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU      *
14
 
 *   Lesser General Public License for more details.                        *
15
 
 *                                                                          *
16
 
 *   You should have received a copy of the GNU General Public License      *
17
 
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
18
 
 ***************************************************************************/
19
 
 
20
 
#include "configurationskeleton.h"
21
 
 
22
 
#include "../lib/configurationmanager_interface_singleton.h"
23
 
#include "../lib/sflphone_const.h"
24
 
 
25
 
//KDE
26
 
#include <KDebug>
27
 
 
28
 
ConfigurationSkeleton * ConfigurationSkeleton::instance = nullptr;
29
 
 
30
 
///Constructor
31
 
ConfigurationSkeleton::ConfigurationSkeleton()
32
 
 : ConfigurationSkeletonBase()
33
 
{
34
 
   kDebug() << "Building ConfigurationSkeleton";
35
 
   //codecListModel = new CodecListModel();
36
 
   readConfig();
37
 
}
38
 
 
39
 
///Destructor
40
 
ConfigurationSkeleton::~ConfigurationSkeleton()
41
 
{
42
 
}
43
 
 
44
 
///Signleton
45
 
ConfigurationSkeleton * ConfigurationSkeleton::self()
46
 
{
47
 
   if(instance == nullptr)
48
 
   {   instance = new ConfigurationSkeleton();   }
49
 
   return instance;
50
 
}
51
 
 
52
 
///Read the config and override some variable using daemon defaults
53
 
void ConfigurationSkeleton::readConfig()
54
 
{
55
 
   //ConfigurationSkeleton::readConfig();
56
 
   kDebug() << "Reading config";
57
 
 
58
 
   ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
59
 
 
60
 
   //General settings
61
 
 
62
 
   //Call history settings
63
 
   //setEnableHistory(true);
64
 
   setHistoryMax(configurationManager.getHistoryLimit());
65
 
 
66
 
   //Display settings
67
 
 
68
 
   //Notification settings
69
 
   //setNotifOnCalls(true);
70
 
   setNotifOnMessages(configurationManager.getMailNotify());
71
 
 
72
 
   //Window display settings
73
 
   //setDisplayOnStart(true);
74
 
   //setDisplayOnCalls(true);
75
 
 
76
 
   //Accounts settings
77
 
 
78
 
   //Audio settings
79
 
 
80
 
   //Audio Interface settings
81
 
   QString audioManager = configurationManager.getAudioManager();
82
 
   kDebug() << "audioManager = " << audioManager;
83
 
   //setInterface(audioManager); //TODO
84
 
 
85
 
//    //ringtones settings
86
 
//    setEnableRingtones(true);
87
 
//    //QString ringtone = "";
88
 
//    if(ringtone().isEmpty()) {
89
 
//       setRingtone(QString(SHARE_INSTALL_PREFIX) + "/sflphone/ringtones/konga.ul");
90
 
//    }
91
 
 
92
 
   //codecs settings
93
 
   //setActiveCodecList(configurationManager.getActiveCodecList()); //Outdated
94
 
 
95
 
   kDebug() << "configurationManager.getCurrentAudioOutputPlugin() = " << configurationManager.getCurrentAudioOutputPlugin();
96
 
   setAlsaPlugin(configurationManager.getCurrentAudioOutputPlugin());
97
 
   bool ok;
98
 
   QStringList devices = configurationManager.getCurrentAudioDevicesIndex();
99
 
   int inputDevice =0;
100
 
   if (devices.size() > 1) {
101
 
      kDebug() << "inputDevice = " << devices[1];
102
 
      inputDevice = devices[1].toInt(& ok);
103
 
   }
104
 
   else
105
 
      kDebug() << "Fatal: Too few audio devices";
106
 
 
107
 
   if(!ok)
108
 
      kDebug() << "inputDevice is not a number";
109
 
 
110
 
   setAlsaInputDevice(inputDevice);
111
 
 
112
 
   //kDebug() << "outputDevice = " << devices[0];
113
 
   //int outputDevice = devices[0].toInt(& ok);
114
 
   //if(!ok) kDebug() << "outputDevice is not a number";
115
 
   //setAlsaOutputDevice(outputDevice);
116
 
 
117
 
   //Address book settings
118
 
 
119
 
   MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value();
120
 
   setEnableAddressBook(addressBookSettings[ADDRESSBOOK_ENABLE]);
121
 
   //setMaxResults(addressBookSettings[ADDRESSBOOK_MAX_RESULTS]);
122
 
   //setDisplayPhoto(addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO]);
123
 
   //setBusiness(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]);
124
 
   //setMobile(addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE]);
125
 
   //setHome(addressBookSettings[ADDRESSBOOK_DISPLAY_HOME]);
126
 
 
127
 
   //Hooks settings
128
 
 
129
 
   MapStringString hooksSettings = configurationManager.getHookSettings().value();
130
 
   setAddPrefix(hooksSettings[HOOKS_ENABLED]=="1");
131
 
   setPrepend(hooksSettings[HOOKS_ADD_PREFIX]);
132
 
   setEnableHooksSIP(hooksSettings[HOOKS_SIP_ENABLED]=="1");
133
 
   setEnableHooksIAX(hooksSettings[HOOKS_IAX2_ENABLED]=="1");
134
 
   setHooksSIPHeader(hooksSettings[HOOKS_SIP_FIELD]);
135
 
   setHooksCommand(hooksSettings[HOOKS_COMMAND]);
136
 
 
137
 
   kDebug() << "Finished to read config";
138
 
}
139
 
 
140
 
void ConfigurationSkeleton::writeConfig()
141
 
{
142
 
   //ConfigurationSkeleton::writeConfig();
143
 
   kDebug() << "Writing config";
144
 
   ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
145
 
 
146
 
 
147
 
   //General settings
148
 
 
149
 
   kDebug() << "Writing General settings";
150
 
 
151
 
   //Call history settings
152
 
        //if(enableHistory() != QVariant(configurationManager.getHistoryEnabled()).toBool() ) {
153
 
            //configurationManager.setHistoryEnabled();
154
 
        //}
155
 
   configurationManager.setHistoryLimit(historyMax());
156
 
 
157
 
   //Display settings
158
 
 
159
 
   kDebug() << "Writing Display settings";
160
 
 
161
 
   //Notification settings
162
 
   //if(notifOnCalls() != configurationManager.getNotify()) configurationManager.setNotify();
163
 
   //    if(notifOnMessages() != configurationManager.getMailNotify()) configurationManager.setMailNotify();
164
 
   //configurationManager.setMailNotify(notifOnMessages());
165
 
 
166
 
   //Window display settings
167
 
   //WARNING états inversés
168
 
   //if(displayOnStart() == configurationManager.isStartHidden()) configurationManager.startHidden();
169
 
   //if(displayOnCalls() != configurationManager.popupMode()) configurationManager.switchPopupMode();
170
 
 
171
 
   //Accounts settings
172
 
 
173
 
   kDebug() << "Writing Accounts settings";
174
 
 
175
 
   //    saveAccountList();
176
 
 
177
 
   //Audio settings
178
 
 
179
 
   kDebug() << "Writing Audio settings";
180
 
 
181
 
   //Audio Interface settings
182
 
   //    int prevManager = configurationManager.getAudioManager();
183
 
   //    int newManager = interface();
184
 
   //    if(prevManager != newManager) {
185
 
   //       configurationManager.setAudioManager(newManager);
186
 
   //    }
187
 
 
188
 
   //ringtones settings
189
 
   //    if(enableRingtones() != configurationManager.isRingtoneEnabled()) configurationManager.ringtoneEnabled();
190
 
   //    configurationManager.setRingtoneChoice(ringtone());
191
 
 
192
 
   //codecs settings
193
 
   //kDebug() << "activeCodecList = " << activeCodecList();
194
 
   //configurationManager.setActiveCodecList(activeCodecList());
195
 
 
196
 
 
197
 
   //alsa settings
198
 
   //    if(prevManager == CONST_ALSA && newManager == EnumInterface::ALSA) {
199
 
   //       kDebug() << "setting alsa settings";
200
 
   //       configurationManager.setOutputAudioPlugin(alsaPlugin());
201
 
   //       configurationManager.setAudioInputDevice(alsaInputDevice());
202
 
   //       configurationManager.setAudioOutputDevice(alsaOutputDevice());
203
 
   //    }
204
 
 
205
 
   //Record settings
206
 
 
207
 
   kDebug() << "Writing Record settings";
208
 
 
209
 
   //    QString destination = destinationFolder();
210
 
   //    configurationManager.setRecordPath(destination);
211
 
 
212
 
 
213
 
   //Address Book settings
214
 
 
215
 
   kDebug() << "Writing Address Book settings";
216
 
 
217
 
   MapStringInt addressBookSettings = MapStringInt();
218
 
   addressBookSettings[ADDRESSBOOK_ENABLE] = enableAddressBook();
219
 
   //    addressBookSettings[ADDRESSBOOK_MAX_RESULTS] = maxResults();
220
 
   //    addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO] = displayPhoto();
221
 
   //    addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS] = business();
222
 
   //    addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE] = mobile();
223
 
   //    addressBookSettings[ADDRESSBOOK_DISPLAY_HOME] = home();
224
 
   configurationManager.setAddressbookSettings(addressBookSettings);
225
 
 
226
 
   //Hooks settings
227
 
 
228
 
   kDebug() << "Writing Hooks settings";
229
 
 
230
 
   MapStringString hooksSettings = MapStringString();
231
 
   hooksSettings[HOOKS_ENABLED] = addPrefix() ? "1" : "0";
232
 
   hooksSettings[HOOKS_ADD_PREFIX] = prepend();
233
 
   hooksSettings[HOOKS_SIP_ENABLED] = enableHooksSIP() ? "1" : "0";
234
 
   hooksSettings[HOOKS_IAX2_ENABLED] = enableHooksIAX() ? "1" : "0";
235
 
   hooksSettings[HOOKS_SIP_FIELD] = hooksSIPHeader();
236
 
   hooksSettings[HOOKS_COMMAND] = hooksCommand();
237
 
   configurationManager.setHookSettings(hooksSettings);
238
 
 
239
 
   kDebug() << "Finished to write config\n";
240
 
   ConfigurationSkeletonBase::writeConfig();
241
 
}
242
 
 
243
 
// QStringList ConfigurationSkeleton::activeCodecList() const
244
 
// {
245
 
//    return codecListModel->getActiveCodecList();
246
 
// }
247
 
//
248
 
// void ConfigurationSkeleton::setActiveCodecList(const QStringList & v)
249
 
// {
250
 
//    codecListModel->setActiveCodecList(v);
251
 
// }
252
 
 
253
 
// void ConfigurationSkeleton::writeConfig()
254
 
// {
255
 
//
256
 
//    ConfigurationSkeletonBase::writeConfig();
257
 
// }