repo_description: An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
repo_topics: android anydesk dart flatpak flutter flutter-apps ios linux macos p2p rdp remote-control remote-desktop rust rust-lang teamviewer vnc wayland windows
code: use hbb_common::{
      get_time,
      message_proto::{Message, VoiceCallRequest, VoiceCallResponse},
  };
  use scrap::CodecFormat;
  use std::collections::HashMap;
  
  #[derive(Debug, Default)]
  pub struct QualityStatus {
      pub speed: Option<String>,
      pub fps: HashMap<usize, i32>,
      pub delay: Option<i32>,
      pub target_bitrate: Option<i32>,
      pub codec_format: Option<CodecFormat>,
      pub chroma: Option<String>,
  }
  
  #[inline]
  pub fn new_voice_call_request(is_connect: bool) -> Message {
      let mut req = VoiceCallRequest::new();
      req.is_connect = is_connect;
      req.req_timestamp = get_time();
      let mut msg = Message::new();
      msg.set_voice_call_request(req);
      msg
  }
  
  #[inline]
  pub fn new_voice_call_response(request_timestamp: i64, accepted: bool) -> Message {
      let mut resp = VoiceCallResponse::new();
      resp.accepted = accepted;
      resp.req_timestamp = request_timestamp;
      resp.ack_timestamp = get_time();
      let mut msg = Message::new();
      msg.set_voice_call_response(resp);
      msg
  }
  