teleport/client/tp-player/update_data.cpp

80 lines
1.7 KiB
C++
Raw Normal View History

2019-10-31 17:45:17 +00:00
#include "update_data.h"
2019-09-02 21:40:52 +00:00
#include <QImage>
#include <QDebug>
UpdateData::UpdateData() : QObject(nullptr)
2019-09-02 21:40:52 +00:00
{
_init();
}
UpdateData::UpdateData(int data_type) : QObject(nullptr)
{
_init();
2019-09-16 05:53:27 +00:00
m_data_type = data_type;
}
UpdateData::UpdateData(int data_type, uint32_t time_ms) : QObject(nullptr)
{
_init();
m_data_type = data_type;
m_time_ms = time_ms;
}
UpdateData::UpdateData(const TS_RECORD_HEADER& hdr) : QObject(nullptr)
{
_init();
m_data_type = TYPE_HEADER_INFO;
m_hdr = new TS_RECORD_HEADER;
memcpy(m_hdr, &hdr, sizeof(TS_RECORD_HEADER));
}
void UpdateData::_init() {
m_data_type = TYPE_UNKNOWN;
m_hdr = nullptr;
m_pointer = nullptr;
2019-09-02 21:40:52 +00:00
m_data_buf = nullptr;
m_data_len = 0;
m_time_ms = 0;
2019-09-02 21:40:52 +00:00
}
2019-10-31 17:45:17 +00:00
UpdateData::~UpdateData() {
if(m_hdr)
delete m_hdr;
if(m_pointer)
delete m_pointer;
for(int i = 0; i < m_images.size(); ++i) {
delete m_images[i].img;
}
m_images.clear();
2019-09-02 21:40:52 +00:00
if(m_data_buf)
delete m_data_buf;
}
void UpdateData::set_pointer(uint32_t ts, const TS_RECORD_RDP_POINTER* p) {
m_data_type = TYPE_POINTER;
m_time_ms = ts;
m_pointer = new TS_RECORD_RDP_POINTER;
memcpy(m_pointer, p, sizeof(TS_RECORD_RDP_POINTER));
}
2019-10-31 17:45:17 +00:00
void UpdateData::alloc_data(uint32_t len) {
2019-09-02 21:40:52 +00:00
if(m_data_buf)
delete m_data_buf;
m_data_buf = new uint8_t[len];
memset(m_data_buf, 0, len);
m_data_len = len;
}
2019-10-31 17:45:17 +00:00
void UpdateData::attach_data(const uint8_t* dat, uint32_t len) {
2019-09-02 21:40:52 +00:00
if(m_data_buf)
delete m_data_buf;
m_data_buf = new uint8_t[len];
memcpy(m_data_buf, dat, len);
m_data_len = len;
}