- shm->samplebits = atoi(com_argv[i+1]);
- if (shm->samplebits != 16 && shm->samplebits != 8)
- {
- ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &fmt);
- if (fmt & AFMT_S16_LE) shm->samplebits = 16;
- else if (fmt & AFMT_U8) shm->samplebits = 8;
+ shm->format.width = atoi(com_argv[i+1]) / 8;
+
+ if (shm->format.width != 2 && shm->format.width != 1)
+ {
+ ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &fmt);
+ if (fmt & format16bit)
+ shm->format.width = 2;
+ else if (fmt & AFMT_U8)
+ shm->format.width = 1;