mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-26 07:41:52 -05:00

* Fixed soh filters * add more makefile changes * almost ready * more updates * update * update * Update Makefiles to handle both platforms * Allow for overriding the CXX and CC executables * Restore original structure while supporting custom CXX flags * Remove some platform specific libs * Dynamic target name * Make X11 paths package-agnostic * Remove changes to `gfx_opengl.cpp` * Use OpenGL2 on MacOS instead of OpenGL3 * make it actually render something * render at least the first texture, still need to figure out the second one * Let’s use OpenGL 3 again * maybe this works to get the right texture? link's eyes still look off a bit * did this work? * set the platform to macos * actual numbers are right, but logic is ugly XXX/TODO, i know * add zlib to ldflags for ZAPDUtils * A bit of cleanup * Revert unneeded changes * Remove GL_CHECK * Fix issues with z64 branch * use an std::map instead of a giant array * three point filter fix (#2) * Fix mac compilation * fix audio for 64 bit * revert audio heap size, keep bigger pools * Add more Apple specific checks to our modifications * Add building instructions for macOS * Remove unecessary step from building instructions * Add missing SDL2 & GLEW to Linux LDLIBS * Update BUILDING.md Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Update soh/.gitignore to include other arch binaries Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Use right platform name for debugging window Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Fix stormlib on macos (arm64) * Simplify some of the ifdef checks * Revert an older no longer necessary fix * Remove remaining unecessary deviations * Update building instructions after StormLib changes * Feature: Use OpenGL 4.1 (#1) * Further tweak the BUILDING * Tidy up * reword -j message * Add Jenkins CI Support (#2) * Fix type issues * add target <appbundle> and <filledappbundle> add makefile targets to create an .app `filledappbundle` creates the target with the .otr included this should perhaps be moved to Application Support though * pull gcc's rpath from otool output * move make target to the end so it's not default * Add Jenkins and make exe in par with other platforms * Actually save build artefacts * Fix artefact path * Remove x11 mentions and linking (not used) * Update building instructions for generating app * use appsupport directory * Add new app icon * Update target to match macOS types * Update more audio types * fix null deref in Audio_PlayFanfare * Remove old import from z64 * address final nit with apple ifdefs Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com> Co-authored-by: Jeffrey Crowell <github@crowell.biz> Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
#pragma once
|
|
#include "Controller.h"
|
|
#if __APPLE__
|
|
#include <SDL.h>
|
|
#else
|
|
#include <SDL2/SDL.h>
|
|
#endif
|
|
|
|
#define INVALID_SDL_CONTROLLER_GUID (std::string("00000000000000000000000000000000"))
|
|
|
|
namespace Ship {
|
|
class SDLController : public Controller {
|
|
public:
|
|
SDLController(int32_t dwControllerNumber);
|
|
~SDLController();
|
|
|
|
void ReadFromSource();
|
|
void WriteToSource(ControllerCallback* controller);
|
|
bool Connected() const { return Cont != nullptr; }
|
|
bool CanRumble() const {
|
|
#if SDL_COMPILEDVERSION >= SDL_VERSIONNUM(2,0,18)
|
|
return SDL_GameControllerHasRumble(Cont);
|
|
#endif
|
|
return true;
|
|
}
|
|
|
|
std::string GetGuid() { return guid; };
|
|
|
|
bool HasPadConf() const { return true; }
|
|
std::optional<std::string> GetPadConfSection();
|
|
|
|
protected:
|
|
std::string GetControllerType();
|
|
void SetButtonMapping(const std::string& szButtonName, int32_t dwScancode);
|
|
std::string GetConfSection();
|
|
std::string GetBindingConfSection();
|
|
void CreateDefaultBinding();
|
|
void CreateDefaultPadConf();
|
|
static bool IsGuidInUse(const std::string& guid);
|
|
|
|
private:
|
|
SDL_GameController* Cont;
|
|
std::string guid;
|
|
std::map<int32_t, int16_t> ThresholdMapping;
|
|
|
|
void LoadAxisThresholds();
|
|
void NormalizeStickAxis(int16_t wAxisValueX, int16_t wAxisValueY, int16_t wAxisThreshold);
|
|
bool Open();
|
|
bool Close();
|
|
};
|
|
}
|