Move FindResource to the interface as in QT it will be handled differently.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
This commit is contained in:
Andrea Odetti 2017-07-02 20:53:03 +01:00
parent ce124e0aa0
commit 0c37816c28
4 changed files with 44 additions and 31 deletions

View file

@ -45,6 +45,7 @@ add_executable(applen
source/frontends/ncurses/asciiart.cpp
source/frontends/ncurses/input.cpp
source/frontends/ncurses/benchmark.cpp
source/frontends/ncurses/resources.cpp
)
target_link_libraries(applen

View file

@ -0,0 +1,39 @@
#include "StdAfx.h"
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "Log.h"
#include "linux/wwrapper.h"
HRSRC FindResource(void *, const std::string & filename, const char *)
{
HRSRC result;
if (!filename.empty())
{
const std::string path = "resource/" + filename;
int fd = open(path.c_str(), O_RDONLY);
if (fd != -1)
{
struct stat stdbuf;
if ((fstat(fd, &stdbuf) == 0) && S_ISREG(stdbuf.st_mode))
{
const off_t size = stdbuf.st_size;
result.data.resize(size);
ssize_t rd = read(fd, result.data.data(), size);
}
close(fd);
}
}
if (result.data.empty())
{
LogFileOutput("FindResource: could not load resource %s\n", filename.c_str());
}
return result;
}

View file

@ -1,5 +1,9 @@
#pragma once
// Resources
HRSRC FindResource(void *, const std::string & filename, const char *);
// Frame
void FrameDrawDiskLEDS(HDC x);

View file

@ -177,37 +177,6 @@ std::string MAKEINTRESOURCE(int x)
return std::string();
}
HRSRC FindResource(void *, const std::string & filename, const char *)
{
HRSRC result;
if (!filename.empty())
{
const std::string path = "resource/" + filename;
int fd = open(path.c_str(), O_RDONLY);
if (fd != -1)
{
struct stat stdbuf;
if ((fstat(fd, &stdbuf) == 0) && S_ISREG(stdbuf.st_mode))
{
const off_t size = stdbuf.st_size;
result.data.resize(size);
ssize_t rd = read(fd, result.data.data(), size);
}
close(fd);
}
}
if (result.data.empty())
{
LogFileOutput("FindResource: could not load resource %s\n", filename.c_str());
}
return result;
}
DWORD SizeofResource(void *, const HRSRC & res)
{
return res.data.size();