/*--------------------------------------------------------------------
 * FICHERO:  TifDespl.c
 * OBJETIVO: Definir la funcin Tif_Desplazamiento()
 * AUTOR:    Pedro Reina
 * FECHA:    S.1.7.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Tiff.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * FUNCION:  Tif_Desplazamiento()
 * OBJETIVO: Decir el desplazamiento a los datos de una banda 
 *           de la imagen que se est manejando
 * ENTRADAS: Un tiff y el nmero de banda
 * SALIDAS:  La posicin en el fichero de los datos de la banda
 *           o cero si no se ha encontrado
 * EJEMPLO:  Tif_Desplazamiento ( Imagen, 2 )
 * NOTAS:    1. Se asume que la banda existe
 *           2. Las bandas se empiezan a numerar en 0
 *------------------------------------------------------------------*/
entero Tif_Desplazamiento (Tiff, Banda)
tiff     Tiff;
contador Banda;
  {
  entero   Respuesta = 0;
  logico   Sigue = SI;
  octeto   Aux[4];
  contador i;

  for ( i=0 ; i<Tif_TotalTag(Tiff) && Sigue ; i++ )
    {
    if ( Tif_NumeroTag(Tiff,i) == 273 )
      {
      Respuesta = Tif_ValorTag(Tiff,i);
      Sigue = NO;
      }
    }

  if ( Tif_TotalBanda(Tiff) != 1 && Respuesta )
    {
    if ( Fch_Coloca (Tif_Fichero(Tiff), Respuesta+4*Banda) &&
         Fch_LeeOcteto (Tif_Fichero(Tiff), Aux, 4) )
      {
      if ( Tif_Formato(Tiff) == TIF_MOTOROLA )
        { Respuesta = Mem_LeeEntero (Aux, MEM_MOTOROLA); }
      else
        { Respuesta = Mem_LeeEntero (Aux, MEM_INTEL); }
      }                                                   
    else  { Respuesta = 0; }
    }

  return ( Respuesta );
  }
