Index: /branches/reyalp-flt/include/camera.h
===================================================================
--- /branches/reyalp-flt/include/camera.h	(revision 1514)
+++ /branches/reyalp-flt/include/camera.h	(revision 1515)
@@ -252,5 +252,4 @@
     int color_matrix1[18];      // DNG Color Matrix
     int cfa_pattern, calibration_illuminant1;
-    int gps_propcase;
 } _cam_sensor;
 
@@ -266,4 +265,27 @@
 extern _cam_screen camera_screen;
 
+typedef struct
+{
+    struct
+    {
+        int camera_name;
+    } params;
+    struct
+    {
+        int gps;
+        int orientation_sensor;
+        int tv;
+        int av;
+        int min_av;
+        int ev_correction_2;
+        int flash_mode;
+        int flash_fire;
+        int metering_mode;
+        int wb_adj;
+    } props;
+} _cam_info;
+
+extern _cam_info camera_info;
+
 //==========================================================
 
Index: /branches/reyalp-flt/core/dng.c
===================================================================
--- /branches/reyalp-flt/core/dng.c	(revision 1514)
+++ /branches/reyalp-flt/core/dng.c	(revision 1515)
@@ -229,6 +229,6 @@
  // filling EXIF fields
 
- if (camera_sensor.gps_propcase)
-    get_property_case(camera_sensor.gps_propcase, &gps_data, sizeof(tGPS));
+ if (camera_info.props.gps)
+    get_property_case(camera_info.props.gps, &gps_data, sizeof(tGPS));
  else
     memset(&gps_data, 0, sizeof(tGPS));
@@ -424,5 +424,5 @@
 
  // Shutter speed tags
- get_property_case(PROPCASE_TV, &short_prop_val, sizeof(short_prop_val));
+ get_property_case(camera_info.props.tv, &short_prop_val, sizeof(short_prop_val));
  cam_shutter[0]      = pow_calc( 1000000, 2, 1, -short_prop_val, 96);
  cam_apex_shutter[0] = short_prop_val;
@@ -434,12 +434,12 @@
  sprintf(cam_datetime, "%04d:%02d:%02d %02d:%02d:%02d", ttm->tm_year+1900, ttm->tm_mon+1, ttm->tm_mday, ttm->tm_hour, ttm->tm_min, ttm->tm_sec);
 
- get_property_case(PROPCASE_AV, &short_prop_val, sizeof(short_prop_val));
+ get_property_case(camera_info.props.av, &short_prop_val, sizeof(short_prop_val));
  cam_aperture[0]      = pow_calc( 10, 2, 1, short_prop_val, 192);
  cam_apex_aperture[0] = short_prop_val;
 
- get_property_case(PROPCASE_MIN_AV, &short_prop_val, sizeof(short_prop_val));
+ get_property_case(camera_info.props.min_av, &short_prop_val, sizeof(short_prop_val));
  cam_max_av[0] = short_prop_val;
 
- get_property_case(PROPCASE_EV_CORRECTION_2, &short_prop_val, sizeof(short_prop_val));
+ get_property_case(camera_info.props.ev_correction_2, &short_prop_val, sizeof(short_prop_val));
  cam_exp_bias[0] = short_prop_val;
 
@@ -449,11 +449,11 @@
  exif_data.effective_focal_length = get_effective_focal_length(shooting_get_zoom()) / 1000;
 
- get_property_case(PROPCASE_ORIENTATION_SENSOR, &exif_data.orientation, sizeof(exif_data.orientation));
- get_parameter_data(PARAM_CAMERA_NAME, &cam_name, sizeof(cam_name));
- get_property_case(PROPCASE_FLASH_MODE, &exif_data.flash_mode, sizeof(exif_data.flash_mode));
- get_property_case(PROPCASE_FLASH_FIRE, &exif_data.flash_fired, sizeof(exif_data.flash_fired));
- get_property_case(PROPCASE_METERING_MODE, &exif_data.metering_mode, sizeof(exif_data.metering_mode));
-
- get_property_case(PROPCASE_WB_ADJ, &wb, sizeof(wb));  
+ get_property_case(camera_info.props.orientation_sensor, &exif_data.orientation, sizeof(exif_data.orientation));
+ get_parameter_data(camera_info.params.camera_name, &cam_name, sizeof(cam_name));
+ get_property_case(camera_info.props.flash_mode, &exif_data.flash_mode, sizeof(exif_data.flash_mode));
+ get_property_case(camera_info.props.flash_fire, &exif_data.flash_fired, sizeof(exif_data.flash_fired));
+ get_property_case(camera_info.props.metering_mode, &exif_data.metering_mode, sizeof(exif_data.metering_mode));
+
+ get_property_case(camera_info.props.wb_adj, &wb, sizeof(wb));  
  cam_AsShotNeutral[1]=wb[1];
  cam_AsShotNeutral[3]=wb[0];
Index: /branches/reyalp-flt/core/dng.h
===================================================================
--- /branches/reyalp-flt/core/dng.h	(revision 1514)
+++ /branches/reyalp-flt/core/dng.h	(revision 1515)
@@ -17,7 +17,4 @@
 };
 
-
-#if DNG_SUPPORT
-
 // Defines of exported to chdk symbols
 #ifdef THIS_IS_CHDK_CORE
@@ -28,10 +25,10 @@
 	
 	extern void create_badpixel_bin();
-extern int raw_init_badpixel_bin();
-extern void capture_data_for_exif(void);
+    extern int raw_init_badpixel_bin();
+    extern void capture_data_for_exif(void);
 	extern void load_bad_pixels_list_b(char* filename);
 	extern int  badpixel_list_loaded_b(void);
 
-extern void convert_dng_to_chdk_raw(char* fn);
+    extern void convert_dng_to_chdk_raw(char* fn);
 	extern void write_dng(int fd, char* rawadr, char* altrawadr, unsigned long uncachedbit);
 
@@ -40,8 +37,3 @@
 #endif
 
-
-#endif //DNG_SUPPORT
-
-
-
 #endif
Index: /branches/reyalp-flt/core/module_exportlist.c
===================================================================
--- /branches/reyalp-flt/core/module_exportlist.c	(revision 1514)
+++ /branches/reyalp-flt/core/module_exportlist.c	(revision 1515)
@@ -297,4 +297,5 @@
 			pow_calc_2,
 
+            &camera_info,
             &camera_screen,
             &camera_sensor,
Index: /branches/reyalp-flt/core/main.c
===================================================================
--- /branches/reyalp-flt/core/main.c	(revision 1514)
+++ /branches/reyalp-flt/core/main.c	(revision 1515)
@@ -22,4 +22,5 @@
     CAM_BLACK_LEVEL, CAM_WHITE_LEVEL,
     CAM_RAW_ROWS, CAM_RAW_ROWPIX, (CAM_RAW_ROWPIX*CAM_SENSOR_BITS_PER_PIXEL)/8, CAM_RAW_ROWS * ((CAM_RAW_ROWPIX*CAM_SENSOR_BITS_PER_PIXEL)/8),
+#if defined(CAM_ACTIVE_AREA_X1) && defined(CAM_JPEG_WIDTH)
     {{
         (CAM_ACTIVE_AREA_X2-CAM_ACTIVE_AREA_X1-CAM_JPEG_WIDTH)/2, (CAM_ACTIVE_AREA_Y2-CAM_ACTIVE_AREA_Y1-CAM_JPEG_HEIGHT)/2,
@@ -27,4 +28,11 @@
     }},
     { { CAM_ACTIVE_AREA_Y1, CAM_ACTIVE_AREA_X1, CAM_ACTIVE_AREA_Y2, CAM_ACTIVE_AREA_X2 } }, 
+#else
+    {{
+        0, 0,
+        0, 0
+    }},
+    { { 0, 0, 0, 0 } }, 
+#endif
 #if defined(CAM_DNG_LENS_INFO)
     CAM_DNG_LENS_INFO,
@@ -37,10 +45,10 @@
     { -1 , 2 },
 #endif
+#if defined(CAM_COLORMATRIX1)
     { CAM_COLORMATRIX1 },
     cam_CFAPattern, cam_CalibrationIlluminant1,
-#if defined(OPT_GPS)
-    PROPCASE_GPS,
-#else
-    0,
+#else
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    0, 0,
 #endif
 };
@@ -51,4 +59,27 @@
     CAM_BITMAP_WIDTH, CAM_BITMAP_HEIGHT, CAM_BITMAP_WIDTH * CAM_BITMAP_HEIGHT,
     EDGE_HMARGIN, CAM_TS_BUTTON_BORDER,
+};
+
+_cam_info camera_info =
+{
+    {
+#if defined(PARAM_CAMERA_NAME)
+    PARAM_CAMERA_NAME,
+#else
+    0,
+#endif
+    },
+    {
+#if defined(OPT_GPS)
+    PROPCASE_GPS,
+#else
+    0,
+#endif
+    PROPCASE_ORIENTATION_SENSOR,
+    PROPCASE_TV, PROPCASE_AV, PROPCASE_MIN_AV,
+    PROPCASE_EV_CORRECTION_2, 
+    PROPCASE_FLASH_MODE, PROPCASE_FLASH_FIRE, 
+    PROPCASE_METERING_MODE, PROPCASE_WB_ADJ,
+    },
 };
 
