/* Copyright (C) 2008 The Android Open Source Project ** ** This software is licensed under the terms of the GNU General Public ** License version 2, as published by the Free Software Foundation, and ** may be copied, distributed, and modified under those terms. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. */ #include "android/avd/hw-config.h" #include "android/utils/ini.h" #include #include /* the global variable containing the hardware config for this device */ AndroidHwConfig android_hw[1]; int androidHwConfig_read( AndroidHwConfig* config, IniFile* ini ) { if (ini == NULL) return -1; /* use the magic of macros to implement the hardware configuration loaded */ #define HWCFG_BOOL(n,s,d,a,t) config->n = iniFile_getBoolean(ini, s, d); #define HWCFG_INT(n,s,d,a,t) config->n = iniFile_getInteger(ini, s, d); #define HWCFG_STRING(n,s,d,a,t) config->n = iniFile_getString(ini, s, d); #define HWCFG_DOUBLE(n,s,d,a,t) config->n = iniFile_getDouble(ini, s, d); #define HWCFG_DISKSIZE(n,s,d,a,t) config->n = iniFile_getDiskSize(ini, s, d); #include "android/avd/hw-config-defs.h" return 0; } int androidHwConfig_write( AndroidHwConfig* config, IniFile* ini ) { if (ini == NULL) return -1; /* use the magic of macros to implement the hardware configuration loaded */ #define HWCFG_BOOL(n,s,d,a,t) iniFile_setBoolean(ini, s, config->n); #define HWCFG_INT(n,s,d,a,t) iniFile_setInteger(ini, s, config->n); #define HWCFG_STRING(n,s,d,a,t) iniFile_setValue(ini, s, config->n); #define HWCFG_DOUBLE(n,s,d,a,t) iniFile_setDouble(ini, s, config->n); #define HWCFG_DISKSIZE(n,s,d,a,t) iniFile_setDiskSize(ini, s, config->n); #include "android/avd/hw-config-defs.h" return 0; }