/*--------------------------------------------------------------------
 * FICHERO:  TifTamBa.c
 * OBJETIVO: Definir la funcin Tif_TamanoBanda()
 * AUTOR:    Pedro Reina
 * FECHA:    M.4.7.1995
 *------------------------------------------------------------------*/

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

#include "Tiff.h"

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

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Tif_TamanoBanda()
 * OBJETIVO: Decir el tamao de una banda de la imagen que 
 *           se est manejando
 * ENTRADAS: Un tiff y el nmero de banda
 * SALIDAS:  El tamao en octetos que ocupa la banda o cero si
 *           no se ha encontrado
 * EJEMPLO:  Tif_TamanoBanda ( Imagen, 2 )
 * NOTAS:    1. Se asume que la banda existe
 *           2. Las bandas se empiezan a numerar en 0
 *           3. Si la imagen slo tiene una banda, esta funcin
 *              da el tamao de la nica banda, aunque se pida otra
 *------------------------------------------------------------------*/
entero Tif_TamanoBanda (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) == 279 )
      {
      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 );
  }
