1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#ifndef MUMBLE_MUMBLE_DATABASE_H_
#define MUMBLE_MUMBLE_DATABASE_H_
#include "Settings.h"
#include "UnresolvedServerAddress.h"
#include <QSqlDatabase>
struct FavoriteServer {
QString qsName;
QString qsUsername;
QString qsPassword;
QString qsHostname;
QString qsUrl;
unsigned short usPort;
};
class Database : public QObject {
private:
Q_OBJECT
Q_DISABLE_COPY(Database)
QSqlDatabase db;
/// This function is called when no database location is configured
/// in the config file. It tries to find an existing database file and
/// creates a new one if none was found.
bool findOrCreateDatabase();
public:
Database(const QString &dbname);
~Database() Q_DECL_OVERRIDE;
QList< FavoriteServer > getFavorites();
void setFavorites(const QList< FavoriteServer > &servers);
void setPassword(const QString &host, unsigned short port, const QString &user, const QString &pw);
bool fuzzyMatch(QString &name, QString &user, QString &pw, QString &host, unsigned short port);
bool isLocalIgnored(const QString &hash);
void setLocalIgnored(const QString &hash, bool ignored);
bool isLocalIgnoredTTS(const QString &hash);
void setLocalIgnoredTTS(const QString &hash, bool ignoredTTS);
bool isLocalMuted(const QString &hash);
void setLocalMuted(const QString &hash, bool muted);
float getUserLocalVolume(const QString &hash);
void setUserLocalVolume(const QString &hash, float volume);
QString getUserLocalNickname(const QString &hash);
void setUserLocalNickname(const QString &hash, const QString &nickname);
bool isChannelFiltered(const QByteArray &server_cert_digest, const int channel_id);
void setChannelFiltered(const QByteArray &server_cert_digest, const int channel_id, bool hidden);
QMap< UnresolvedServerAddress, unsigned int > getPingCache();
void setPingCache(const QMap< UnresolvedServerAddress, unsigned int > &cache);
bool seenComment(const QString &hash, const QByteArray &commenthash);
void setSeenComment(const QString &hash, const QByteArray &commenthash);
QByteArray blob(const QByteArray &hash);
void setBlob(const QByteArray &hash, const QByteArray &blob);
QStringList getTokens(const QByteArray &digest);
void setTokens(const QByteArray &digest, QStringList &tokens);
QList< Shortcut > getShortcuts(const QByteArray &digest);
bool setShortcuts(const QByteArray &digest, QList< Shortcut > &shortcuts);
void addFriend(const QString &name, const QString &hash);
void removeFriend(const QString &hash);
const QString getFriend(const QString &hash);
const QMap< QString, QString > getFriends();
const QString getDigest(const QString &hostname, unsigned short port);
void setDigest(const QString &hostname, unsigned short port, const QString &digest);
bool getUdp(const QByteArray &digest);
void setUdp(const QByteArray &digest, bool udp);
QList< int > getChannelListeners(const QByteArray &digest);
void setChannelListeners(const QByteArray &digest, const QSet< int > &channelIDs);
QHash< int, float > getChannelListenerLocalVolumeAdjustments(const QByteArray &digest);
void setChannelListenerLocalVolumeAdjustments(const QByteArray &digest, const QHash< int, float > &volumeMap);
};
#endif
|