1 // Copyright 2005-2019 The Mumble Developers. All rights reserved. 2 // Use of this source code is governed by a BSD-style license 3 // that can be found in the LICENSE file at the root of the 4 // Mumble source tree or at <https://www.mumble.info/LICENSE>. 5 6 #ifndef MUMBLE_MUMBLE_DATABASE_H_ 7 #define MUMBLE_MUMBLE_DATABASE_H_ 8 9 #include <QSqlDatabase> 10 #include "Settings.h" 11 #include "UnresolvedServerAddress.h" 12 13 struct FavoriteServer { 14 QString qsName; 15 QString qsUsername; 16 QString qsPassword; 17 QString qsHostname; 18 QString qsUrl; 19 unsigned short usPort; 20 }; 21 22 class Database : public QObject { 23 private: 24 Q_OBJECT 25 Q_DISABLE_COPY(Database) 26 27 QSqlDatabase db; 28 public: 29 Database(const QString &dbname); 30 ~Database() Q_DECL_OVERRIDE; 31 32 QList<FavoriteServer> getFavorites(); 33 void setFavorites(const QList<FavoriteServer> &servers); 34 void setPassword(const QString &host, unsigned short port, const QString &user, const QString &pw); 35 bool fuzzyMatch(QString &name, QString &user, QString &pw, QString &host, unsigned short port); 36 37 bool isLocalIgnored(const QString &hash); 38 void setLocalIgnored(const QString &hash, bool ignored); 39 40 bool isLocalMuted(const QString &hash); 41 void setLocalMuted(const QString &hash, bool muted); 42 43 float getUserLocalVolume(const QString &hash); 44 void setUserLocalVolume(const QString &hash, float volume); 45 46 bool isChannelFiltered(const QByteArray &server_cert_digest, const int channel_id); 47 void setChannelFiltered(const QByteArray &server_cert_digest, const int channel_id, bool hidden); 48 49 QMap<UnresolvedServerAddress, unsigned int> getPingCache(); 50 void setPingCache(const QMap<UnresolvedServerAddress, unsigned int> &cache); 51 52 bool seenComment(const QString &hash, const QByteArray &commenthash); 53 void setSeenComment(const QString &hash, const QByteArray &commenthash); 54 55 QByteArray blob(const QByteArray &hash); 56 void setBlob(const QByteArray &hash, const QByteArray &blob); 57 58 QStringList getTokens(const QByteArray &digest); 59 void setTokens(const QByteArray &digest, QStringList &tokens); 60 61 QList<Shortcut> getShortcuts(const QByteArray &digest); 62 bool setShortcuts(const QByteArray &digest, QList<Shortcut> &shortcuts); 63 64 void addFriend(const QString &name, const QString &hash); 65 void removeFriend(const QString &hash); 66 const QString getFriend(const QString &hash); 67 const QMap<QString, QString> getFriends(); 68 69 const QString getDigest(const QString &hostname, unsigned short port); 70 void setDigest(const QString &hostname, unsigned short port, const QString &digest); 71 72 bool getUdp(const QByteArray &digest); 73 void setUdp(const QByteArray &digest, bool udp); 74 }; 75 76 #endif 77