@@ -433,9 +433,21 @@ impl Application {
433433
434434 match ( event, & winsys) {
435435 ( FetchEvent :: Fetch , WindowingSystem :: Wayland ) => {
436- let new_proxy = Screencast :: new ( ) . await . unwrap ( ) ;
437- let new_session = new_proxy. create_session ( ) . await . unwrap ( ) ;
438- new_proxy
436+ let new_proxy = match Screencast :: new ( ) . await {
437+ Ok ( proxy) => proxy,
438+ Err ( err) => {
439+ error ! ( "Failed to create Screencast proxy" ) ;
440+ continue ;
441+ }
442+ } ;
443+ let new_session = match new_proxy. create_session ( ) . await {
444+ Ok ( session) => session,
445+ Err ( err) => {
446+ error ! ( "Failed to create screencast session" ) ;
447+ continue ;
448+ }
449+ } ;
450+ if let Err ( err) = new_proxy
439451 . select_sources (
440452 & new_session,
441453 CursorMode :: Embedded ,
@@ -445,24 +457,45 @@ impl Application {
445457 PersistMode :: DoNot ,
446458 )
447459 . await
448- . unwrap ( ) ;
460+ {
461+ error ! ( "Failed to select source: {err}" ) ;
462+ continue ;
463+ }
449464
450- let response = new_proxy
465+ let response = match new_proxy
451466 . start ( & new_session, None )
452467 . await
453- . unwrap ( )
454- . response ( )
455- . unwrap ( ) ;
456- let stream = response. streams ( ) . first ( ) . unwrap ( ) ;
457- let fd = new_proxy
458- . open_pipe_wire_remote ( & new_session)
459- . await
460- . unwrap ( )
461- . as_raw_fd ( ) ;
468+ {
469+ Ok ( resp) => resp,
470+ Err ( err) => {
471+ error ! ( "Failed to start screencast session: {err}" ) ;
472+ continue ;
473+ }
474+ } ;
475+ let response = match response. response ( ) {
476+ Ok ( resp) => resp,
477+ Err ( err) => {
478+ error ! ( "Failed to get response: {err}" ) ;
479+ continue ;
480+ }
481+ } ;
482+
483+ let Some ( stream) = response. streams ( ) . first ( ) else {
484+ error ! ( "No screencast streams available" ) ;
485+ continue ;
486+ } ;
487+
488+ // let fd = new_proxy
489+ // .open_pipe_wire_remote(&new_session)
490+ // .await
491+ // .unwrap()
492+ // .as_raw_fd();
493+
462494 event_tx
463495 . send ( Event :: VideosAvailable ( vec ! [ VideoSource :: PipeWire {
464496 node_id: stream. pipe_wire_node_id( ) ,
465- fd,
497+ // fd,
498+ fd: 0 ,
466499 } ] ) )
467500 . unwrap ( ) ;
468501
0 commit comments