@@ -47,14 +47,17 @@ fn mixer(_menu: &menu::Menu<Ctx>, item: &menu::Item<Ctx>, args: &[&str], _ctx: &
4747 None
4848 } ;
4949
50+ let mixer_int = selected_mixer. and_then ( |n| n. parse :: < u8 > ( ) . ok ( ) ) ;
51+
5052 let api = API . get ( ) ;
5153
5254 if let ( Some ( selected_mixer) , Some ( level_int) ) = ( selected_mixer, level_int) {
5355 let mut found = false ;
5456 for mixer_id in 0u8 ..=255u8 {
5557 match ( api. audio_mixer_channel_get_info ) ( mixer_id) {
5658 bios:: FfiOption :: Some ( mixer_info) => {
57- if mixer_info. name . as_str ( ) == selected_mixer {
59+ if ( Some ( mixer_id) == mixer_int) || ( mixer_info. name . as_str ( ) == selected_mixer)
60+ {
5861 if let Err ( e) =
5962 ( api. audio_mixer_channel_set_level ) ( mixer_id, level_int) . into ( )
6063 {
@@ -90,9 +93,10 @@ fn mixer(_menu: &menu::Menu<Ctx>, item: &menu::Item<Ctx>, args: &[&str], _ctx: &
9093 bios:: audio:: Direction :: Loopback => "Loop" ,
9194 bios:: audio:: Direction :: Output => "Out" ,
9295 } ;
93- if selected_mixer
94- . and_then ( |s| Some ( s == mixer_info. name . as_str ( ) ) )
95- . unwrap_or ( true )
96+ if ( Some ( mixer_id) == mixer_int)
97+ || selected_mixer
98+ . map ( |s| s == mixer_info. name . as_str ( ) )
99+ . unwrap_or ( true )
96100 {
97101 osprintln ! (
98102 "#{}: {} ({}) {}/{}" ,
@@ -136,14 +140,14 @@ fn play(_menu: &menu::Menu<Ctx>, _item: &menu::Item<Ctx>, args: &[&str], ctx: &m
136140
137141 let api = API . get ( ) ;
138142
139- let mut buffer = & mut scratch[ 0 ..4096 ] ;
143+ let buffer = & mut scratch[ 0 ..4096 ] ;
140144 let mut bytes = 0 ;
141145 let mut delta = 0 ;
142146
143147 let mut pause = false ;
144148 ' playback: while !file. eof ( ) {
145149 if !pause {
146- let bytes_read = mgr. read ( & mut volume, & mut file, & mut buffer) ?;
150+ let bytes_read = mgr. read ( & volume, & mut file, buffer) ?;
147151 let mut buffer = & buffer[ 0 ..bytes_read] ;
148152 while !buffer. is_empty ( ) {
149153 let slice = bios:: FfiByteSlice :: new ( buffer) ;
0 commit comments