#!/usr/pkg/bin/bash
#  
# This file is a part of PFS CALIBRATION package.
# ---------------------------------------------------------------------- 
# Copyright (C) 2004 Grzegorz Krawczyk, <gkrawczyk@users.sourceforge.net>
# 
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  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.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# ---------------------------------------------------------------------- 
# This program by Georg Zotti <gzotti@cg.tuwien.ac.at>, derived from jpeg2hdrgen
#
# $Id: dcraw2hdrgen,v 1.3 2013/11/10 21:10:02 rafm Exp $

LC_NUMERIC=POSIX         # ensure dot is used as the decimal separator
export LC_NUMERIC

LC_ALL=POSIX             # apparently this is necessary on Gentoo
export LC_ALL


DCRAW="dcraw -i -v"        # program for extracting exposure info from "raw" images

TEST_DCRAW=`which dcraw`;
if [ "$TEST_DCRAW" = "" ]; then
    echo "Program 'dcraw' is required to run this script."
    echo "Install appropriate software, for example from:"
    echo "http://www.cybercom.net/~dcoffin/dcraw/"
    exit 1;
fi

#Note: Double backslash MUST be put in front of each $ sign
AWK_PROGRAM=`cat <<EOF
BEGIN {
  exposure="";
  aperture="";
}

END {
  if( aperture=="" )
    aperture=1;
    
  if( iso_speed=="" )
    iso_speed=100;
    
  if( exposure=="" )
    printf("unrecognized raw format!\n");
  else
    print exposure " " aperture " " iso_speed " 0";
}

/^Shutter: (1\/)?([0-9]*\.[0-9]*) sec/ {
  if (substr(\\$2, 1, 2)=="1/")
    exposure = substr(\\$2, 3);
  else
    exposure = 1/\\$2;
}

/^Aperture: f\/([0-9]*\.[0-9]*)/ {
  aperture = substr(\\$2,3);
}

/^ISO speed: ([0-9]*\.?[0-9]*)/ {
  iso_speed = \\$3;
}

EOF`

while [ "$1" != "" ]; do
    EXPOSURE_INFO=`$DCRAW "$1" | awk "$AWK_PROGRAM"`
    echo "$1" $EXPOSURE_INFO

    shift
done 

