feat: change wivrn bitrate in ui to mbits

This commit is contained in:
PLYSHKA 2024-01-07 19:54:57 +00:00 committed by GabMus
commit 1754c07455
2 changed files with 19 additions and 3 deletions

View file

@ -2,6 +2,7 @@ use crate::{
file_builders::wivrn_config::{Codec, Encoder, WivrnConfEncoder}, file_builders::wivrn_config::{Codec, Encoder, WivrnConfEncoder},
ui::{ ui::{
preference_rows::{combo_row, number_entry_row, spin_row}, preference_rows::{combo_row, number_entry_row, spin_row},
util::{bits_from_mbits, bits_to_mbits},
wivrn_conf_editor::WivrnConfEditorMsg, wivrn_conf_editor::WivrnConfEditorMsg,
}, },
}; };
@ -85,9 +86,13 @@ impl AsyncFactoryComponent for WivrnEncoderModel {
} }
) -> adw::ComboRow, ) -> adw::ComboRow,
add: bitrate_row = &number_entry_row( add: bitrate_row = &number_entry_row(
"Bitrate", "Bitrate (Mbps)",
&self.encoder_conf.bitrate &self.encoder_conf.bitrate
.and_then(|n| Some(n.to_string())) .and_then(|n| if let Some(mbits) = bits_to_mbits(n) {
Some(mbits.to_string())
} else {
None
})
.unwrap_or_default(), .unwrap_or_default(),
false, false,
{ {
@ -98,7 +103,10 @@ impl AsyncFactoryComponent for WivrnEncoderModel {
if txt.is_empty() { if txt.is_empty() {
None None
} else { } else {
Some(txt.parse::<u32>().unwrap()) match txt.parse::<u32>() {
Ok(bits) => bits_from_mbits(bits),
Err(e) => None,
}
} }
)); ));
} }

View file

@ -61,3 +61,11 @@ pub fn copy_text(txt: &str) {
} }
} }
} }
pub fn bits_to_mbits(bits: u32) -> Option<u32> {
bits.checked_div(1000000)
}
pub fn bits_from_mbits(mbits: u32) -> Option<u32> {
mbits.checked_mul(1000000)
}