mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-03-23 12:20:59 +08:00
ggwave-gui : add interface_openFile
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user