@@ -11,7 +11,7 @@ use std::process::exit;
11
11
use std:: { io, mem} ;
12
12
13
13
const BUFFERED_LATENCY : f32 = 0.125 ; // seconds
14
- const BUFFERED_PERIODS : u8 = 4 ;
14
+ const BUFFERED_PERIODS : Frames = 4 ;
15
15
16
16
pub struct AlsaSink {
17
17
pcm : Option < PCM > ,
@@ -48,7 +48,7 @@ fn open_device(dev_name: &str, format: AudioFormat) -> Result<(PCM, Frames), Box
48
48
// latency = period_size * periods / (rate * bytes_per_frame)
49
49
// For stereo samples encoded as 32-bit float, one frame has a length of eight bytes.
50
50
let mut period_size = ( ( SAMPLES_PER_SECOND * sample_size as u32 ) as f32
51
- * ( BUFFERED_LATENCY / BUFFERED_PERIODS as f32 ) ) as i32 ;
51
+ * ( BUFFERED_LATENCY / BUFFERED_PERIODS as f32 ) ) as Frames ;
52
52
53
53
// Set hardware parameters: 44100 Hz / stereo / 32-bit float or 16-bit signed integer
54
54
{
@@ -58,7 +58,7 @@ fn open_device(dev_name: &str, format: AudioFormat) -> Result<(PCM, Frames), Box
58
58
hwp. set_rate ( SAMPLE_RATE , ValueOr :: Nearest ) ?;
59
59
hwp. set_channels ( NUM_CHANNELS as u32 ) ?;
60
60
period_size = hwp. set_period_size_near ( period_size, ValueOr :: Greater ) ?;
61
- hwp. set_buffer_size_near ( period_size * BUFFERED_PERIODS as i32 ) ?;
61
+ hwp. set_buffer_size_near ( period_size * BUFFERED_PERIODS ) ?;
62
62
pcm. hw_params ( & hwp) ?;
63
63
64
64
let swp = pcm. sw_params_current ( ) ?;
@@ -102,7 +102,7 @@ impl Sink for AlsaSink {
102
102
self . pcm = Some ( p) ;
103
103
// Create a buffer for all samples for a full period
104
104
self . buffer =
105
- Vec :: with_capacity ( ( period_size * BUFFERED_PERIODS as i32 ) as usize ) ;
105
+ Vec :: with_capacity ( ( period_size * BUFFERED_PERIODS ) as usize ) ;
106
106
}
107
107
Err ( e) => {
108
108
error ! ( "Alsa error PCM open {}" , e) ;
0 commit comments