Add support for --loopback-no-mix flag and topology synchronization
- Introduced the `--loopback-no-mix` flag to control 2-node vs 4-node loopback topologies. - Updated topology handling logic to recompute and migrate as needed based on loopback flags. - Enhanced database schema to include `loopback_no_mix` with automatic migration for backward compatibility. - Refactored `create`, `edit`, and `route` commands to integrate new topology management capabilities. - Improved `list` command output to include architecture details.
This commit is contained in:
@@ -21,7 +21,7 @@ pub fn run(args: CreateArgs) -> Result<()> {
|
||||
let orig_sink = default_output("get-default-sink");
|
||||
let orig_source = default_output("get-default-source");
|
||||
|
||||
let stages = loopback::create_stages(&graph, &names)?;
|
||||
let stage = loopback::create_simple_stage(&graph, &names, &[], &[])?;
|
||||
|
||||
if let Some(sink) = &orig_sink {
|
||||
let _ = Command::new("pactl").args(["set-default-sink", sink]).status();
|
||||
@@ -38,16 +38,19 @@ pub fn run(args: CreateArgs) -> Result<()> {
|
||||
ui::warn(&format!("removed {removed} unexpected monitor feedback link(s)."));
|
||||
}
|
||||
|
||||
// A fresh vmic always starts as Simple2Node - no source can be mixed in
|
||||
// yet, so there's nothing for a 4-node split to isolate (see
|
||||
// commands::topology). mid_name/mix_name are still stored even though no
|
||||
// live node backs them yet: cheap, and needed if this vmic later
|
||||
// upgrades. mix_node_id/mix_pid stay at their Default (None).
|
||||
let mut state = VmicState {
|
||||
name: name.clone(),
|
||||
sink_name: names.sink.clone(),
|
||||
mid_name: names.mid,
|
||||
mix_name: names.mix,
|
||||
source_name: names.source.clone(),
|
||||
sink_node_id: Some(stages.sink_node_id),
|
||||
mix_node_id: Some(stages.mix_node_id),
|
||||
sink_pid: Some(stages.sink_pid as i64),
|
||||
mix_pid: Some(stages.mix_pid as i64),
|
||||
sink_node_id: Some(stage.sink_node_id),
|
||||
sink_pid: Some(stage.pid as i64),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user