New platform APIs and new OpenAL cmake

master
Eduardo Bart 11 years ago
parent 5b573afdfc
commit e4e3d7d053

@ -4,7 +4,7 @@
# OPENAL_LIBRARY - the OPENAL library
SET(OPENAL_APPLE_PATHS ~/Library/Frameworks /Library/Frameworks)
FIND_PATH(OPENAL_INCLUDE_DIR NAMES AL/al.h PATHS ${OPENAL_APPLE_PATHS})
FIND_PATH(OPENAL_INCLUDE_DIR al.h PATH_SUFFIXES AL OpenAL PATHS ${OPENAL_APPLE_PATHS})
SET(_OPENAL_STATIC_LIBS libOpenAL.a libal.a libopenal.a libOpenAL32.a)
SET(_OPENAL_SHARED_LIBS libOpenAL.dll.a libal.dll.a libopenal.dll.a libOpenAL32.dll.a OpenAL al openal OpenAL32)
IF(USE_STATIC_LIBS)

@ -81,7 +81,10 @@ void Application::registerLuaFunctions()
g_lua.registerSingletonClass("g_platform");
g_lua.bindSingletonFunction("g_platform", "spawnProcess", &Platform::spawnProcess, &g_platform);
g_lua.bindSingletonFunction("g_platform", "getProcessId", &Platform::getProcessId, &g_platform);
g_lua.bindSingletonFunction("g_platform", "isProcessRunning", &Platform::isProcessRunning, &g_platform);
g_lua.bindSingletonFunction("g_platform", "copyFile", &Platform::copyFile, &g_platform);
g_lua.bindSingletonFunction("g_platform", "fileExists", &Platform::fileExists, &g_platform);
g_lua.bindSingletonFunction("g_platform", "killProcess", &Platform::killProcess, &g_platform);
g_lua.bindSingletonFunction("g_platform", "getTempPath", &Platform::getTempPath, &g_platform);
g_lua.bindSingletonFunction("g_platform", "openUrl", &Platform::openUrl, &g_platform);
g_lua.bindSingletonFunction("g_platform", "getCPUName", &Platform::getCPUName, &g_platform);

@ -32,8 +32,11 @@ public:
void processArgs(std::vector<std::string>& args);
bool spawnProcess(const std::string& process, const std::vector<std::string>& args);
int getProcessId();
bool isProcessRunning(const std::string& name);
bool killProcess(const std::string& name);
std::string getTempPath();
bool copyFile(std::string from, std::string to);
bool fileExists(const std::string& file);
void openUrl(std::string url);
std::string getCPUName();
double getTotalSystemMemory();

@ -64,6 +64,16 @@ int Platform::getProcessId()
return getpid();
}
bool Platform::isProcessRunning(const std::string& name)
{
return false;
}
bool Platform::killProcess(const std::string& name)
{
return false;
}
std::string Platform::getTempPath()
{
return "/tmp/";
@ -74,6 +84,12 @@ bool Platform::copyFile(std::string from, std::string to)
return system(stdext::format("/bin/cp '%s' '%s'", from, to).c_str()) == 0;
}
bool Platform::fileExists(const std::string& file)
{
struct stat buffer;
return (stat(file.c_str(), &buffer) == 0);
}
void Platform::openUrl(std::string url)
{
if(url.find("http://") == std::string::npos)

@ -61,6 +61,27 @@ int Platform::getProcessId()
return GetCurrentProcessId();
}
bool Platform::isProcessRunning(const std::string& name)
{
if(FindWindowA(name.c_str(), NULL) != NULL)
return true;
return false;
}
bool Platform::killProcess(const std::string& name)
{
HWND window = FindWindowA(name.c_str(), NULL);
if(window == NULL)
return false;
DWORD pid = GetProcessId(window);
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
if(handle == NULL)
return false;
bool ok = TerminateProcess(handle, 1) != 0;
CloseHandle(handle);
return ok;
}
std::string Platform::getTempPath()
{
wchar_t path[MAX_PATH];
@ -68,6 +89,13 @@ std::string Platform::getTempPath()
return stdext::utf16_to_utf8(path);
}
bool Platform::fileExists(const std::string& file)
{
std::wstring wfile = stdext::utf8_to_utf16(file);
DWORD dwAttrib = GetFileAttributesW(wfile.c_str());
return (dwAttrib != INVALID_FILE_ATTRIBUTES && !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
bool Platform::copyFile(std::string from, std::string to)
{
boost::replace_all(from, "/", "\\");

@ -27,8 +27,8 @@
#define AL_LIBTYPE_STATIC
#include <AL/al.h>
#include <AL/alc.h>
#include <al.h>
#include <alc.h>
class SoundManager;
class SoundSource;

Loading…
Cancel
Save