@@ -324,16 +324,17 @@ impl Device {
324
324
let hw_params = alsa:: pcm:: HwParams :: any ( handle) ?;
325
325
326
326
// TODO: check endianness
327
- const FORMATS : [ ( SampleFormat , alsa:: pcm:: Format ) ; 8 ] = [
327
+ const FORMATS : [ ( SampleFormat , alsa:: pcm:: Format ) ; 12 ] = [
328
328
( SampleFormat :: I8 , alsa:: pcm:: Format :: S8 ) ,
329
329
( SampleFormat :: U8 , alsa:: pcm:: Format :: U8 ) ,
330
330
( SampleFormat :: I16 , alsa:: pcm:: Format :: S16LE ) ,
331
331
//SND_PCM_FORMAT_S16_BE,
332
332
( SampleFormat :: U16 , alsa:: pcm:: Format :: U16LE ) ,
333
333
//SND_PCM_FORMAT_U16_BE,
334
334
//SND_PCM_FORMAT_S24_LE,
335
+ ( SampleFormat :: I24 , alsa:: pcm:: Format :: S24LE ) ,
335
336
//SND_PCM_FORMAT_S24_BE,
336
- //SND_PCM_FORMAT_U24_LE ,
337
+ ( SampleFormat :: U24 , alsa :: pcm :: Format :: U24LE ) ,
337
338
//SND_PCM_FORMAT_U24_BE,
338
339
( SampleFormat :: I32 , alsa:: pcm:: Format :: S32LE ) ,
339
340
//SND_PCM_FORMAT_S32_BE,
@@ -351,9 +352,9 @@ impl Device {
351
352
//SND_PCM_FORMAT_MPEG,
352
353
//SND_PCM_FORMAT_GSM,
353
354
//SND_PCM_FORMAT_SPECIAL,
354
- //SND_PCM_FORMAT_S24_3LE ,
355
+ ( SampleFormat :: I24_3 , alsa :: pcm :: Format :: S243LE ) ,
355
356
//SND_PCM_FORMAT_S24_3BE,
356
- //SND_PCM_FORMAT_U24_3LE ,
357
+ ( SampleFormat :: U24_3 , alsa :: pcm :: Format :: U243LE ) ,
357
358
//SND_PCM_FORMAT_U24_3BE,
358
359
//SND_PCM_FORMAT_S20_3LE,
359
360
//SND_PCM_FORMAT_S20_3BE,
@@ -1010,13 +1011,15 @@ fn set_hw_params_from_format(
1010
1011
match sample_format {
1011
1012
SampleFormat :: I8 => alsa:: pcm:: Format :: S8 ,
1012
1013
SampleFormat :: I16 => alsa:: pcm:: Format :: S16BE ,
1013
- // SampleFormat::I24 => alsa::pcm::Format::S24BE,
1014
+ SampleFormat :: I24 => alsa:: pcm:: Format :: S24BE ,
1015
+ SampleFormat :: I24_3 => alsa:: pcm:: Format :: S243BE ,
1014
1016
SampleFormat :: I32 => alsa:: pcm:: Format :: S32BE ,
1015
1017
// SampleFormat::I48 => alsa::pcm::Format::S48BE,
1016
1018
// SampleFormat::I64 => alsa::pcm::Format::S64BE,
1017
1019
SampleFormat :: U8 => alsa:: pcm:: Format :: U8 ,
1018
1020
SampleFormat :: U16 => alsa:: pcm:: Format :: U16BE ,
1019
- // SampleFormat::U24 => alsa::pcm::Format::U24BE,
1021
+ SampleFormat :: U24 => alsa:: pcm:: Format :: U24BE ,
1022
+ SampleFormat :: U24_3 => alsa:: pcm:: Format :: U243BE ,
1020
1023
SampleFormat :: U32 => alsa:: pcm:: Format :: U32BE ,
1021
1024
// SampleFormat::U48 => alsa::pcm::Format::U48BE,
1022
1025
// SampleFormat::U64 => alsa::pcm::Format::U64BE,
@@ -1035,13 +1038,15 @@ fn set_hw_params_from_format(
1035
1038
match sample_format {
1036
1039
SampleFormat :: I8 => alsa:: pcm:: Format :: S8 ,
1037
1040
SampleFormat :: I16 => alsa:: pcm:: Format :: S16LE ,
1038
- // SampleFormat::I24 => alsa::pcm::Format::S24LE,
1041
+ SampleFormat :: I24 => alsa:: pcm:: Format :: S24LE ,
1042
+ SampleFormat :: I24_3 => alsa:: pcm:: Format :: S243LE ,
1039
1043
SampleFormat :: I32 => alsa:: pcm:: Format :: S32LE ,
1040
1044
// SampleFormat::I48 => alsa::pcm::Format::S48LE,
1041
1045
// SampleFormat::I64 => alsa::pcm::Format::S64LE,
1042
1046
SampleFormat :: U8 => alsa:: pcm:: Format :: U8 ,
1043
1047
SampleFormat :: U16 => alsa:: pcm:: Format :: U16LE ,
1044
- // SampleFormat::U24 => alsa::pcm::Format::U24LE,
1048
+ SampleFormat :: U24 => alsa:: pcm:: Format :: U24LE ,
1049
+ SampleFormat :: U24_3 => alsa:: pcm:: Format :: U243LE ,
1045
1050
SampleFormat :: U32 => alsa:: pcm:: Format :: U32LE ,
1046
1051
// SampleFormat::U48 => alsa::pcm::Format::U48LE,
1047
1052
// SampleFormat::U64 => alsa::pcm::Format::U64LE,
0 commit comments