Stap 2: De beschrijving van de Software
De volgende sectie binnen de software is het hoofdformulier module zelf waarin alle code die nodig is om de gebruikersinterface van de software. Voor toegang tot de printer-poort van de computer, is een functie "Out" gedeclareerd die wordt aangeroepen vanuit de uitvoer bibliotheek (inpout32.dll). Wij gebruiken deze functie voor de uitvoer van alle gegevens op de parallelle poort. Functies voor het lezen van de parallelle poort zijn echter ook beschikbaar in dezelfde bibliotheek, maar wij hebben geen dergelijke eisen in ons project. De functie "Out" is vrij eenvoudig te implementeren en slechts twee argumenten gebruikt om te werken. Een is de parallelle poort fysiek adres zelf dat meestal 378(hexadecimal) op de meeste computers, en de andere is de 8-bit gegevens zelf die nodig is om te worden verzonden.
Op de rechterbovenhoek van de toepassing, heeft een frame instellingen opgesteld, waarin het audioapparaat selectie combobox, parallelle poort selectie combobox en de linker- of kanaal selectie keuzerondjes. Het audioapparaat selectie combobox kan worden gebruikt om één van de audio hardware stuurprogramma's beschikbaar zijn op uw computer waarnaar u het audio signaal van proeven. De parallelle poort selectie combobox kan worden gebruikt om te selecteren van het fysieke adres van de parallelle poort op uw computer. En zoals de 8 LEDs/lampjes op de parallelle poort kan slechts één van de links of rechts kanalen alleen worden weergegeven, dus de voorbeeldknoppen kanaal optie kunt u kiezen uit de linker of rechter kanaal van uw audio signaal om te monster uit.
Halverwege links van de GUI, zijn twee LED-meter-componenten opgesteld, die worden gebruikt voor het weergeven van de bemonsterde audio intensiteit vanaf de linker- en rechterkanaal van het audiosignaal. Deze led-meter-component is afgeleid van het "LedMeter.ocx" ActiveX-object. Halverwege rechts van de GUI, zijn acht ronde vormen opgesteld, die de status van de acht LEDs/verlichting aangesloten op de parallelle poort imiteert. Op de bodem van de GUI, vier knoppen met de naam "START", zal "STOP", "RESET" en "EXIT" laten u start/stop de VU-meter, reset de uitgangen en sluit de toepassing af.
Andere belangrijke functies gebruikt in de belangrijkste module zijn "EnumDevices" en "Vangen". Functies van de "EnumDevices" wordt genoemd in de gebeurtenis bij het laden van de module van het formulier. Het is in feite gebruikt om de lijst met fysieke audio hardwareapparaten beschikbaar op het computersysteem van waaruit de gebruiker als het standaardkanaal voor bemonstering selecteren kan. De functie wordt de lijst gegenereerd en bijgewerkt naar de audioapparaten selectie combobox op het frame van de instellingen. "Capture" is de functie waar alle bemonsterings- en besluitvorming plaatsvindt. Hier een 512 byte buffer is gedimensioneerd dat zelfs de monsters voor de linker- en rechterkanaal op zal bekleden en oneven plaatsen respectievelijk. "waveInPrepareHeader" en "waveInAddBuffer" heten dan om het te starten vastleggen van "winmm.dll" en vraagt het geluidsstuurprogramma te vullen van de buffer met de audio-samples. Wanneer de buffer vol is, wordt het proces gestopt. De standaardinstellingen voor de bemonstering in de software is ingesteld op "WAVE_FORMAT_PCM" formaat, 2 kanalen, 8-bit bemonstering op 22,05 KHz, die de gebruiker volgens zijn behoeften wijzigen kan. Nu is de lezing van de buffer begint voor de rechter en linker kanaal dienovereenkomstig en voor elk monster, het geeft u een getal tussen 0 en 255 te geven de intensiteit van het geluidssignaal voor het bepaalde kanaal. Het is om opgemerkt te worden dat de steekproef resultaatwaarde 127 wanneer niets wordt afgespeeld en het gaat op 0 max om negatief signaal overgangen te gaan en tot en met 255 max om positief signaal overgangen te gaan. Dus wanneer niets wordt gespeeld, een waarde 127 of in de buurt van geretourneerd en de LedMeter-component op de software zal worden rechts in het midden. Echter in het project gebruikten we de schaal tussen 127 tot en met 255 inschakelen van de lichten door deze eerst te converteren naar een schaal van 0 tot 100 en vervolgens onder te verdelen in 8 gelijke delen voor niveau triggering van elk van de acht bits op de parallele poort. De 8 shapes op de software GUI worden bijgewerkt dienovereenkomstig en "Out" functie is dus het gebruikt om over te schakelen op overeenkomstige LEDs/verlichting aangesloten op de parallelle poort. De gebruiker kan selecteren om te proeven van zowel de linker- of kanaal volgens zijn behoefte tijdens de runtime als dit elke keer nadat het vastleggen heeft plaatsgevonden wordt gecontroleerd.