/******************************************************************* Registry Module *******************************************************************/ #include #include #define REGISTRY_C #include "registry.h" int get_color_conversion_type(); int get_idct_type(); int get_simd_mode(); int get_field_mode(); int get_resize_mode(); static const char REGISTRY_POSITION[] = "Software\\marumo\\mpeg2vid_vfp"; int get_color_conversion_type() { HKEY key; DWORD type; DWORD size; DWORD value; if(RegOpenKeyEx(HKEY_CURRENT_USER, REGISTRY_POSITION, 0, KEY_READ, &key) != ERROR_SUCCESS){ return 1; } type = REG_DWORD; size = sizeof(DWORD); if(RegQueryValueEx(key, "re_map", NULL, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS){ RegCloseKey(key); return 1; } RegCloseKey(key); if(value){ return 1; } return 0; } int get_idct_type() { HKEY key; DWORD type; DWORD size; DWORD value; if(RegOpenKeyEx(HKEY_CURRENT_USER, REGISTRY_POSITION, 0, KEY_READ, &key) != ERROR_SUCCESS){ return 1; } type = REG_DWORD; size = sizeof(DWORD); if(RegQueryValueEx(key, "idct_func", NULL, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS){ RegCloseKey(key); return 1; } RegCloseKey(key); return value; } int get_simd_mode() { HKEY key; DWORD type; DWORD size; DWORD value; if(RegOpenKeyEx(HKEY_CURRENT_USER, REGISTRY_POSITION, 0, KEY_READ, &key) != ERROR_SUCCESS){ return 0; } type = REG_DWORD; size = sizeof(DWORD); if(RegQueryValueEx(key, "simd", NULL, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS){ RegCloseKey(key); return 0; } RegCloseKey(key); if(value & 1){ return 1; } return 0; } int get_field_mode() { HKEY key; DWORD type; DWORD size; DWORD value; if(RegOpenKeyEx(HKEY_CURRENT_USER, REGISTRY_POSITION, 0, KEY_READ, &key) != ERROR_SUCCESS){ return 0; } type = REG_DWORD; size = sizeof(DWORD); if(RegQueryValueEx(key, "field_order", NULL, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS){ RegCloseKey(key); return 0; } RegCloseKey(key); return value; } int get_resize_mode() { HKEY key; DWORD type; DWORD size; DWORD value; if(RegOpenKeyEx(HKEY_CURRENT_USER, REGISTRY_POSITION, 0, KEY_READ, &key) != ERROR_SUCCESS){ return 0; } type = REG_DWORD; size = sizeof(DWORD); if(RegQueryValueEx(key, "aspect_ratio", NULL, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS){ RegCloseKey(key); return 0; } RegCloseKey(key); return value; }