24 #define _DEFAULT_SOURCE
39 #define interface struct
60 #define CHECK_RESULT(result) {int r = (result); if (r < 0) return (r);}
111 C_PARAMS (
id && key);
116 GP_LOG_D (
"Setting key '%s' to value '%s' (%s)", key, value,
id);
139 unsigned int x, equals;
141 if ((f=fopen(settings_file,
"r"))==NULL) {
142 GP_LOG_D (
"Can't open settings file '%s' for reading.", settings_file);
149 if (!fgets(buf, 1023, f))
151 buf[strlen(buf)] = 0;
154 for (x=0; x<strlen(buf); x++)
160 GP_LOG_E (
"Incorrect settings format. Resetting.");
161 unlink(settings_file);
175 char buf[1024], *id, *key, *value;
179 SHGetFolderPath(NULL, CSIDL_PROFILE, NULL, 0, buf);
180 strcat (buf,
"\\.gphoto");
182 snprintf (buf,
sizeof(buf),
"%s/.gphoto", getenv (
"HOME"));
184 GP_LOG_D (
"Creating gphoto config directory ('%s')", buf);
189 SHGetFolderPath(NULL, CSIDL_PROFILE, NULL, 0, buf);
190 strcat(buf,
"\\.gphoto\\settings");
192 snprintf(buf,
sizeof(buf),
"%s/.gphoto/settings", getenv(
"HOME"));
198 GP_LOG_D (
"Loading settings from file '%s'.", buf);
200 if ((f=fopen(buf,
"r"))==NULL) {
201 GP_LOG_D (
"Can't open settings file '%s' for reading.", buf);
208 if (!fgets(buf, 1023, f))
211 buf[strlen(buf)-1] =
'\0';
212 id = strtok(buf,
"=");
214 key = strtok(NULL,
"=");
216 value = strtok(NULL,
"\0");
236 SHGetFolderPath(NULL, CSIDL_PROFILE, NULL, 0, buf);
237 strcat(buf,
"\\.gphoto\\settings");
239 snprintf (buf,
sizeof(buf),
"%s/.gphoto/settings", getenv (
"HOME"));
245 if ((f=fopen(buf,
"w+"))==NULL) {
246 GP_LOG_E (
"Can't open settings file for writing.");
265 static int dump_settings (
void)
269 gp_debug_printf(GP_DEBUG_LOW,
"core",
"All settings:");
271 gp_debug_printf(GP_DEBUG_LOW,
"core",
"\t (%s) \"%s\" = \"%s\"",
glob_setting[x].
id,
274 gp_debug_printf(GP_DEBUG_LOW,
"core",
"\tNone");
int gp_system_mkdir(const char *dirname)
mkdir UNIX functionality
#define GP_OK
Everything is OK.
#define GP_ERROR
Generic Error.
static int glob_setting_count
static int verify_settings(char *settings_file)
int gp_setting_get(char *id, char *key, char *value)
Retrieve a specific gphoto setting.
static int save_settings(void)
static int load_settings(void)
int gp_setting_set(char *id, char *key, char *value)
Set a specific gphoto setting.
static Setting glob_setting[512]