ggwave-gui : add interface_openFile

This commit is contained in:
Georgi Gerganov
2021-01-02 08:56:03 +02:00
parent b96fdbfa20
commit 2fe0e107f1
4 changed files with 55 additions and 1 deletions

View File

@@ -253,6 +253,9 @@ GGSock::Communicator g_fileClient(false);
int g_shareId = 0;
ShareInfo g_shareInfo;
int g_openId = 0;
OpenInfo g_openInfo;
int g_deleteId = 0;
DeleteInfo g_deleteInfo;
@@ -266,6 +269,14 @@ ShareInfo getShareInfo() {
return g_shareInfo;
}
int getOpenId() {
return g_openId;
}
OpenInfo getOpenInfo() {
return g_openInfo;
}
int getDeleteId() {
return g_deleteId;
}
@@ -726,7 +737,7 @@ void renderMain() {
const auto sendButtonText = ICON_FA_PLAY_CIRCLE " Send";
const double tShowKeyboard = 0.2f;
#if defined(IOS) || defined(ANDROID)
#if defined(IOS)
const float statusBarHeight = displaySize.x < displaySize.y ? 2.0f*style.ItemSpacing.y : 0.1f;
#else
const float statusBarHeight = 0.1f;
@@ -1222,6 +1233,18 @@ void renderMain() {
}
ImGui::SameLine();
#ifdef ANDROID
if (ImGui::Button(ICON_FA_EYE " VIEW")) {
g_openInfo.uri = fileInfo.second.uri;
g_openInfo.filename = fileInfo.second.filename;
const auto & fileData = g_fileServer.getFileData(g_openInfo.uri);
g_openInfo.dataBuffer = fileData.data.data();
g_openInfo.dataSize = fileData.data.size();
g_openId++;
}
ImGui::SameLine();
#endif
if (ImGui::Button(ICON_FA_TRASH " Clear")) {
g_deleteInfo.uri = fileInfo.second.uri.data();
g_deleteInfo.filename = fileInfo.second.filename.data();

View File

@@ -21,6 +21,18 @@ struct ShareInfo {
int getShareId();
ShareInfo getShareInfo();
// open info
struct OpenInfo {
std::string uri;
std::string filename;
const char * dataBuffer;
size_t dataSize;
};
int getOpenId();
OpenInfo getOpenInfo();
// delete file
struct DeleteInfo {

View File

@@ -1,6 +1,7 @@
#include "interface.h"
int g_lastShareId = 0;
int g_lastOpenId = 0;
int g_lastDeleteId = 0;
int g_lastReceivedId = 0;
int g_frameCount = 0;
@@ -18,6 +19,18 @@ void updateMain() {
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();

View File

@@ -21,6 +21,12 @@ void interface_shareFile(
const char * dataBuffer,
size_t dataSize);
void interface_openFile(
const char * uri,
const char * filename,
const char * dataBuffer,
size_t dataSize);
void interface_deleteFile(
const char * uri,
const char * filename);