Subversion Repositories tpanel

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
238 andreas 1
/*
2
 * Copyright (C) 2022 by Andreas Theofilu <andreas@theosys.at>
3
 *
4
 * This program is free software; you can redistribute it and/or modify
5
 * it under the terms of the GNU General Public License as published by
6
 * the Free Software Foundation; either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program; if not, write to the Free Software Foundation,
16
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
17
 */
18
 
19
#include "QASettings.h"
239 andreas 20
#import <Foundation/Foundation.h>
247 andreas 21
#import <UIKit/UIKit.h>
239 andreas 22
#include <QtCore>
247 andreas 23
#include "terror.h"
238 andreas 24
 
239 andreas 25
void QASettings::registerDefaultPrefs()
26
{
27
    NSDictionary* appDefaultsRoot = [NSDictionary dictionaryWithObject:@"Root" forKey:@"StringsTable"];
28
    NSDictionary* appDefaultsSip = [NSDictionary dictionaryWithObject:@"SIP" forKey:@"StringsTable"];
29
    NSDictionary* appDefaultsView = [NSDictionary dictionaryWithObject:@"View" forKey:@"StringsTable"];
30
    NSDictionary* appDefaultsSound = [NSDictionary dictionaryWithObject:@"Sound" forKey:@"StringsTable"];
31
    NSDictionary* appDefaultsLog = [NSDictionary dictionaryWithObject:@"Logging" forKey:@"StringsTable"];
238 andreas 32
 
239 andreas 33
    if (appDefaultsRoot)
34
    {
35
        // the default value was found in the dictionary.  Register it.
36
        // wrapping this in an if.. clause prevents overwriting a user entered
37
        // value with the default value
38
        [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaultsRoot];
39
    }
238 andreas 40
 
239 andreas 41
    if (appDefaultsSip)
42
    {
43
        [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaultsSip];
44
    }
45
 
46
    if (appDefaultsView)
47
    {
48
        [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaultsView];
49
    }
50
 
51
    if (appDefaultsSound)
52
    {
53
        [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaultsSound];
54
    }
55
 
56
    if (appDefaultsLog)
57
    {
58
        [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaultsLog];
59
    }
60
}
61
 
62
QString QASettings::getNetlinxIP()
238 andreas 63
{
239 andreas 64
    NSString* netlinx_ip = [[NSUserDefaults standardUserDefaults] stringForKey:@"netlinx_ip"];
247 andreas 65
 
66
    if (!netlinx_ip)
67
        netlinx_ip = @"0.0.0.0";
68
 
239 andreas 69
    return QString::fromNSString(netlinx_ip);
238 andreas 70
}
71
 
239 andreas 72
int QASettings::getNetlinxPort()
238 andreas 73
{
239 andreas 74
    NSInteger netlinx_port = [[ NSUserDefaults standardUserDefaults] integerForKey:@"netlinx_port"];
75
 
76
    if (netlinx_port == 0)
77
        netlinx_port = 1319;
78
 
79
    return netlinx_port;
238 andreas 80
}
81
 
239 andreas 82
int QASettings::getNetlinxChannel()
238 andreas 83
{
239 andreas 84
    NSInteger netlinx_channel = [[ NSUserDefaults standardUserDefaults] integerForKey:@"netlinx_channel"];
238 andreas 85
 
239 andreas 86
    if (netlinx_channel == 0)
87
        netlinx_channel = 10001;
238 andreas 88
 
239 andreas 89
    return netlinx_channel;
90
}
238 andreas 91
 
239 andreas 92
QString QASettings::getNetlinxPanelType()
93
{
94
    NSString *netlinx_type = [[ NSUserDefaults standardUserDefaults] stringForKey:@"netlinx_type"];
95
 
96
    if (!netlinx_type)
97
        netlinx_type = @"MVP-5200i";
98
 
99
    return QString::fromNSString(netlinx_type);
238 andreas 100
}
101
 
239 andreas 102
QString QASettings::getFTPUser()
103
{
104
    NSString *netlinx_ftp_user = [[ NSUserDefaults standardUserDefaults] stringForKey:@"netlinx_ftp_user"];
105
 
106
    if (!netlinx_ftp_user)
107
        netlinx_ftp_user = @"administrator";
108
 
109
    return QString::fromNSString(netlinx_ftp_user);
110
}
111
 
112
QString QASettings::getFTPPassword()
113
{
114
    NSString *netlinx_ftp_password = [[ NSUserDefaults standardUserDefaults] stringForKey:@"netlinx_ftp_password"];
115
 
116
    if (!netlinx_ftp_password)
117
        netlinx_ftp_password = @"password";
118
 
119
    return QString::fromNSString(netlinx_ftp_password);
120
}
121
 
122
QString QASettings::getNetlinxSurface()
123
{
124
    NSString *netlinx_surface = [[ NSUserDefaults standardUserDefaults] stringForKey:@"netlinx_surface"];
125
 
126
    if (!netlinx_surface)
247 andreas 127
        netlinx_surface = @"tpanel.TP4";
239 andreas 128
 
129
    return QString::fromNSString(netlinx_surface);
130
}
131
 
132
bool QASettings::getFTPPassive()
133
{
134
    NSInteger ftp_passive = [[ NSUserDefaults standardUserDefaults] boolForKey:@"netlinx_ftp_passive"];
135
    return ftp_passive;
136
}
137
 
138
// Settings for SIP
139
 
140
QString QASettings::getSipProxy(void)
141
{
142
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sip_proxy"];
143
    return QString::fromNSString(str);
144
}
145
 
146
int QASettings::getSipNetworkPort(void)
147
{
148
    NSInteger number = [[ NSUserDefaults standardUserDefaults] integerForKey:@"sip_port"];
247 andreas 149
 
150
    if (number <= 0)
151
        number = 5060;
152
 
239 andreas 153
    return number;
154
}
155
 
156
int QASettings::getSipNetworkTlsPort(void)
157
{
158
    NSInteger number = [[ NSUserDefaults standardUserDefaults] integerForKey:@"sip_tsl_port"];
159
    return number;
160
}
161
 
162
QString QASettings::getSipStun(void)
163
{
164
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sip_stun"];
165
    return QString::fromNSString(str);
166
}
167
 
168
QString QASettings::getSipDomain(void)
169
{
170
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sip_domain"];
171
    return QString::fromNSString(str);
172
}
173
 
174
QString QASettings::getSipUser(void)
175
{
176
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sip_user"];
177
    return QString::fromNSString(str);
178
}
179
 
180
QString QASettings::getSipPassword(void)
181
{
182
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sip_password"];
183
    return QString::fromNSString(str);
184
}
185
 
186
bool QASettings::getSipNetworkIpv4(void)
187
{
188
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"sip_ipv4"];
189
    return boolean;
190
}
191
 
192
bool QASettings::getSipNetworkIpv6(void)
193
{
194
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"sip_ipv6"];
195
    return boolean;
196
}
197
 
198
bool QASettings::getSipEnabled(void)
199
{
200
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"sip_enabled"];
201
    return boolean;
202
}
203
bool QASettings::getSipIntegratedPhone(void)
204
{
205
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"sip_internal_phone"];
206
    return boolean;
207
}
208
 
209
// Settings for View
210
 
211
bool QASettings::getViewScale(void)
212
{
213
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"view_scale"];
214
    return boolean;
215
}
216
 
217
bool QASettings::getViewToolbarVisible(void)
218
{
219
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"view_toolbar"];
220
    return boolean;
221
}
222
 
223
bool QASettings::getViewToolbarForce(void)
224
{
225
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"view_toolbar_force"];
226
    return boolean;
227
}
228
 
229
bool QASettings::getViewRotation(void)
230
{
231
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"view_rotation"];
232
    return boolean;
233
}
234
 
235
// Settings for sound
236
 
237
QString QASettings::getSoundSystem(void)
238
{
239
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sound_system"];
240
    return QString::fromNSString(str);
241
}
242
 
243
QString QASettings::getSoundSingleBeep(void)
244
{
245
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sound_single"];
246
    return QString::fromNSString(str);
247
}
248
 
249
QString QASettings::getSoundDoubleBeep(void)
250
{
251
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"sound_double"];
252
    return QString::fromNSString(str);
253
}
254
 
255
bool QASettings::getSoundEnabled(void)
256
{
257
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"sound_enable"];
258
    return boolean;
259
}
260
 
261
int QASettings::getSoundVolume(void)
262
{
263
    NSInteger number = [[ NSUserDefaults standardUserDefaults] integerForKey:@"sound_volume"];
264
    return number;
265
}
266
 
267
int QASettings::getSoundGain(void)
268
{
269
    NSInteger number = [[ NSUserDefaults standardUserDefaults] integerForKey:@"sound_gain"];
270
    return number;
271
}
272
 
273
// Settings for logging
274
 
275
bool QASettings::getLoggingInfo()
276
{
277
    NSInteger log_info = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_info"];
278
    return log_info;
279
}
280
 
281
bool QASettings::getLoggingWarning()
282
{
283
    NSInteger log_warning = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_warning"];
284
    return log_warning;
285
}
286
 
287
bool QASettings::getLoggingError()
288
{
289
    NSInteger log_error = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_error"];
290
    return log_error;
291
}
292
 
293
bool QASettings::getLoggingTrace()
294
{
295
    NSInteger log_trace = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_trace"];
296
    return log_trace;
297
}
298
 
299
bool QASettings::getLoggingDebug()
300
{
301
    NSInteger log_debug = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_debug"];
302
    return log_debug;
303
}
304
 
305
bool QASettings::getLoggingProfile()
306
{
307
    NSInteger log_profile = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_profile"];
308
    return log_profile;
309
}
310
 
311
bool QASettings::getLoggingLogFormat()
312
{
313
    NSInteger log_format = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_long_format"];
314
    return log_format;
315
}
316
 
242 andreas 317
bool QASettings::getLoggingLogfileEnabled()
318
{
319
    NSInteger boolean = [[ NSUserDefaults standardUserDefaults] boolForKey:@"logging_logfile_enabled"];
320
    return boolean;
321
}
322
 
243 andreas 323
QString QASettings::getLoggingLogfile()
242 andreas 324
{
325
    NSString *str = [[ NSUserDefaults standardUserDefaults] stringForKey:@"logging_logfile"];
326
    return QString::fromNSString(str);
327
}
328
 
239 andreas 329
// Static methods
330
QString QASettings::getLibraryPath()
331
{
332
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
333
    NSString *libraryDirectory = [paths objectAtIndex:0];
334
    return QString::fromNSString(libraryDirectory);
335
}
242 andreas 336
 
337
QString QASettings::getDocumentPath()
338
{
339
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
340
    NSString *documentDirectory = [paths objectAtIndex:0];
341
    return QString::fromNSString(documentDirectory);
342
}
247 andreas 343
 
344
QRect QASettings::getNotchSize()
345
{
346
    UIWindow* window = [[UIApplication sharedApplication] keyWindow];
347
    QRect rect;
348
 
349
    float reservedTop = window.safeAreaInsets.top;
350
    float reservedBottom = [[[UIApplication sharedApplication] keyWindow] safeAreaInsets].bottom;
351
    float reservedLeft = window.safeAreaInsets.left;
352
    float reservedRight = window.safeAreaInsets.right;
353
MSG_DEBUG("Notch top: " << reservedTop << ", bottom: " << reservedBottom << ", left: " << reservedLeft << ", right: " << reservedRight);
354
    rect.setLeft(reservedLeft);
355
    rect.setTop(reservedTop);
356
    rect.setBottom(reservedBottom);
357
    rect.setRight(reservedRight);
358
    return rect;
359
}