/*--------------------------------------------------------------------
 * FICHERO:  SonEjec.c
 * OBJETIVO: Definir la funcin Son_Ejecuta()
 * AUTOR:    Pedro Reina
 * FECHA:    J.13.4.1995
 *------------------------------------------------------------------*/

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

#include "General.h"
#include "Sonido.def"
#include "Sonido.h"

#ifdef OLIMPO_PC
#include <dos.h>                /*  sound() delay() nosound()       */
#endif

#ifdef OLIMPO_QL
#include <qlib.h>               /*  do_sound()                      */
#endif

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

#ifdef OLIMPO_PC
/*--------------------------------------------------------------------
 * FUNCION:  Son_Ejecuta()
 * OBJETIVO: Generar un sonido de cierta frecuencia y duracin
 * ENTRADAS: La frecuencia en Hz y la duracin en segundos
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Ejecuta (440,1.0)
 *------------------------------------------------------------------*/
logico Son_Ejecuta (Frecuencia,Duracion)
unsigned Frecuencia;
real     Duracion;
  {
  if ( Son_Encendido_ )
    {
    sound (Frecuencia);
    delay(1000*Duracion);
    nosound();
    }
  return ( Son_Encendido_ );
  }
#endif

#ifdef OLIMPO_QL
/*--------------------------------------------------------------------
 * FUNCION:  Son_Ejecuta()
 * OBJETIVO: Generar un sonido de acuerdo a la instruccin BEEP del SB
 * ENTRADAS: Los ocho parmetros de BEEP
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Ejecuta (2000,10,0,0,0,0,0,0)
 *------------------------------------------------------------------*/
logico Son_Ejecuta (p1,p2,p3,p4,p5,p6,p7,p8)
short int p1,p2,p3,p4,p5,p6,p7,p8;
  {
  if ( Son_Encendido_ )
    {
    do_sound ((int)p1,(int)p2,(int)p3,(int)p4,(int)p5,(int)p6,(int)p7,(int)p8);
    }

  return ( Son_Encendido_ );
  }
#endif