@@ -37,7 +37,7 @@ impl Stream {
37
37
let mut port_names: Vec < String > = vec ! [ ] ;
38
38
// Create ports
39
39
for i in 0 ..channels {
40
- let port_try = client. register_port ( & format ! ( "in_{}" , i) , jack:: AudioIn :: default ( ) ) ;
40
+ let port_try = client. register_port ( & format ! ( "in_{}" , i) , jack:: AudioIn ) ;
41
41
match port_try {
42
42
Ok ( port) => {
43
43
// Get the port name in order to later connect it automatically
@@ -102,7 +102,7 @@ impl Stream {
102
102
let mut port_names: Vec < String > = vec ! [ ] ;
103
103
// Create ports
104
104
for i in 0 ..channels {
105
- let port_try = client. register_port ( & format ! ( "out_{}" , i) , jack:: AudioOut :: default ( ) ) ;
105
+ let port_try = client. register_port ( & format ! ( "out_{}" , i) , jack:: AudioOut ) ;
106
106
match port_try {
107
107
Ok ( port) => {
108
108
// Get the port name in order to later connect it automatically
@@ -218,15 +218,18 @@ impl StreamTrait for Stream {
218
218
}
219
219
}
220
220
221
+ type InputDataCallback = Box < dyn FnMut ( & Data , & InputCallbackInfo ) + Send + ' static > ;
222
+ type OutputDataCallback = Box < dyn FnMut ( & mut Data , & OutputCallbackInfo ) + Send + ' static > ;
223
+
221
224
struct LocalProcessHandler {
222
225
/// No new ports are allowed to be created after the creation of the LocalProcessHandler as that would invalidate the buffer sizes
223
226
out_ports : Vec < jack:: Port < jack:: AudioOut > > ,
224
227
in_ports : Vec < jack:: Port < jack:: AudioIn > > ,
225
228
226
229
sample_rate : SampleRate ,
227
230
buffer_size : usize ,
228
- input_data_callback : Option < Box < dyn FnMut ( & Data , & InputCallbackInfo ) + Send + ' static > > ,
229
- output_data_callback : Option < Box < dyn FnMut ( & mut Data , & OutputCallbackInfo ) + Send + ' static > > ,
231
+ input_data_callback : Option < InputDataCallback > ,
232
+ output_data_callback : Option < OutputDataCallback > ,
230
233
231
234
// JACK audio samples are 32-bit float (unless you do some custom dark magic)
232
235
temp_input_buffer : Vec < f32 > ,
@@ -238,15 +241,14 @@ struct LocalProcessHandler {
238
241
}
239
242
240
243
impl LocalProcessHandler {
244
+ #[ allow( too_many_arguments) ]
241
245
fn new (
242
246
out_ports : Vec < jack:: Port < jack:: AudioOut > > ,
243
247
in_ports : Vec < jack:: Port < jack:: AudioIn > > ,
244
248
sample_rate : SampleRate ,
245
249
buffer_size : usize ,
246
- input_data_callback : Option < Box < dyn FnMut ( & Data , & InputCallbackInfo ) + Send + ' static > > ,
247
- output_data_callback : Option <
248
- Box < dyn FnMut ( & mut Data , & OutputCallbackInfo ) + Send + ' static > ,
249
- > ,
250
+ input_data_callback : Option < InputDataCallback > ,
251
+ output_data_callback : Option < OutputDataCallback > ,
250
252
playing : Arc < AtomicBool > ,
251
253
error_callback_ptr : ErrorCallbackPtr ,
252
254
) -> Self {
@@ -270,12 +272,11 @@ impl LocalProcessHandler {
270
272
}
271
273
}
272
274
273
- fn temp_buffer_to_data ( temp_input_buffer : & mut Vec < f32 > , total_buffer_size : usize ) -> Data {
274
- let slice = & temp_input_buffer[ 0 ..total_buffer_size] ;
275
- let data = slice. as_ptr ( ) as * mut ( ) ;
275
+ fn temp_buffer_to_data ( temp_input_buffer : & mut [ f32 ] , total_buffer_size : usize ) -> Data {
276
+ let slice = & mut temp_input_buffer[ 0 ..total_buffer_size] ;
277
+ let data: * mut ( ) = slice. as_mut_ptr ( ) . cast ( ) ;
276
278
let len = total_buffer_size;
277
- let data = unsafe { Data :: from_parts ( data, len, JACK_SAMPLE_FORMAT ) } ;
278
- data
279
+ unsafe { Data :: from_parts ( data, len, JACK_SAMPLE_FORMAT ) }
279
280
}
280
281
281
282
impl jack:: ProcessHandler for LocalProcessHandler {
0 commit comments