У меня есть двойной указатель data-> mono_channel, где я бы хотел привести все двойные числа к целым и поместить их в массив.
int frames = data->audio_info_save->frames;
short buffer[frames];
double* p;
int i = 0;
for (p = &(data->mono_channel)[0]; p < &(data->mono_channel)[frames]; p++) {
buffer[i] = (int) *p;
i++;
}
Цель состоит в том, чтобы ALSA взяла целочисленный массив выборок, а мои выборки были в двойных числах.
if ((err = snd_pcm_writei(playback_handle, buffer, frames)) != frames) {
fprintf(stderr, "write to audio interface failed (%s)\n", snd_strerror(err));
exit(1);
}
Так что мне как-то нужно, чтобы мои двойники приводились к целым числам.
Я не слышу ни звука. Так правильно ли происходит кастинг?