@@ -508,11 +508,32 @@ impl BridgeServer {
508508 256 => crate :: audio:: BufferSize :: Samples256 ,
509509 512 => crate :: audio:: BufferSize :: Samples512 ,
510510 1024 => crate :: audio:: BufferSize :: Samples1024 ,
511- _ => crate :: audio:: BufferSize :: Samples128 ,
511+ _ => crate :: audio:: BufferSize :: Samples256 ,
512512 } ;
513513
514514 match app. audio_engine . set_buffer_size ( buffer_size) {
515- Ok ( _) => None ,
515+ Ok ( _) => {
516+ // Send updated device info to TUI
517+ let device_info = app. audio_engine . get_device_info ( ) ;
518+ if let Some ( ref tx) = app. tui_tx {
519+ let _ = tx. try_send ( AppEvent :: DeviceInfo {
520+ input_device : device_info. input_device . clone ( ) ,
521+ output_device : device_info. output_device . clone ( ) ,
522+ sample_rate : device_info. sample_rate ,
523+ buffer_size : device_info. buffer_size ,
524+ } ) ;
525+ }
526+ // Send DeviceConfig back to browser to confirm
527+ Some ( NativeMessage :: DeviceConfig {
528+ input_device : app. audio_engine . get_input_devices ( ) . ok ( )
529+ . and_then ( |devs| devs. into_iter ( ) . find ( |d| Some ( d. id . clone ( ) ) == app. audio_engine . get_input_device_id ( ) ) ) ,
530+ output_device : app. audio_engine . get_output_devices ( ) . ok ( )
531+ . and_then ( |devs| devs. into_iter ( ) . find ( |d| Some ( d. id . clone ( ) ) == app. audio_engine . get_output_device_id ( ) ) ) ,
532+ sample_rate : device_info. sample_rate ,
533+ buffer_size : device_info. buffer_size ,
534+ channel_config : app. audio_engine . get_channel_config ( ) ,
535+ } )
536+ }
516537 Err ( e) => Some ( NativeMessage :: Error {
517538 code : "CONFIG_ERROR" . to_string ( ) ,
518539 message : e. to_string ( ) ,
@@ -531,7 +552,28 @@ impl BridgeServer {
531552 } ;
532553
533554 match app. audio_engine . set_sample_rate ( sample_rate) {
534- Ok ( _) => None ,
555+ Ok ( _) => {
556+ // Send updated device info to TUI
557+ let device_info = app. audio_engine . get_device_info ( ) ;
558+ if let Some ( ref tx) = app. tui_tx {
559+ let _ = tx. try_send ( AppEvent :: DeviceInfo {
560+ input_device : device_info. input_device . clone ( ) ,
561+ output_device : device_info. output_device . clone ( ) ,
562+ sample_rate : device_info. sample_rate ,
563+ buffer_size : device_info. buffer_size ,
564+ } ) ;
565+ }
566+ // Send DeviceConfig back to browser to confirm
567+ Some ( NativeMessage :: DeviceConfig {
568+ input_device : app. audio_engine . get_input_devices ( ) . ok ( )
569+ . and_then ( |devs| devs. into_iter ( ) . find ( |d| Some ( d. id . clone ( ) ) == app. audio_engine . get_input_device_id ( ) ) ) ,
570+ output_device : app. audio_engine . get_output_devices ( ) . ok ( )
571+ . and_then ( |devs| devs. into_iter ( ) . find ( |d| Some ( d. id . clone ( ) ) == app. audio_engine . get_output_device_id ( ) ) ) ,
572+ sample_rate : device_info. sample_rate ,
573+ buffer_size : device_info. buffer_size ,
574+ channel_config : app. audio_engine . get_channel_config ( ) ,
575+ } )
576+ }
535577 Err ( e) => Some ( NativeMessage :: Error {
536578 code : "CONFIG_ERROR" . to_string ( ) ,
537579 message : e. to_string ( ) ,
0 commit comments