mirror of
https://github.com/elasota/Aerofoil.git
synced 2026-02-04 18:44:55 +00:00
Compare commits
15 Commits
1.1.2
...
549e1ec3e6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
549e1ec3e6 | ||
|
|
141b176574 | ||
|
|
18a0d3a42a | ||
|
|
af6d18829e | ||
|
|
4182a1a107 | ||
|
|
5643f464cc | ||
|
|
a04c5f10df | ||
|
|
3e13877788 | ||
|
|
53ff18d337 | ||
|
|
e33c01cc40 | ||
|
|
0c891d3117 | ||
|
|
e4d2d9f9a4 | ||
|
|
41c0312921 | ||
|
|
e78b01a5f3 | ||
|
|
d470bb5eeb |
@@ -15,8 +15,8 @@ android {
|
|||||||
}
|
}
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
versionCode 16
|
versionCode 17
|
||||||
versionName "1.1.2"
|
versionName "1.1.3"
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
ndkBuild {
|
ndkBuild {
|
||||||
arguments "APP_PLATFORM=android-16"
|
arguments "APP_PLATFORM=android-16"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#include "GpThreadEvent_Cpp11.h"
|
#include "GpThreadEvent_Cpp11.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
GpThreadEvent_Cpp11::GpThreadEvent_Cpp11(bool autoReset, bool startSignaled)
|
GpThreadEvent_Cpp11::GpThreadEvent_Cpp11(bool autoReset, bool startSignaled)
|
||||||
: m_flag(startSignaled)
|
: m_flag(startSignaled)
|
||||||
, m_autoReset(autoReset)
|
, m_autoReset(autoReset)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#include "UTF8.h"
|
#include "UTF8.h"
|
||||||
|
|
||||||
#if defined(__CYGWIN__) || defined(__MACOS__)
|
#if defined(__CYGWIN__) || defined(__MACOS__) || defined(__linux)
|
||||||
typedef off_t off64_t;
|
typedef off_t off64_t;
|
||||||
#define fstat64 fstat
|
#define fstat64 fstat
|
||||||
#define fseek64 fseek
|
#define fseek64 fseek
|
||||||
@@ -305,6 +305,8 @@ GpIOStream *GpFileSystem_X::OpenFileNested(PortabilityLayer::VirtualDirectory_t
|
|||||||
FILE *f = fopen(resolvedPath.c_str(), mode);
|
FILE *f = fopen(resolvedPath.c_str(), mode);
|
||||||
if (!f)
|
if (!f)
|
||||||
{
|
{
|
||||||
|
fprintf(stderr, "GpFileSystem_X: Cannot open \"%s\"\n",
|
||||||
|
resolvedPath.c_str());
|
||||||
free(objStorage);
|
free(objStorage);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include "GpApplicationName.h"
|
#include "GpApplicationName.h"
|
||||||
#include "GpIOStream.h"
|
#include "GpIOStream.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,9 @@
|
|||||||
#include "IGpVOSEventQueue.h"
|
#include "IGpVOSEventQueue.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#ifdef __MACOS__
|
||||||
#include "MacInit.h"
|
#include "MacInit.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
GpXGlobals g_gpXGlobals;
|
GpXGlobals g_gpXGlobals;
|
||||||
|
|
||||||
@@ -28,7 +30,7 @@ IGpDisplayDriver *GpDriver_CreateDisplayDriver_SDL_GL2(const GpDisplayDriverProp
|
|||||||
IGpAudioDriver *GpDriver_CreateAudioDriver_SDL(const GpAudioDriverProperties &properties);
|
IGpAudioDriver *GpDriver_CreateAudioDriver_SDL(const GpAudioDriverProperties &properties);
|
||||||
IGpInputDriver *GpDriver_CreateInputDriver_SDL2_Gamepad(const GpInputDriverProperties &properties);
|
IGpInputDriver *GpDriver_CreateInputDriver_SDL2_Gamepad(const GpInputDriverProperties &properties);
|
||||||
|
|
||||||
#ifdef __MACOS__
|
#ifndef _WIN32
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
#else
|
#else
|
||||||
SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[])
|
SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[])
|
||||||
|
|||||||
@@ -3,16 +3,13 @@
|
|||||||
#include "IGpClipboardContents.h"
|
#include "IGpClipboardContents.h"
|
||||||
#include "IGpThreadEvent.h"
|
#include "IGpThreadEvent.h"
|
||||||
|
|
||||||
#ifdef __MACOS__
|
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#else
|
|
||||||
#include "SDL2/SDL.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
struct GpSystemServices_X_ThreadStartParams
|
struct GpSystemServices_X_ThreadStartParams
|
||||||
{
|
{
|
||||||
@@ -52,13 +49,19 @@ void *GpSystemServices_X::CreateThread(ThreadFunc_t threadFunc, void *context)
|
|||||||
if (!evt)
|
if (!evt)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
pthread_t *threadPtr = static_cast<pthread_t*>(malloc(sizeof(pthread_t)));
|
||||||
|
if (!threadPtr)
|
||||||
|
{
|
||||||
|
evt->Destroy();
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
GpSystemServices_X_ThreadStartParams startParams;
|
GpSystemServices_X_ThreadStartParams startParams;
|
||||||
startParams.m_threadContext = context;
|
startParams.m_threadContext = context;
|
||||||
startParams.m_threadFunc = threadFunc;
|
startParams.m_threadFunc = threadFunc;
|
||||||
startParams.m_threadStartEvent = evt;
|
startParams.m_threadStartEvent = evt;
|
||||||
|
|
||||||
pthread_t thread = nullptr;
|
if (pthread_create(threadPtr, nullptr, StaticStartThread, &startParams) != 0)
|
||||||
if (pthread_create(&thread, nullptr, StaticStartThread, &startParams) != 0)
|
|
||||||
{
|
{
|
||||||
evt->Destroy();
|
evt->Destroy();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@@ -67,7 +70,7 @@ void *GpSystemServices_X::CreateThread(ThreadFunc_t threadFunc, void *context)
|
|||||||
evt->Wait();
|
evt->Wait();
|
||||||
evt->Destroy();
|
evt->Destroy();
|
||||||
|
|
||||||
return thread;
|
return static_cast<void*>(threadPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GpSystemServices_X::Beep() const
|
bool GpSystemServices_X::Beep() const
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ add_library(PortabilityLayer STATIC
|
|||||||
PortabilityLayer/BitmapImage.cpp
|
PortabilityLayer/BitmapImage.cpp
|
||||||
PortabilityLayer/ByteSwap.cpp
|
PortabilityLayer/ByteSwap.cpp
|
||||||
PortabilityLayer/CFileStream.cpp
|
PortabilityLayer/CFileStream.cpp
|
||||||
|
PortabilityLayer/CompositeRenderedFont.cpp
|
||||||
PortabilityLayer/DeflateCodec.cpp
|
PortabilityLayer/DeflateCodec.cpp
|
||||||
PortabilityLayer/DialogManager.cpp
|
PortabilityLayer/DialogManager.cpp
|
||||||
PortabilityLayer/DisplayDeviceManager.cpp
|
PortabilityLayer/DisplayDeviceManager.cpp
|
||||||
@@ -240,7 +241,8 @@ target_include_directories(GpApp PRIVATE
|
|||||||
target_link_libraries(GpApp PortabilityLayer)
|
target_link_libraries(GpApp PortabilityLayer)
|
||||||
|
|
||||||
if(CMAKE_HOST_UNIX)
|
if(CMAKE_HOST_UNIX)
|
||||||
add_executable(${EXECNAME}
|
set(EXEC_SOURCES )
|
||||||
|
list(APPEND EXEC_SOURCES
|
||||||
AerofoilPortable/GpSystemServices_POSIX.cpp
|
AerofoilPortable/GpSystemServices_POSIX.cpp
|
||||||
AerofoilPortable/GpThreadEvent_Cpp11.cpp
|
AerofoilPortable/GpThreadEvent_Cpp11.cpp
|
||||||
AerofoilPortable/GpAllocator_C.cpp
|
AerofoilPortable/GpAllocator_C.cpp
|
||||||
@@ -258,7 +260,15 @@ if(CMAKE_HOST_UNIX)
|
|||||||
AerofoilX/GpFileSystem_X.cpp
|
AerofoilX/GpFileSystem_X.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(${EXECNAME} PRIVATE
|
set(EXEC_LIBS )
|
||||||
|
list(APPEND EXEC_LIBS
|
||||||
|
${SDL2_LIBRARIES}
|
||||||
|
GpApp
|
||||||
|
GpShell
|
||||||
|
)
|
||||||
|
|
||||||
|
set(EXEC_INC_DIRS )
|
||||||
|
list(APPEND EXEC_INC_DIRS
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Common>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Common>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpCommon>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpCommon>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpShell>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpShell>
|
||||||
@@ -267,8 +277,22 @@ if(CMAKE_HOST_UNIX)
|
|||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/PortabilityLayer>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/PortabilityLayer>
|
||||||
${SDL2_INCLUDE_DIRS}
|
${SDL2_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
if(PLATFORM STREQUAL "MAC")
|
||||||
|
list(APPEND EXEC_SOURCES
|
||||||
|
AerofoilMac/AerofoilMac/AerofoilApplication.mm
|
||||||
|
AerofoilMac/AerofoilMac/MacInit.mm
|
||||||
|
)
|
||||||
|
list(APPEND EXEC_INC_DIRS
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/AerofoilMac/AerofoilMac>
|
||||||
|
)
|
||||||
|
list(APPEND EXEC_LIBS
|
||||||
|
"-framework Cocoa"
|
||||||
|
)
|
||||||
|
endif(PLATFORM STREQUAL "MAC")
|
||||||
|
|
||||||
target_link_libraries(${EXECNAME} ${SDL2_LIBRARIES} GpApp GpShell)
|
add_executable(${EXECNAME} ${EXEC_SOURCES})
|
||||||
|
target_include_directories(${EXECNAME} PRIVATE ${EXEC_INC_DIRS})
|
||||||
|
target_link_libraries(${EXECNAME} ${EXEC_LIBS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ void DisposCursors (void)
|
|||||||
|
|
||||||
void IncrementCursor (void)
|
void IncrementCursor (void)
|
||||||
{
|
{
|
||||||
if (animCursorH == 0)
|
if (animCursorH == nullptr)
|
||||||
InitAnimatedCursor(nil);
|
InitAnimatedCursor(nil);
|
||||||
if (animCursorH)
|
if (animCursorH)
|
||||||
{
|
{
|
||||||
@@ -356,7 +356,7 @@ void IncrementCursor (void)
|
|||||||
|
|
||||||
void DecrementCursor (void)
|
void DecrementCursor (void)
|
||||||
{
|
{
|
||||||
if (animCursorH == 0)
|
if (animCursorH == nullptr)
|
||||||
InitAnimatedCursor(nil);
|
InitAnimatedCursor(nil);
|
||||||
if (animCursorH)
|
if (animCursorH)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
#define GP_BUILD_VERSION_MAJOR 1
|
#define GP_BUILD_VERSION_MAJOR 1
|
||||||
#define GP_BUILD_VERSION_MINOR 1
|
#define GP_BUILD_VERSION_MINOR 1
|
||||||
#define GP_BUILD_VERSION_UPDATE 2
|
#define GP_BUILD_VERSION_UPDATE 3
|
||||||
|
|
||||||
#define GP_APPLICATION_VERSION_STRING "1.1.2"
|
#define GP_APPLICATION_VERSION_STRING "1.1.3"
|
||||||
#define GP_APPLICATION_COPYRIGHT_STRING "2019-2021 Gale Force Games LLC"
|
#define GP_APPLICATION_COPYRIGHT_STRING "2019-2022 Gale Force Games LLC"
|
||||||
#define GP_APPLICATION_WEBSITE_STRING "https://github.com/elasota/Aerofoil"
|
#define GP_APPLICATION_WEBSITE_STRING "https://github.com/elasota/Aerofoil"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
struct MMHandleBlock;
|
struct MMHandleBlock;
|
||||||
@@ -24,6 +26,7 @@ class THandle final : public THandleBase
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
THandle();
|
THandle();
|
||||||
|
THandle(std::nullptr_t);
|
||||||
THandle(T **hdl);
|
THandle(T **hdl);
|
||||||
explicit THandle(PortabilityLayer::MMHandleBlock *hdl);
|
explicit THandle(PortabilityLayer::MMHandleBlock *hdl);
|
||||||
THandle(const THandle<T> &other);
|
THandle(const THandle<T> &other);
|
||||||
@@ -46,6 +49,9 @@ public:
|
|||||||
bool operator==(T** other) const;
|
bool operator==(T** other) const;
|
||||||
bool operator!=(T** other) const;
|
bool operator!=(T** other) const;
|
||||||
|
|
||||||
|
bool operator==(std::nullptr_t) const;
|
||||||
|
bool operator!=(std::nullptr_t) const;
|
||||||
|
|
||||||
static THandle<T> NullPtr();
|
static THandle<T> NullPtr();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -74,6 +80,12 @@ inline THandle<T>::THandle()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline THandle<T>::THandle(std::nullptr_t)
|
||||||
|
: THandleBase(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
inline THandle<T>::THandle(T **hdl)
|
inline THandle<T>::THandle(T **hdl)
|
||||||
: THandleBase(reinterpret_cast<PortabilityLayer::MMHandleBlock*>(hdl))
|
: THandleBase(reinterpret_cast<PortabilityLayer::MMHandleBlock*>(hdl))
|
||||||
@@ -107,17 +119,33 @@ inline bool THandle<T>::operator!=(const THandle<T> &other) const
|
|||||||
template<class T>
|
template<class T>
|
||||||
inline bool THandle<T>::operator==(T** other) const
|
inline bool THandle<T>::operator==(T** other) const
|
||||||
{
|
{
|
||||||
|
if (other == nullptr)
|
||||||
|
return m_hdl == nullptr;
|
||||||
return static_cast<void*>(&m_hdl->m_contents) == static_cast<void*>(other);
|
return static_cast<void*>(&m_hdl->m_contents) == static_cast<void*>(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
inline bool THandle<T>::operator!=(T** other) const
|
inline bool THandle<T>::operator!=(T** other) const
|
||||||
{
|
{
|
||||||
|
if (other == nullptr)
|
||||||
|
return m_hdl != nullptr;
|
||||||
return static_cast<void*>(&m_hdl->m_contents) != static_cast<void*>(other);
|
return static_cast<void*>(&m_hdl->m_contents) != static_cast<void*>(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
THandle<T> THandle<T>::NullPtr()
|
inline bool THandle<T>::operator==(std::nullptr_t) const
|
||||||
|
{
|
||||||
|
return m_hdl == nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline bool THandle<T>::operator!=(std::nullptr_t) const
|
||||||
|
{
|
||||||
|
return m_hdl != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline THandle<T> THandle<T>::NullPtr()
|
||||||
{
|
{
|
||||||
return THandle<T>(static_cast<PortabilityLayer::MMHandleBlock *>(nullptr));
|
return THandle<T>(static_cast<PortabilityLayer::MMHandleBlock *>(nullptr));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "DeflateCodec.h"
|
#include "DeflateCodec.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
@@ -323,6 +324,11 @@ namespace PortabilityLayer
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (numFiles != 0)
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
bool failed = false;
|
bool failed = false;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,12 @@ class HIDDeviceUSB implements HIDDevice {
|
|||||||
public String getSerialNumber() {
|
public String getSerialNumber() {
|
||||||
String result = null;
|
String result = null;
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
result = mDevice.getSerialNumber();
|
try {
|
||||||
|
result = mDevice.getSerialNumber();
|
||||||
|
}
|
||||||
|
catch (SecurityException exception) {
|
||||||
|
//Log.w(TAG, "App permissions mean we cannot get serial number for device " + getDeviceName() + " message: " + exception.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
result = "";
|
result = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user