@@ -324,16 +324,17 @@ impl Device {
324324 let hw_params = alsa:: pcm:: HwParams :: any ( handle) ?;
325325
326326 // TODO: check endianness
327- const FORMATS : [ ( SampleFormat , alsa:: pcm:: Format ) ; 8 ] = [
327+ const FORMATS : [ ( SampleFormat , alsa:: pcm:: Format ) ; 12 ] = [
328328 ( SampleFormat :: I8 , alsa:: pcm:: Format :: S8 ) ,
329329 ( SampleFormat :: U8 , alsa:: pcm:: Format :: U8 ) ,
330330 ( SampleFormat :: I16 , alsa:: pcm:: Format :: S16LE ) ,
331331 //SND_PCM_FORMAT_S16_BE,
332332 ( SampleFormat :: U16 , alsa:: pcm:: Format :: U16LE ) ,
333333 //SND_PCM_FORMAT_U16_BE,
334334 //SND_PCM_FORMAT_S24_LE,
335+ ( SampleFormat :: I24 , alsa:: pcm:: Format :: S24LE ) ,
335336 //SND_PCM_FORMAT_S24_BE,
336- //SND_PCM_FORMAT_U24_LE ,
337+ ( SampleFormat :: U24 , alsa :: pcm :: Format :: U24LE ) ,
337338 //SND_PCM_FORMAT_U24_BE,
338339 ( SampleFormat :: I32 , alsa:: pcm:: Format :: S32LE ) ,
339340 //SND_PCM_FORMAT_S32_BE,
@@ -351,9 +352,9 @@ impl Device {
351352 //SND_PCM_FORMAT_MPEG,
352353 //SND_PCM_FORMAT_GSM,
353354 //SND_PCM_FORMAT_SPECIAL,
354- //SND_PCM_FORMAT_S24_3LE ,
355+ ( SampleFormat :: I24_3 , alsa :: pcm :: Format :: S243LE ) ,
355356 //SND_PCM_FORMAT_S24_3BE,
356- //SND_PCM_FORMAT_U24_3LE ,
357+ ( SampleFormat :: U24_3 , alsa :: pcm :: Format :: U243LE ) ,
357358 //SND_PCM_FORMAT_U24_3BE,
358359 //SND_PCM_FORMAT_S20_3LE,
359360 //SND_PCM_FORMAT_S20_3BE,
@@ -1010,13 +1011,15 @@ fn set_hw_params_from_format(
10101011 match sample_format {
10111012 SampleFormat :: I8 => alsa:: pcm:: Format :: S8 ,
10121013 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 ,
10141016 SampleFormat :: I32 => alsa:: pcm:: Format :: S32BE ,
10151017 // SampleFormat::I48 => alsa::pcm::Format::S48BE,
10161018 // SampleFormat::I64 => alsa::pcm::Format::S64BE,
10171019 SampleFormat :: U8 => alsa:: pcm:: Format :: U8 ,
10181020 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 ,
10201023 SampleFormat :: U32 => alsa:: pcm:: Format :: U32BE ,
10211024 // SampleFormat::U48 => alsa::pcm::Format::U48BE,
10221025 // SampleFormat::U64 => alsa::pcm::Format::U64BE,
@@ -1035,13 +1038,15 @@ fn set_hw_params_from_format(
10351038 match sample_format {
10361039 SampleFormat :: I8 => alsa:: pcm:: Format :: S8 ,
10371040 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 ,
10391043 SampleFormat :: I32 => alsa:: pcm:: Format :: S32LE ,
10401044 // SampleFormat::I48 => alsa::pcm::Format::S48LE,
10411045 // SampleFormat::I64 => alsa::pcm::Format::S64LE,
10421046 SampleFormat :: U8 => alsa:: pcm:: Format :: U8 ,
10431047 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 ,
10451050 SampleFormat :: U32 => alsa:: pcm:: Format :: U32LE ,
10461051 // SampleFormat::U48 => alsa::pcm::Format::U48LE,
10471052 // SampleFormat::U64 => alsa::pcm::Format::U64LE,
0 commit comments