Re #307 Added GfParmShutdown, GfParmRemoveSection and renamed GfParmRemove to GfParmExistsSection (Warning: this revision does not compile)
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@3562 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 7aa602429202a8ad7eb314567b8d165c7ce1f8a4 Former-commit-id: 2616e8b3526f997efae3fef8ff20e7f2c9a73ab3
This commit is contained in:
parent
691299895a
commit
f7a7800687
4 changed files with 45 additions and 7 deletions
|
@ -1762,6 +1762,37 @@ GfParmRemove (void *parmHandle, const char *sectionName, const char *paramName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Remove a section with given path.
|
||||||
|
@ingroup conf
|
||||||
|
@param handle handle of parameters
|
||||||
|
@param path path of section
|
||||||
|
@return 0 Ok
|
||||||
|
<br>-1 Error
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
GfParmRemoveSection (void *handle, const char *path)
|
||||||
|
{
|
||||||
|
struct parmHandle *parmHandle = (struct parmHandle *)handle;
|
||||||
|
struct parmHeader *conf;
|
||||||
|
struct section *section;
|
||||||
|
|
||||||
|
if ((parmHandle == NULL) || (parmHandle->magic != PARM_MAGIC)) {
|
||||||
|
GfLogError ("GfParmRemoveSection: bad handle (%p)\n", parmHandle);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
conf = parmHandle->conf;
|
||||||
|
|
||||||
|
section = (struct section *)GfHashGetStr (conf->sectionHash, path);
|
||||||
|
if (!section) {
|
||||||
|
GfLogError ("GfParmRemoveSection: Section \"%s\" not found\n", path);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
removeSection (conf, section);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void parmClean (struct parmHeader *conf)
|
static void parmClean (struct parmHeader *conf)
|
||||||
{
|
{
|
||||||
struct section *section;
|
struct section *section;
|
||||||
|
@ -1868,6 +1899,7 @@ void GfParmReleaseHandle (void *parmHandle)
|
||||||
static void
|
static void
|
||||||
evalUnit (char *unit, tdble *dest, int invert)
|
evalUnit (char *unit, tdble *dest, int invert)
|
||||||
{
|
{
|
||||||
|
// TODO: Use a static std::map<const char*, tdble> to make this code faster ?
|
||||||
tdble coeff = 1.0;
|
tdble coeff = 1.0;
|
||||||
|
|
||||||
// SI units.
|
// SI units.
|
||||||
|
@ -1882,7 +1914,7 @@ evalUnit (char *unit, tdble *dest, int invert)
|
||||||
if ((strcmp(unit, "l") == 0) || (strcmp(unit, "litre") == 0)) return;
|
if ((strcmp(unit, "l") == 0) || (strcmp(unit, "litre") == 0)) return;
|
||||||
|
|
||||||
// Non-SI units conversion
|
// Non-SI units conversion
|
||||||
// (please keep the order of the following tests : it is staticstically optimized).
|
// (please keep the order of the following tests : it is statistically optimized).
|
||||||
if (strcmp(unit, "deg") == 0) {
|
if (strcmp(unit, "deg") == 0) {
|
||||||
coeff = (float) (M_PI/180.0); /* rad */
|
coeff = (float) (M_PI/180.0); /* rad */
|
||||||
} else if ((strcmp(unit, "lbs") == 0) || (strcmp(unit, "lb") == 0)) {
|
} else if ((strcmp(unit, "lbs") == 0) || (strcmp(unit, "lb") == 0)) {
|
||||||
|
@ -2168,10 +2200,10 @@ GfParmGetEltNb (void *handle, const char *path)
|
||||||
@ingroup paramsdata
|
@ingroup paramsdata
|
||||||
@param handle handle of parameters
|
@param handle handle of parameters
|
||||||
@param path path of section
|
@param path path of section
|
||||||
@return 0 if doesn't exist, not 0 otherwise.
|
@return 0 if doesn't exist, 1 otherwise.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
GfParmExists (void *handle, const char *path)
|
GfParmExistsSection (void *handle, const char *path)
|
||||||
{
|
{
|
||||||
struct parmHandle *parmHandle = (struct parmHandle *)handle;
|
struct parmHandle *parmHandle = (struct parmHandle *)handle;
|
||||||
struct parmHeader *conf;
|
struct parmHeader *conf;
|
||||||
|
@ -2186,7 +2218,7 @@ GfParmExists (void *handle, const char *path)
|
||||||
|
|
||||||
section = (struct section *)GfHashGetStr (conf->sectionHash, path);
|
section = (struct section *)GfHashGetStr (conf->sectionHash, path);
|
||||||
|
|
||||||
return section != 0;
|
return section != 0 ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -473,6 +473,9 @@ void GfShutdown(void)
|
||||||
// Shutdown the active profilers and dump the report if any.
|
// Shutdown the active profilers and dump the report if any.
|
||||||
GfProfStopActiveProfiles();
|
GfProfStopActiveProfiles();
|
||||||
GfProfPrintReport();
|
GfProfPrintReport();
|
||||||
|
|
||||||
|
// Shutdown the params system.
|
||||||
|
GfParmShutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Restart the gaming framework (restart the current process).
|
/** Restart the gaming framework (restart the current process).
|
||||||
|
|
|
@ -367,7 +367,8 @@ TGF_API void *GfParmMergeHandles(void *ref, void *tgt, int mode);
|
||||||
TGF_API int GfParmGetNumBoundaries(void *handle, char *path, char *key, tdble *min, tdble *max);
|
TGF_API int GfParmGetNumBoundaries(void *handle, char *path, char *key, tdble *min, tdble *max);
|
||||||
|
|
||||||
TGF_API void GfParmRemove(void *handle, const char *path, const char *key);
|
TGF_API void GfParmRemove(void *handle, const char *path, const char *key);
|
||||||
TGF_API int GfParmExists(void *handle, const char *path);
|
TGF_API int GfParmRemoveSection (void *handle, const char *path);
|
||||||
|
TGF_API int GfParmExistsSection(void *handle, const char *path);
|
||||||
TGF_API int GfParmGetEltNb(void *handle, const char *path);
|
TGF_API int GfParmGetEltNb(void *handle, const char *path);
|
||||||
TGF_API int GfParmListSeekFirst(void *handle, const char *path);
|
TGF_API int GfParmListSeekFirst(void *handle, const char *path);
|
||||||
TGF_API int GfParmListSeekNext(void *handle, const char *path);
|
TGF_API int GfParmListSeekNext(void *handle, const char *path);
|
||||||
|
@ -380,6 +381,8 @@ TGF_API void GfParmSetVariable(void *handle, char const *path, char const *key,
|
||||||
TGF_API void GfParmRemoveVariable(void *handle, char const *path, char const *key);
|
TGF_API void GfParmRemoveVariable(void *handle, char const *path, char const *key);
|
||||||
TGF_API tdble GfParmGetVariable(void *handle, char const *path, char const *key);
|
TGF_API tdble GfParmGetVariable(void *handle, char const *path, char const *key);
|
||||||
|
|
||||||
|
TGF_API void GfParmShutdown (void);
|
||||||
|
|
||||||
/********************************************************************************
|
/********************************************************************************
|
||||||
* Log/Trace Interface *
|
* Log/Trace Interface *
|
||||||
* - Write formated string messages at run-time to the log stream, *
|
* - Write formated string messages at run-time to the log stream, *
|
||||||
|
|
|
@ -332,7 +332,7 @@ PutPlayerSettings(unsigned index)
|
||||||
GraphHdle = GfParmReadFile(pszGraphFileName, GFPARM_RMODE_REREAD);
|
GraphHdle = GfParmReadFile(pszGraphFileName, GFPARM_RMODE_REREAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GfParmExists(GraphHdle, drvDispSecPath)) { // Change section name.
|
if (GfParmExistsSection(GraphHdle, drvDispSecPath)) { // Change section name.
|
||||||
GfParmListRenameElt(GraphHdle, GR_SCT_DISPMODE, pszOldDispName, player->dispName());
|
GfParmListRenameElt(GraphHdle, GR_SCT_DISPMODE, pszOldDispName, player->dispName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue