#!/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
# ---------------------------------------------------------------------- 
#
# $Id: jpeg2hdrgen,v 1.6 2006/08/22 18:34:04 gkrawczyk 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


JHEAD="jhead"                   # program for extracting exif info from jpegs

TEST_JHEAD=`which jhead`;
if [ "$TEST_JHEAD" = "" ]; then
    echo "Program 'jhead' is required to run this script."
    echo "Install appropriate software, for example from:"
    echo "http://www.sentex.net/~mwandel/jhead/"
    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("not recognized exif header!\n");
  else
    print exposure " " aperture " " iso_speed " 0";
}

/^Exposure time: ([0-9]*\.[0-9]) */ {
  exposure = 1/\\$3;
}

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

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

EOF`

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

    shift
done 
