Erstmal vorweg, ich kenne mich mit Alsa Programmierung sehr wenig aus. Als ich vor einigen Jahren einen Morsezeichen Generator geschrieben habe, bin ich daher von einem einfachen Beispiel zur Tonerzeugung aus der Doku aus gegangen, was bedeutet, dass ich die Initialisierung im Wesentlichen abgeschrieben habe.
Wenn ich jetzt dieses alte Programm (32 Bit) in die 64-Bit Welt überführen will, bekomme ich folgende Warnung:
manfred@samurai:~/prog/dig_sig/cwgen$ gcc -Wall -ocwgen cwgen.c -lm -lasound -lpthread cwgen.c: In function ‘set_swparams’: cwgen.c:1239:9: warning: ‘snd_pcm_sw_params_set_xfer_align’ is deprecated [-Wdeprecated-declarations] err = snd_pcm_sw_params_set_xfer_align(handle, swparams, 1); ^~~ In file included from /usr/include/alsa/asoundlib.h:54:0, from cwgen.c:27: /usr/include/alsa/pcm.h:1302:5: note: declared here int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val) __attribute__((deprecated)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ manfred@samurai:~/prog/dig_sig/cwgen$
Der zugehörige Programmtext ist:
1 2 3 4 5 6 | /* align all transfers to 1 sample */ err = snd_pcm_sw_params_set_xfer_align(handle, swparams, 1); if (err < 0) { printf("Unable to set transfer align for playback: %s\n", snd_strerror(err)); return err; } |
Hat jemand eine Ahnung, was ich statt dessen machen kann?
Glücklicherweise läuft das Programm erstmal trotzdem.