1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
qTox/src/avatarbroadcaster.h
tux3 bd5eebbc2e
Cache avatar sending, fix image file preview
- Add AvatarBroadcaster, in charge of making sure our friends have our avatar without spamming file transfers

- Fix file sending code not closing the file after transfer, which prevented file previews, and make the QFile a shared_ptr to fix the obvious memory leak

Some small additions to Core to support AvatarBroadcaster
2015-04-25 16:51:58 +02:00

29 lines
851 B
C++

#ifndef AVATARBROADCASTER_H
#define AVATARBROADCASTER_H
#include <QByteArray>
#include <QMap>
/// Takes care of broadcasting avatar changes to our friends in a smart way
/// Cache a copy of our current avatar and friends who have received it
/// so we don't spam avatar transfers to a friend who already has it.
class AvatarBroadcaster
{
private:
AvatarBroadcaster()=delete;
public:
/// Set our current avatar
static void setAvatar(QByteArray data);
/// Send our current avatar to this friend, if not already sent
static void sendAvatarTo(uint32_t friendId);
/// If true, we automatically broadcast our avatar to friends when they come online
static void enableAutoBroadcast(bool state = true);
private:
static QByteArray avatarData;
static QMap<uint32_t, bool> friendsSentTo;
};
#endif // AVATARBROADCASTER_H