Paso 2: La descripción de Software
La siguiente sección en el software es el módulo de formulario principal sí mismo que sostiene todo el código necesario para manejar la interfaz de usuario del software. Para acceder al puerto de impresora de la computadora, ha sido declarada una función "Out" que se llama de la biblioteca de entrada / salida (inpout32.dll). Utilizamos esta función para salida de datos al puerto paralelo. Sin embargo también están disponibles dentro de la misma biblioteca de funciones para leer el puerto paralelo, pero no tenemos esos requisitos en nuestro proyecto. La función "Out" es bastante simple de implementar y utiliza sólo dos argumentos para trabajar. Uno es dirección física del puerto paralelo sí mismo que es generalmente 378(hexadecimal) en la mayoría de los equipos, y otra es los datos de 8 bits sí que se necesitan para ser enviado.
En la parte superior derecha de la aplicación, se ha señalado un marco de configuración que contiene el cuadro combinado de selección de dispositivo de audio, puerto paralelo selección combobox y los botones de opción de selección de canal izquierdo o derecho. El cuadro combinado de selección de dispositivo de audio puede utilizarse para seleccionar uno de los controladores de hardware de audio disponibles en su computadora que desea muestrear la señal de audio. El cuadro combinado de selección de puerto paralelo se puede utilizar para seleccionar la dirección física del puerto paralelo en su computadora. Y como sólo las 8 LEDs y luces en el puerto paralelo puede mostrar uno de los canales izquierdos o derecho solamente, así que los botones de opción de canal de muestra le permite elegir desde el canal derecho o izquierdo de su señal de audio a muestra de.
En la mitad izquierda de la interfaz gráfica, han sido elaborados dos componentes del medidor LED que se utilizan para mostrar la intensidad de audio muestreada de los canales izquierdos y derecho de la señal de audio. Este componente del medidor led se deriva del objeto activex "LedMeter.ocx". En la mitad derecha de la GUI, ocho formas circulares han sido elaborados que imita el estado de los ocho luces LEDs conectados al puerto paralelo. En la parte inferior de la interfaz, cuatro botones de llamado "Inicio", "STOP", "RESET" y "Salida" permitirá iniciar/detener el VU-metro, restablecer las salidas y salir de la aplicación.
Otras funciones importantes en el módulo principal están "EnumDevices" y "Captura". Funciones de "EnumDevices" se llama en el evento de carga del módulo de formulario. Básicamente se utiliza para obtener la lista de dispositivos de hardware de audio físicas disponibles en el sistema informático desde el que el usuario puede seleccionar uno como el canal por defecto para el muestreo. La función genera la lista y actualiza en el combobox de la selección de dispositivos de audio en el marco de configuración. "Captura" es la función donde se realiza todo el muestreo y toma de decisiones. Aquí se dimensiona un búfer de 512 bytes que llevará a cabo las muestras para los canales izquierdos y derecho en incluso y odd lugares respectivamente. "waveInPrepareHeader" y "waveInAddBuffer" entonces se llaman para iniciar el proceso de capturando de "winmm.dll" y pide el driver de sonido para llenar el buffer con las muestras audio. Cuando el buffer está lleno, el proceso se detiene. La configuración de muestreo por defecto en el software se ajusta a formato "WAVE_FORMAT_PCM", 2 canales, 8 bits de muestreo 22,05 kHz, que el usuario puede cambiar según sus necesidades. Ahora la lectura del buffer comienza para el canal izquierdo y derecho por consiguiente y para cada muestra, le da un número entre 0 y 255 para dar la intensidad de la señal de audio para el canal especial. Es ser notado que devuelve el valor de la muestra es 127 cuando nada se reproduce y va al máximo para ir negativamente las transiciones de la señal de 0 y 255 max para ir positivamente las transiciones de la señal. Por lo que se devuelve cuando no se está reproduciendo, un valor de 127 o cerca y el componente LedMeter en el software será en el centro. Sin embargo el proyecto se utilizó la escala entre 127 a 255 para encender las luces por convertirla primero en una escala de 0 a 100 y luego dividirlo en 8 partes iguales para el nivel de activación de cada uno de los ocho bits en el puerto paralelo. Así las 8 formas de software GUI se actualizan en consecuencia y "función Out" es el utilizado para encender luces de LEDs correspondientes conectado al puerto paralelo. El usuario puede seleccionar para probar bien el canal izquierdo o derecho según su necesidad durante el tiempo de ejecución, esto se comprueba cada vez después de la captura.