Erittäin hyvä dokumentaatio pulseaudio:lla äänien tuottamisesta. Tuo "Simple API" esimerkki on mielestäni erittäin mainio juuri tässä suhteessa:
https://freedesktop.org/software/pulseaudio/doxygen/pacat-simple_8c-example.html
Em. paikasta löytyy myös callback-rajapinta, mikäli on tarvetta tehdä hiukan vaativampaa ohjelmointia. Puolessa tunnissa saa omasta ohjelmasta puhdasta sini-ääntä kuuluville ja kääntäminen sujuu vaikkapa komennolla:
$ gcc main.c -lm -lpulse-simple -lpulse
-Ettei tarvitse etsiä mitä kirjastoja tulee linkata mukaan
https://freedesktop.org/software/pulseaudio/doxygen/pacat-simple_8c-example.html
Em. paikasta löytyy myös callback-rajapinta, mikäli on tarvetta tehdä hiukan vaativampaa ohjelmointia. Puolessa tunnissa saa omasta ohjelmasta puhdasta sini-ääntä kuuluville ja kääntäminen sujuu vaikkapa komennolla:
$ gcc main.c -lm -lpulse-simple -lpulse
-Ettei tarvitse etsiä mitä kirjastoja tulee linkata mukaan
Vastaukset 2
Vanhimmat
"-Ettei tarvitse etsiä mitä kirjastoja tulee linkata mukaan"
Mikäs vaiva siinä on?
Kokeilin tuota säikeistystäkin - näemmä siellä on tarjolla "threaded-mainloop" toteutus, joka ajaa pulsen toiminnallisuutta omassa säikeessään ja tämän kanssa keskustellaan mm. callback-funktioiden kautta ja status-kyselyillä: Ei tarvitse siis itse pärjätä täyden thread-sovelluksen kanssa, mutta saa silti osan sen hyödyistä käyttöön. Jos vertaa "simple API":n vaivannäköön, niin tämä on vähintään 10x - jos tietää jo valmiiksi säikeistyksestä jotain.
Helpottaa datan käsittelyä kuitenkin kummasti, kun sink:it ilmoittaa datavajeesta ja voi niitä täytellä callback:ien avulla tarpeen mukaan.