GLOBAL STRUCT setup

STRUCT setup;
    card; // Tipo de tarjeta
    port; // Puerto de acceso
    irq; // Interrupción requerida
    dma; // Canal de acceso a memoria
    dma2; // Canal de acceso de 16 bit
    mixer; // Tipo de mezclador
    rate; // Frecuencia máxima (bitrate)
    bits; // Calidad 8 o 16 bits
    master; // Volumen maestro (general)
    sound_fx; // Volumen de los efectos
    cd_audio; // Volumen de música CD
END

Esta estructura de datos es de nivel muy avanzado y no es en absoluto necesaria para crear ningún juego, por complejo que éste sea, ya que el gestor de procesos de DIV Games Studio se encargará, normalmente, del hardware de sonido de forma transparente.

Todos los campos referentes al hardware de sonido se actualizan de manera automática por el programa si se tiene una tarjeta de sonido, siempre y cuando se tenga la variable de entorno BLASTER o GRAVIS debidamente inicializada.

Esta estructura de un único registro contiene una serie de campos divididos en dos grupos: los primeros para activar nuevos parámetros del hardware de sonido instalado en el ordenador y los segundos para ajustar los diferentes controles de volumen gestionados por el mezclador (mixer) del sistema de sonido.


Importante:

Para activar los nuevos parámetros del hardware de sonido que se introduzcan en esta estructura se debe llamar a la función reset_sound().

Para activar los nuevos niveles de volumen que se introduzcan en la estructura (en los campos master, sound_fx y cd_audio) se debe llamar a la función set_volume().

Esta estructura se utiliza generalmente dentro de los programas de configuración del sistema de sonido (ver setup_program).

Nota: Para acceder a estos campos se debe preceder el nombre del campo por la palabra setup y el símbolo . (punto); por ejemplo, para acceder al campo master (que indica el nivel de volumen general del mezclador) se debe utilizar setup.master.


Se muestra, a continuación, una descripción algo más detallada de cada uno de los campos de esta estructura.

card - Indica el tipo de tarjeta de sonido instalada en el ordenador. El programa admite tarjetas de las familias Sound Blaster (tm) y Gravis Ultra Sound (tm) y todas las que sean compatibles 100% con éstas.

Los valores que puede tomar este campo son los siguientes, depediendo del tipo de tarjeta de sonido:

    Sin tarjeta o sin sonido = 0
    Sound Blaster 1.5 = 1
    Sound Blaster 2.0 = 2
    Sound Blaster Pro = 3
    Sound Blaster 16 = 4
    Sound Blaster AWE = 5
    Gravis Ultra Sound = 6
    Gravis Ultra Sound MAX = 7


port - Indica el puerto de comunicaciones del ordenador en el cual se deben escribir y leer los datos de la tarjeta de sonido.

Los valores que puede tomar este campo son los siguientes, dependiendo del puerto asignado al hardware de sonido:

    0x210 = 0
    0x220 = 1
    0x230 = 2
    0x240 = 3
    0x250 = 4
    0x260 = 5


irq - Este campo indica el número de interrupción o IRQ (Interrupt request) asignado a la tarjeta de sonido activa.

Los valores que puede tomar este campo son, dependiendo de la interrupción utilizada por la tarjeta, los siguientes:

    IRQ 2 = 0
    IRQ 3 = 1
    IRQ 5 = 2
    IRQ 7 = 3
    IRQ 10 = 4
    IRQ 11 = 5
    IRQ 12 = 6
    IRQ 13 = 7
    IRQ 14 = 8
    IRQ 15 = 9


dma - En este campo se debe indicar el número de canal de acceso directo a memoria (DMA) que utiliza la tarjeta de sonido.

Este campo puede tomar valores de 0 a 10, dependiendo directamente del número de canal.


dma2 - Algunas tarjetas de sonido tienen disponible un segundo canal de acceso directo a memoria más rápido que el anterior, de 16 bits, denominado comúnmente HDMA, DMA2 o DMA16.

Como el campo anterior de esta estructura, éste podrá tomar valores del 0 al 10 dependiendo del número de canal de 16 bits utilizado por la tarjeta.


mixer - Tipo de mezclador utilizado por el sistema de sonido, puede ser una de estas dos constantes:

  fast_mixer - Mezclador rápido de los canales de sonido (1).
  quality_mixer - Mezclador de calidad máxima (2).

Por defecto, todos los programas tendrán activado el mezclador rápido (setup.mixer=fast_mixer;) ya que este es el modo más rápido, y la diferencia de calidad no es muy grande.


rate - Frecuencia máxima permitida (bit rate), entre 11025 (calidad de sonido mínima permitida) y 44100 (calidad CD). Por defecto, todos los programas se configuran a 44100 (setup.rate=44100;), no obstante esto puede cambiarse, ya que a mayor calidad, más lento será el sistema de sonido, y más tiempo de procesador consume.

Se entiende que el valor especificado en setup.rate es la calidad máxima de sonido, lo que quiere decir que todos los efectos de sonido cargados se adaptarán a esta calidad en caso de tener una mayor. Es decir, que los efectos grabados a una frecuencia de 11025 seguirán sonando con calidad pobre, aunque la frecuencia máxima permitida sea mayor.


bits - Resolución de las muestras de los efectos digitales y módulos musicales, este campo puede tener uno de estas dos constantes como valores:

  sound_bits_8 - Muestras de 8 bit.
  sound_bits_16 - Muestras de 16 bit.

El efecto es similar al valor especificado en el campo rate, los sonidos con 8 bit suenan peor (también ocupan menos espacio) y los de 16 bit son de más calidad. El valor indicado en setup.bits indicará la profundidad de muestra máxima.

Por defecto, todos los programas activarán las muestras de 16 bit (setup.bits=sound_bits_8;)), ya que la diferencia de calidad es más que notable.


master - Este campo contiene el volumen general o maestro de salida de la tarjeta. Aquí se debe indicar un número entre 0 (volumen mínimo) y 15 (volumen máximo). El valor por defecto es 15, el volumen máximo.

Si se disminuye el volumen maestro afectará tanto al volumen de los efectos de sonido como al volumen de reproducción de la música de cd audio.


sound_fx - Este campo controla el volumen al que los efectos de sonido que se ejecutan con la función sound() son reproducidos.

Este volumen es independiente del utilizado con las funciones de sonido siendo, este volumen, general para todos los efectos de sonido y el indicado en las funciones el específico para cada sonido.

Este campo también puede oscilar entre 0 (volumen mínimo) y 15 (volumen máximo), siendo el valor por defecto el volumen máximo.


cd_audio - Este campo controla el volumen de la música que será reproducida a partir de pistas de audio de un CD ROM o de un Compact Disc.

Al igual que los dos campos anteriores, este campo también puede oscilar entre 0 (volumen mínimo) y 15 (volumen máximo) siendo el valor por defecto el volumen máximo.


Ver: Datos globales - reset_sound() - set_volume()