#ifndef _DRIVERS_CONFIGH typedef struct { char *name; void *ptr; int len; } CFGSTRUCT; void SaveFCEUConfig(char *filename, CFGSTRUCT *cfgst); void LoadFCEUConfig(char *filename, CFGSTRUCT *cfgst); /* Macros for building CFGSTRUCT structures. */ /* CFGSTRUCT structures must always end with ENDCFGSTRUCT */ #define ENDCFGSTRUCT { 0,0,0 } /* When this macro is used, the config loading/saving code will parse the new config structure until the end of it is detected, then it will continue parsing the original config structure. */ #define ADDCFGSTRUCT(x) { 0,&x,0 } /* Oops. The NAC* macros shouldn't have the # in front of the w, but fixing this would break configuration files of previous versions and it isn't really hurting much. */ /* Single piece of data(integer). */ #define AC(x) { #x,&x,sizeof(x)} #define NAC(w,x) { #w,&x,sizeof(x)} /* Array. */ #define ACA(x) {#x,x,sizeof(x)} #define NACA(w,x) {#w,x,sizeof(x)} /* String(pointer) with automatic memory allocation. */ #define ACS(x) {#x,&x,0} #define NACS(w,x) {#w,&x,0} #define _DRIVERS_CONFIGH #endif