mirrors: print pw errors
This commit is contained in:
@@ -57,30 +57,33 @@ impl OverlayRenderer for MirrorRenderer {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Ok(pw_result) = maybe_pw_result {
|
match maybe_pw_result {
|
||||||
let node_id = pw_result.streams.first().unwrap().node_id; // streams guaranteed to have at least one element
|
Ok(pw_result) => {
|
||||||
log::info!("{}: PipeWire node selected: {}", self.name.clone(), node_id,);
|
let node_id = pw_result.streams.first().unwrap().node_id; // streams guaranteed to have at least one element
|
||||||
let capture = PipewireCapture::new(self.name.clone(), node_id);
|
log::info!("{}: PipeWire node selected: {}", self.name.clone(), node_id);
|
||||||
self.renderer = Some(ScreenRenderer::new_raw(
|
let capture = PipewireCapture::new(self.name.clone(), node_id);
|
||||||
self.name.clone(),
|
self.renderer = Some(ScreenRenderer::new_raw(
|
||||||
Box::new(capture),
|
|
||||||
));
|
|
||||||
app.tasks.enqueue(TaskType::Overlay(
|
|
||||||
OverlaySelector::Name(self.name.clone()),
|
|
||||||
Box::new(|app, o| {
|
|
||||||
o.grabbable = true;
|
|
||||||
o.interactable = true;
|
|
||||||
o.reset(app, false);
|
|
||||||
}),
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
log::warn!("Failed to create pipewire mirror");
|
|
||||||
self.renderer = None;
|
|
||||||
// drop self
|
|
||||||
app.tasks
|
|
||||||
.enqueue(TaskType::DropOverlay(OverlaySelector::Name(
|
|
||||||
self.name.clone(),
|
self.name.clone(),
|
||||||
)));
|
Box::new(capture),
|
||||||
|
));
|
||||||
|
app.tasks.enqueue(TaskType::Overlay(
|
||||||
|
OverlaySelector::Name(self.name.clone()),
|
||||||
|
Box::new(|app, o| {
|
||||||
|
o.grabbable = true;
|
||||||
|
o.interactable = true;
|
||||||
|
o.reset(app, false);
|
||||||
|
}),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
log::warn!("Failed to create mirror due to PipeWire error: {:?}", e);
|
||||||
|
self.renderer = None;
|
||||||
|
// drop self
|
||||||
|
app.tasks
|
||||||
|
.enqueue(TaskType::DropOverlay(OverlaySelector::Name(
|
||||||
|
self.name.clone(),
|
||||||
|
)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user