Artikli materjal on saadud minu .

Parandame tonal generaatori nÀidet
Eelnevas Me kirjutasime tonal generaatori rakenduse ja selle abil saime heli arvuti kĂ”larist. NĂŒĂŒd pöörame tĂ€helepanu sellele, et meie programm lĂ”petades ei tagasta mĂ€lu tagasi kuhja. On aeg selgust tuua.
Kui skeem enam ei ole vajalik, peab mĂ€lu vabastamine algama andmevoo peatamisest. Selleks tuleb skeemist lahti ĂŒhendada kellageneraator, kas lĂ€bi funktsiooni ms_ticker_detach(). Meie puhul peame kellageneraatori filtreerimise sisendist lahti ĂŒhendama voidsource:
ms_ticker_detach(ticker, voidsource)Muide, pĂ€rast andmevoo peatamist saame muuta skeemi ja uuesti tööle panna, ĂŒhendades kellageneraatori tagasi.
NĂŒĂŒd saame selle eemaldada funktsiooni ms_ticker_destroy():
ms_ticker_destroy(ticker)Andmevoog on peatatud ja saame alustada selle osade lahtivĂ”tmist, filtreid lahti ĂŒhendades. Selleks kasutatakse funktsiooni ms_filter_unlink():
ms_filter_unlink(voidsource, 0, dtmfgen, 0);
ms_filter_unlink(dtmfgen, 0, snd_card_write, 0);argumentide mÀÀramine on sama, mis funktsioonil ms_filter_link().
Eemaldame nĂŒĂŒd juba lahti ĂŒhendatud filtrid kasutades ms_filter_destroy():
ms_filter_destroy(voidsource);
ms_filter_destroy(dtmfgen);
ms_filter_destroy(snd_card_write);Need read lisades meie nÀitele saame korraliku mÀlu juhtimise jÀrgi programmi lÔpetamise.
Nagu nÀeme, nÔudis programmi Ôige lÔpetamine, et lisada umbes sama palju koodiridasid kui alguses, ja keskmiselt pidi igale filtrile olema neli koodirida. Tundub, et programmi kood suurendab öö jooksul proportsionaalselt projekti kasutatud filtrite arvuga. Kui rÀÀkida tuhandest filtrist skeemis, siis lisandub teie koodile neli tuhat rida rutiinselt opereerimist nende loomise ja hÀvitamise kohta.
NĂŒĂŒd teate, kuidas Ă”igesti lĂ”petada programmi, mis kasutab meediastrimmerit. JĂ€rgmistes nĂ€idetes, kokkuvĂ”tte huvides, "unustan" seda teha. Aga teie ei unusta, eks?
Meediastrimmeri arendajad ei ole ette nÀinud programme, mis lihtsustaksid filtrite kÀsitlemist skeemide kokkupanemisel / lahtivÔtmisel. Sellegipoolest on seal abivahend, mis vÔimaldab kiirelt filtreid skeemist sisse ja vÀlja panna.
Tagastame sellele kĂŒsimusele hiljem, kui meie nĂ€idetes on filtreid ĂŒle paari kĂŒmne.
JÀrgmises Koostame signaalitaseme mÔÔturi skeemi ja Ôpime mÔÔtmistulemust filtrist lugema. Hindame mÔÔtmise tÀpsust.
Allikas: habr.com
