#! /bin/bash

#############################################################################
#  Copyright (C) 2003  Enno Bartels   <ennobartels@t-online.de>             #
#############################################################################
#                                                                           #
#  This program is free software; you can redistribute it and/or            #
#  modify it under the terms of the GNU Library 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        #
#  Library General Public License for more details.                         #
#                                                                           #
#  You should have received a copy of the GNU Library General Public        #
#  License along with this program; see the file COPYING.LIB.  If not,      #
#  write to the Free Software Foundation, Inc., 59 Temple Place -           #
#  Suite 330,  Boston, MA 02111-1307, USA.                                  #
#                                                                           #
#############################################################################
#                                                                           #
#  Project name.....  minolta_dimage_xt                                     #
#                                                                           #
#  Modul name.......  backIntoCam.sh                                        #
#                                                                           #
#  Starting dates...  1.Okt.2003 (Enno Bartels)                             #
#                                                                           #
#  Version..........  0.1                                                   #
#                                                                           #
#  Author...........  Enno Bartels <ennobartels@t-online.de>                #
#                                                                           #
#  Description......  Tool for the Minolta Dimage Xt Camera                 #
#                                                                           #
#############################################################################


#############################################################################
# Aufgaben:                                                                 #
# 1. Verzeichnis erstellen                                                  #
#                                                                           #
# 2. a. Suche alle *.mov *.jpg *.wav                                        #
#    b. Wandle xxx._*.???   zu   pictxxxx.???                               #
#                                                                           #
# 3. Bilder mit richtiger Größe aber falschem Format zur Korrektur          #
#    um 90 Grad                                                             #
#                                                                           #
# 4. Bei nicht richtig skallieren Bildern werden auch diese                 #
#    a. richtig skalliert                                                   #  
#    b. und unter umständen auch gedreht                                    #
#                                                                           #
##5. Fehlt der EXIF Header dann ist dieser nachzutragen                     #
#                                                                           #
#############################################################################

# Erzeuge Verzeichnis
MYDIR="xxxYMMDD"
if test ! -d ${MYDIR} ; then
  mkdir ${MYDIR}
fi

# Finde alle jpg mov und wav Dateien
BLA2=`find .  \( -name "*.jpg" -or -name "*.mov" -or -name "*.wav" \)  -maxdepth 1 -print | sort`

for FILENAME_IN in $BLA2
do

  dir_name=`dirname $FILENAME_IN`
  base_name=`basename $FILENAME_IN`

  # Zahl herausfilten und beginnenden Nullen entfernen
  fn_zahl=`echo $base_name | cut -d'.' -f1 | sed "s/^0//" | sed "s/^0//" | sed "s/^0//" | sed "s/^0//"`

  # Aller erste Zahl für Testzwecke herausfiltern 
  fn_zahl1=`echo $base_name | cut -b1`

  # Rest hinter der Zahl bestimmen
  fn_rest=`echo $base_name | cut -d'.' -f2-200`

  # Zahl neu erzeugen: 4 stellig
  neu=`printf %04d $fn_zahl`


  # Neue Namen bestimmen
  base_name_j=`basename $FILENAME_IN .jpg`
  base_name_m=`basename $FILENAME_IN .mov`
  base_name_w=`basename $FILENAME_IN .wav`

  if test $dir_name/$base_name_j.jpg == $FILENAME_IN; then 
    FILENAME_OUT=`echo ${MYDIR}/${dir_name}/pict${neu}.jpg`
  elif test $dir_name/$base_name_w.wav == $FILENAME_IN; then
    FILENAME_OUT=`echo ${MYDIR}/${dir_name}/pict${neu}.wav`
  elif test $dir_name/$base_name_m.mov == $FILENAME_IN; then
    FILENAME_OUT=`echo ${MYDIR}/${dir_name}/pict${neu}.mov`
  fi


  # Neue Namen erzeugen
  if test `echo $fn_zahl1  | grep [0-9]`; then 
      echo "   Working on: ${FILENAME_IN}  to   ${FILENAME_OUT}" 
      cp ${FILENAME_IN}   ${FILENAME_OUT}
  fi




  # Wenn es sich um Bilder handelt: Bitte nachbearbeiten
  if test $dir_name/$base_name_j.jpg == $FILENAME_IN; then 

    # drehen ??
    dreh=`identify  ${FILENAME_OUT}  | cut -d' ' -f3 | cut -d+ -f1`
    dreh_b=`echo ${dreh} | cut -dx -f1`
    dreh_h=`echo ${dreh} | cut -dx -f2`

    # Ist das Bild richtig gedreht ?
    if   test "${dreh_b}" == "2048" && test "${dreh_h}" == "1536"; then
      echo "     Bild OKAY "
    # Muß das Bild gedreht werden ?
    elif test "${dreh_b}" == "1536" && test "${dreh_h}" == "2048"; then
     echo  "     Bild muß gedreht werden"
     convert -rotate 90 $FILENAME_OUT $FILENAME_OUT
    else 
     # Muß das Bild neu skaliert werden
     echo  "     Bildgeometrie gar nicht okay "
     if  test "${dreh_h}" -gt "${dreh_b}"; then
      echo "     Muß es drehen"
      convert -rotate 90 $FILENAME_OUT $FILENAME_OUT
     fi 

     # Größe anpassen
     echo "     Muß es skallieren"
     convert -geometry 2048x1536 $FILENAME_OUT $FILENAME_OUT
    fi

  fi

  echo
done


