mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-02-07 01:11:22 +08:00
74 lines
2.0 KiB
C++
74 lines
2.0 KiB
C++
#include "interface.h"
|
|
|
|
int g_lastShareId = 0;
|
|
int g_lastOpenId = 0;
|
|
int g_lastDeleteId = 0;
|
|
int g_lastReceivedId = 0;
|
|
int g_frameCount = 0;
|
|
|
|
void updateMain() {
|
|
auto curShareId = getShareId();
|
|
if (curShareId != g_lastShareId) {
|
|
auto shareInfo = getShareInfo();
|
|
interface_shareFile(
|
|
shareInfo.uri.data(),
|
|
shareInfo.filename.data(),
|
|
shareInfo.dataBuffer,
|
|
shareInfo.dataSize);
|
|
|
|
g_lastShareId = curShareId;
|
|
}
|
|
|
|
auto curOpenId = getOpenId();
|
|
if (curOpenId != g_lastOpenId) {
|
|
auto openInfo = getOpenInfo();
|
|
interface_openFile(
|
|
openInfo.uri.data(),
|
|
openInfo.filename.data(),
|
|
openInfo.dataBuffer,
|
|
openInfo.dataSize);
|
|
|
|
g_lastOpenId = curOpenId;
|
|
}
|
|
|
|
auto curDeleteId = getDeleteId();
|
|
if (curDeleteId != g_lastDeleteId) {
|
|
auto deleteInfo = getDeleteInfo();
|
|
interface_deleteFile(deleteInfo.uri.c_str(), deleteInfo.filename.c_str());
|
|
|
|
bool isRemoveAll = std::string(deleteInfo.uri) == "###ALL-FILES###";
|
|
|
|
if (interface_needReloadFiles() || isRemoveAll) {
|
|
clearAllFiles();
|
|
interface_loadAllFiles();
|
|
} else {
|
|
clearFile(deleteInfo.uri.c_str());
|
|
}
|
|
|
|
g_lastDeleteId = curDeleteId;
|
|
}
|
|
|
|
auto curReceivedId = getReceivedId();
|
|
if (curReceivedId != g_lastReceivedId) {
|
|
auto receiveInfos = getReceiveInfos();
|
|
|
|
int n = (int) receiveInfos.size();
|
|
|
|
for (int i = 0; i < n; ++i) {
|
|
interface_receiveFile(
|
|
receiveInfos[i].uri,
|
|
receiveInfos[i].filename,
|
|
receiveInfos[i].dataBuffer,
|
|
receiveInfos[i].dataSize);
|
|
confirmReceive(receiveInfos[i].uri);
|
|
}
|
|
|
|
if (interface_needReloadFiles()) {
|
|
clearAllFiles();
|
|
interface_loadAllFiles();
|
|
}
|
|
|
|
g_lastReceivedId = curReceivedId;
|
|
}
|
|
}
|