fix: bypass calculation
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
|
use rand::RngExt;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use strum::IntoEnumIterator;
|
use strum::IntoEnumIterator;
|
||||||
use rand::RngExt;
|
|
||||||
|
|
||||||
use crate::dsp408::types::ConnectionStatus;
|
use crate::dsp408::types::ConnectionStatus;
|
||||||
use crate::dsp408::types::{
|
use crate::dsp408::types::{
|
||||||
|
|||||||
@@ -8,12 +8,19 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
common::errors::DSPError, dsp408::{
|
common::errors::DSPError,
|
||||||
client::default::{default_dsp_state, default_input_meters, default_output_meters, random_input_meters, random_output_meters}, mapper::{
|
dsp408::{
|
||||||
|
client::default::{
|
||||||
|
default_dsp_state, default_input_meters, default_output_meters, random_input_meters,
|
||||||
|
random_output_meters,
|
||||||
|
},
|
||||||
|
mapper::{
|
||||||
self,
|
self,
|
||||||
constants::{CONFIG_CHUNK_INDEX_MAX, PRESET_INDEX_MAX, delay_range},
|
constants::{CONFIG_CHUNK_INDEX_MAX, PRESET_INDEX_MAX, delay_range},
|
||||||
response::map_response,
|
response::map_response,
|
||||||
}, protocol::{commands, config::decode_config, frame::extract_frame}, types::{self, ConnectionStatus::Disconnected, DSPMode},
|
},
|
||||||
|
protocol::{commands, config::decode_config, frame::extract_frame},
|
||||||
|
types::{self, ConnectionStatus::Disconnected, DSPMode},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1794,10 +1801,7 @@ impl DSP408 {
|
|||||||
self.input_meters = random_input_meters();
|
self.input_meters = random_input_meters();
|
||||||
self.output_meters = random_output_meters();
|
self.output_meters = random_output_meters();
|
||||||
|
|
||||||
return Ok((
|
return Ok((self.input_meters.clone(), self.output_meters.clone()));
|
||||||
self.input_meters.clone(),
|
|
||||||
self.output_meters.clone(),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let request = commands::build_get_meter_levels();
|
let request = commands::build_get_meter_levels();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
mod dsp408;
|
|
||||||
mod default;
|
mod default;
|
||||||
|
mod dsp408;
|
||||||
|
|
||||||
pub use dsp408::DSP408;
|
pub use dsp408::DSP408;
|
||||||
|
|||||||
@@ -297,9 +297,7 @@ pub fn decode_config(payload: &[u8]) -> Result<types::DSPConfigState, DSPError>
|
|||||||
for (index, inp) in input_channels.iter_mut().enumerate() {
|
for (index, inp) in input_channels.iter_mut().enumerate() {
|
||||||
let bypass = input_peq_bitmap & (1 << index) != 0;
|
let bypass = input_peq_bitmap & (1 << index) != 0;
|
||||||
|
|
||||||
for peq in inp.peq_chain.bands.values_mut() {
|
inp.peq_chain.bypass = bypass;
|
||||||
peq.bypass = bypass;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let output_peq_bitmap = r.read_u16()?;
|
let output_peq_bitmap = r.read_u16()?;
|
||||||
@@ -307,9 +305,7 @@ pub fn decode_config(payload: &[u8]) -> Result<types::DSPConfigState, DSPError>
|
|||||||
for (index, out) in output_channels.iter_mut().enumerate() {
|
for (index, out) in output_channels.iter_mut().enumerate() {
|
||||||
let bypass = output_peq_bitmap & (1 << index) != 0;
|
let bypass = output_peq_bitmap & (1 << index) != 0;
|
||||||
|
|
||||||
for peq in out.peq_chain.bands.values_mut() {
|
out.peq_chain.bypass = bypass;
|
||||||
peq.bypass = bypass;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let bitmap = r.read_u16()?;
|
let bitmap = r.read_u16()?;
|
||||||
|
|||||||
+11
-13
@@ -2,8 +2,6 @@ use std::net::IpAddr;
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use dsp_thomann::dsp408::DSP408;
|
use dsp_thomann::dsp408::DSP408;
|
||||||
use dsp_thomann::dsp408::types;
|
|
||||||
use dsp_thomann::dsp408::types::InputChannel::InA;
|
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let host = IpAddr::from_str("192.168.49.30")?;
|
let host = IpAddr::from_str("192.168.49.30")?;
|
||||||
@@ -25,18 +23,18 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
// dsp.set_mute(types::Channel::Input(types::InputChannel::InA), true)?;
|
// dsp.set_mute(types::Channel::Input(types::InputChannel::InA), true)?;
|
||||||
|
|
||||||
let r = dsp.set_peq_band(
|
// let r = dsp.set_peq_band(
|
||||||
types::Channel::Input(InA),
|
// types::Channel::Input(InA),
|
||||||
types::PEQBand::B1,
|
// types::PEQBand::B1,
|
||||||
3.0,
|
// 3.0,
|
||||||
1400.0,
|
// 1400.0,
|
||||||
2.1,
|
// 2.1,
|
||||||
types::PEQFilter::LowShelf,
|
// types::PEQFilter::LowShelf,
|
||||||
false,
|
// false,
|
||||||
)?;
|
// )?;
|
||||||
dbg!(r);
|
// dbg!(r);
|
||||||
|
|
||||||
// dbg!(dsp.state()?);
|
dbg!(&dsp.state());
|
||||||
|
|
||||||
// let s = &dsp.state()?.current_config.input_states[&InputChannel::InA].peq_chain;
|
// let s = &dsp.state()?.current_config.input_states[&InputChannel::InA].peq_chain;
|
||||||
// dbg!(s)
|
// dbg!(s)
|
||||||
|
|||||||
Reference in New Issue
Block a user