Browse Source

add better error messages and support for SND_PCM_FORMAT_S32_BE

pull/811/head
Claudio Cabral Claudio Cabral 3 years ago
parent
commit
bfa45e34a5
1 changed files with 28 additions and 12 deletions
  1. +28
    -12
      linux/alsa/alsa_driver.c

+ 28
- 12
linux/alsa/alsa_driver.c View File

@@ -314,15 +314,16 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
break;

case 4: /* NO DITHER */
switch (driver->playback_sample_format)
{
case SND_PCM_FORMAT_S24_LE:
case SND_PCM_FORMAT_S24_BE:
switch (driver->playback_sample_format)
{
case SND_PCM_FORMAT_S24_LE:
case SND_PCM_FORMAT_S24_BE:
driver->write_via_copy = driver->quirk_bswap?
sample_move_d32l24_sSs:
sample_move_d32l24_sS;
break;
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S32_BE:
{
int bits = snd_pcm_hw_params_get_sbits(driver->playback_hw_params);
if (bits == 32)
@@ -331,18 +332,25 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
sample_move_d32_sSs:
sample_move_d32_sS;
}
else
else if (bits == 24)
{
driver->write_via_copy = driver->quirk_bswap?
sample_move_d32u24_sSs:
sample_move_d32u24_sS;
}
break;
else
{
jack_error("unsupported sample format for playback: "
"SND_PCM_FORMAT_S32 with %d bits",
bits);
exit (1);
}
break;
}
default:
jack_error("unsupported 4 byte sample_format");
exit (1);
}
default:
jack_error("unsupported 4 byte sample_format");
exit (1);
}
break;

default:
@@ -378,6 +386,7 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
sample_move_dS_s32l24;
break;
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S32_BE:
{
int bits = snd_pcm_hw_params_get_sbits(driver->capture_hw_params);
if (bits == 32)
@@ -386,12 +395,19 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
sample_move_dS_s32s:
sample_move_dS_s32;
}
else
else if(bits == 24)
{
driver->read_via_copy = driver->quirk_bswap?
sample_move_dS_s32u24s:
sample_move_dS_s32u24;
}
else
{
jack_error("unsupported sample format for capture: "
"SND_PCM_FORMAT_S32LE with %d bits",
bits);
exit (1);
}
break;
}
default:


Loading…
Cancel
Save