Files
ggwave/examples/waver/interface.cpp
2021-01-05 18:56:29 +02:00

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;
}
}