Update to latest simapi, allow sim strings in configs
This commit is contained in:
parent
d97118e19b
commit
f2ba345cab
|
|
@ -8,6 +8,7 @@
|
|||
#include "usbhapticdevice.h"
|
||||
#include "../../helper/confighelper.h"
|
||||
#include "../../simulatorapi/simapi/simapi/simdata.h"
|
||||
#include "../../simulatorapi/simapi/simapi/simmapper.h"
|
||||
#include "../../slog/slog.h"
|
||||
|
||||
#define kmhtoms 0.277778
|
||||
|
|
@ -63,23 +64,33 @@ int loadtyreconfig(SimData* simdata, char* configfile)
|
|||
if(config_car != NULL)
|
||||
{
|
||||
const char* car;
|
||||
int sim;
|
||||
const char* simstr;
|
||||
int sim = 0;
|
||||
double tyre0;
|
||||
double tyre1;
|
||||
double tyre2;
|
||||
double tyre3;
|
||||
config_setting_lookup_string(config_car, "car", &car);
|
||||
config_setting_lookup_int(config_car, "sim", &sim);
|
||||
config_setting_lookup_float(config_car, "tyre0", &tyre0);
|
||||
config_setting_lookup_float(config_car, "tyre1", &tyre1);
|
||||
config_setting_lookup_float(config_car, "tyre2", &tyre2);
|
||||
config_setting_lookup_float(config_car, "tyre3", &tyre3);
|
||||
int found = config_setting_lookup_string(config_car, "sim", &simstr);
|
||||
if(found == 0)
|
||||
{
|
||||
int found = config_setting_lookup_int(config_car, "sim", &sim);
|
||||
}
|
||||
else
|
||||
{
|
||||
sim = simapi_strtogame(simstr);
|
||||
}
|
||||
|
||||
|
||||
if(simdata->car != NULL && car != NULL)
|
||||
{
|
||||
if(simdata->car[0] != '\0' && car[0] != '\0')
|
||||
{
|
||||
if (strcicmp(car, simdata->car) == 0 && sim == simdata->sim)
|
||||
if (strcicmp(car, simdata->car) == 0 && sim == simdata->simexe)
|
||||
{
|
||||
slogt("found saved car %s with tyre diameters %f %f %f %f", car, tyre0, tyre1, tyre2, tyre3);
|
||||
simdata->tyrediameter[0] = tyre0;
|
||||
|
|
@ -131,7 +142,7 @@ int savetyreconfig(SimData* simdata, char* configfile)
|
|||
setting = config_setting_add(carobject, "car", CONFIG_TYPE_STRING);
|
||||
config_setting_set_string(setting, simdata->car);
|
||||
setting = config_setting_add(carobject, "sim", CONFIG_TYPE_INT);
|
||||
config_setting_set_int(setting, simdata->sim);
|
||||
config_setting_set_string(setting, simapi_gametostr(simdata->simexe));
|
||||
setting = config_setting_add(carobject, "tyre0", CONFIG_TYPE_FLOAT);
|
||||
config_setting_set_float(setting, simdata->tyrediameter[0]);
|
||||
setting = config_setting_add(carobject, "tyre1", CONFIG_TYPE_FLOAT);
|
||||
|
|
|
|||
|
|
@ -11,9 +11,12 @@
|
|||
|
||||
#include "confighelper.h"
|
||||
|
||||
|
||||
#include "../slog/slog.h"
|
||||
#include "parameters.h"
|
||||
|
||||
#include "../simulatorapi/simapi/simapi/simmapper.h"
|
||||
|
||||
#include <pulse/pulseaudio.h>
|
||||
|
||||
int strcicmp(char const *a, char const *b)
|
||||
|
|
@ -25,34 +28,6 @@ int strcicmp(char const *a, char const *b)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
int strtogame(const char* game, MonocoqueSettings* ms)
|
||||
{
|
||||
slogd("Checking for %s in list of supported simulators.", game);
|
||||
if (strcicmp(game, "ac") == 0)
|
||||
{
|
||||
slogd("Setting simulator to Assetto Corsa");
|
||||
ms->sim_name = SIMULATOR_ASSETTO_CORSA;
|
||||
}
|
||||
else if (strcicmp(game, "rf2") == 0)
|
||||
{
|
||||
slogd("Setting simulator to RFactor 2");
|
||||
ms->sim_name = SIMULATOR_RFACTOR2;
|
||||
}
|
||||
else
|
||||
if (strcicmp(game, "test") == 0)
|
||||
{
|
||||
slogd("Setting simulator to Test Data");
|
||||
ms->sim_name = SIMULATOR_SIMAPI_TEST;
|
||||
}
|
||||
else
|
||||
{
|
||||
slogi("%s does not appear to be a supported simulator.", game);
|
||||
return MONOCOQUE_ERROR_INVALID_SIM;
|
||||
}
|
||||
return MONOCOQUE_ERROR_NONE;
|
||||
}
|
||||
|
||||
int strtoeffecttype(const char* effect, DeviceSettings* ds)
|
||||
{
|
||||
ds->is_valid = false;
|
||||
|
|
@ -226,6 +201,22 @@ int strtodev(const char* device_type, const char* device_subtype, DeviceSettings
|
|||
return MONOCOQUE_ERROR_NONE;
|
||||
}
|
||||
|
||||
int getsimfromconfig(config_setting_t* c)
|
||||
{
|
||||
int sim = 0;
|
||||
const char* simstr = NULL;
|
||||
int found = config_setting_lookup_string(c, "sim", &simstr);
|
||||
if(found == 0)
|
||||
{
|
||||
int found = config_setting_lookup_int(c, "sim", &sim);
|
||||
}
|
||||
else
|
||||
{
|
||||
sim = simapi_strtogame(simstr);
|
||||
}
|
||||
return sim;
|
||||
}
|
||||
|
||||
int getNumberOfConfigs(const char* config_file_str)
|
||||
{
|
||||
config_t cfg;
|
||||
|
|
@ -273,7 +264,7 @@ int getconfigtouse2(const char* config_file_str, char* car, int sim)
|
|||
int found = 0;
|
||||
int csim = 0;
|
||||
slogt("sim is %i", sim);
|
||||
config_setting_lookup_int(config_config, "sim", &csim);
|
||||
csim = getsimfromconfig(config_config);
|
||||
if (csim != sim)
|
||||
{
|
||||
slogt("rejected config %i", j);
|
||||
|
|
@ -330,7 +321,7 @@ int getconfigtouse1(const char* config_file_str, char* car, int sim)
|
|||
int found = 0;
|
||||
int csim = 0;
|
||||
slogt("sim is %i", sim);
|
||||
config_setting_lookup_int(config_config, "sim", &csim);
|
||||
csim = getsimfromconfig(config_config);
|
||||
if (csim != sim)
|
||||
{
|
||||
slogt("rejected config %i", j);
|
||||
|
|
@ -398,7 +389,7 @@ int getconfigtouse(const char* config_file_str, char* car, int sim)
|
|||
int found = 0;
|
||||
int csim = 0;
|
||||
slogt("sim is %i", sim);
|
||||
config_setting_lookup_int(config_config, "sim", &csim);
|
||||
csim = getsimfromconfig(config_config);
|
||||
if (csim != sim && csim != 0)
|
||||
{
|
||||
slogt("rejected config %i", j);
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 6b6532795f97304bed8aa9d51ef6163865109b6a
|
||||
Subproject commit 7dd3b3b0cbdf69ac0fcd06452aa4fc543f0d5a5b
|
||||
Loading…
Reference in New Issue