/*--------------------------------------------------------------------
 * FICHERO:       Sonido.h
 * OBJETIVO:      Definir el objeto "Sonido"
 * IDENTIFICADOR: Son
 * AUTOR:         Pedro Reina
 * FECHA:         J.20.4.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones pblicas
 *
 *   Son_Cambia()            Sonido.h
 *   Son_Apaga()             Sonido.h
 *   Son_Enciende()          Sonido.h
 *   Son_Error()             Sonido.h
 *   Son_MalaTecla()         Sonido.h
 *   Son_Bien()              Sonido.h
 *   Son_Estado()            Sonido.h
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones conocidas
 *
 *   Ninguna
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones privadas
 *
 *   Son_Ejecuta()           SonEjec.c
 *------------------------------------------------------------------*/

#ifndef _SONIDO_
#define _SONIDO_

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

#include "General.h"

/*--------------------------------------------------------------------
 * Definicin de macros constantes
 *------------------------------------------------------------------*/

    /* Ninguno */

/*--------------------------------------------------------------------
 * Definicin de tipos
 *------------------------------------------------------------------*/

   /* Ninguno */

/*--------------------------------------------------------------------
 * Variables globales
 *------------------------------------------------------------------*/

extern logico Son_Encendido_;

/*--------------------------------------------------------------------
 * Declaracin de funciones
 *------------------------------------------------------------------*/

logico Son_Ejecuta();

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

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Estado()
 * OBJETIVO: Informar del estado del sonido 
 *           (Encendido / Apagado)
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Estado()
 *------------------------------------------------------------------*/
#define Son_Estado()  Son_Encendido_

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Cambia()
 * OBJETIVO: Cambiar el estado del sonido 
 *           (Encendido / Apagado)
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Cambia()
 *------------------------------------------------------------------*/
#define Son_Cambia()  (Son_Encendido_=!Son_Encendido_)

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Enciende()
 * OBJETIVO: Encender el sonido
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Enciende()
 *------------------------------------------------------------------*/
#define Son_Enciende()  (Son_Encendido_ = SI)

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Apaga()
 * OBJETIVO: Apagar el sonido
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Apaga()
 *------------------------------------------------------------------*/
#define Son_Apaga()  (Son_Encendido_ = NO)

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Error()
 * OBJETIVO: Sealar un error
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Error()
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
#define Son_Error()   Son_Ejecuta(100,1.0)
#endif

#ifdef OLIMPO_QL
#define Son_Error()   Son_Ejecuta(18000,100,102,1,1,0,0,0)
#endif

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_MalaTecla()
 * OBJETIVO: Sealar que la tecla pulsada no se admite
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_MalaTecla()
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
#define Son_MalaTecla()   Son_Ejecuta(50,0.1)
#endif

#ifdef OLIMPO_QL
#define Son_MalaTecla()   Son_Ejecuta(1000,3000,0,0,0,0,0,0)
#endif

/*--------------------------------------------------------------Olimpo
 * MACRO:    Son_Bien()
 * OBJETIVO: Sealar brevemente que algo es correcto
 * ENTRADAS: Ninguna
 * SALIDAS:  Lgica, que indica si el sonido est encendido
 * EJEMPLO:  Son_Bien()
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
#define Son_Bien()   Son_Ejecuta(880,0.1)
#endif

#ifdef OLIMPO_QL
#define Son_Bien()   Son_Ejecuta(500,10,0,0,0,0,0,0)
#endif

#endif /* _SONIDO_ */