fix: bypass calculation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use rand::RngExt;
|
||||
use std::collections::HashMap;
|
||||
use strum::IntoEnumIterator;
|
||||
use rand::RngExt;
|
||||
|
||||
use crate::dsp408::types::ConnectionStatus;
|
||||
use crate::dsp408::types::{
|
||||
|
||||
@@ -8,12 +8,19 @@ use std::{
|
||||
};
|
||||
|
||||
use crate::{
|
||||
common::errors::DSPError, dsp408::{
|
||||
client::default::{default_dsp_state, default_input_meters, default_output_meters, random_input_meters, random_output_meters}, mapper::{
|
||||
common::errors::DSPError,
|
||||
dsp408::{
|
||||
client::default::{
|
||||
default_dsp_state, default_input_meters, default_output_meters, random_input_meters,
|
||||
random_output_meters,
|
||||
},
|
||||
mapper::{
|
||||
self,
|
||||
constants::{CONFIG_CHUNK_INDEX_MAX, PRESET_INDEX_MAX, delay_range},
|
||||
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.output_meters = random_output_meters();
|
||||
|
||||
return Ok((
|
||||
self.input_meters.clone(),
|
||||
self.output_meters.clone(),
|
||||
));
|
||||
return Ok((self.input_meters.clone(), self.output_meters.clone()));
|
||||
}
|
||||
|
||||
let request = commands::build_get_meter_levels();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
mod dsp408;
|
||||
mod default;
|
||||
mod 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() {
|
||||
let bypass = input_peq_bitmap & (1 << index) != 0;
|
||||
|
||||
for peq in inp.peq_chain.bands.values_mut() {
|
||||
peq.bypass = bypass;
|
||||
}
|
||||
inp.peq_chain.bypass = bypass;
|
||||
}
|
||||
|
||||
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() {
|
||||
let bypass = output_peq_bitmap & (1 << index) != 0;
|
||||
|
||||
for peq in out.peq_chain.bands.values_mut() {
|
||||
peq.bypass = bypass;
|
||||
}
|
||||
out.peq_chain.bypass = bypass;
|
||||
}
|
||||
|
||||
let bitmap = r.read_u16()?;
|
||||
|
||||
+11
-13
@@ -2,8 +2,6 @@ use std::net::IpAddr;
|
||||
use std::str::FromStr;
|
||||
|
||||
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>> {
|
||||
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)?;
|
||||
|
||||
let r = dsp.set_peq_band(
|
||||
types::Channel::Input(InA),
|
||||
types::PEQBand::B1,
|
||||
3.0,
|
||||
1400.0,
|
||||
2.1,
|
||||
types::PEQFilter::LowShelf,
|
||||
false,
|
||||
)?;
|
||||
dbg!(r);
|
||||
// let r = dsp.set_peq_band(
|
||||
// types::Channel::Input(InA),
|
||||
// types::PEQBand::B1,
|
||||
// 3.0,
|
||||
// 1400.0,
|
||||
// 2.1,
|
||||
// types::PEQFilter::LowShelf,
|
||||
// false,
|
||||
// )?;
|
||||
// dbg!(r);
|
||||
|
||||
// dbg!(dsp.state()?);
|
||||
dbg!(&dsp.state());
|
||||
|
||||
// let s = &dsp.state()?.current_config.input_states[&InputChannel::InA].peq_chain;
|
||||
// dbg!(s)
|
||||
|
||||
Reference in New Issue
Block a user