aboutsummaryrefslogtreecommitdiff
path: root/client-native-rift
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-10-07 19:59:43 +0200
committermetamuffin <metamuffin@disroot.org>2022-10-07 19:59:43 +0200
commit439428f5c3967f5dd76db5540e085cdd91e7b747 (patch)
tree35be38807c121c833439025721f8bf386b45a003 /client-native-rift
parent8f07699fbe594e1ec007fbc908adced89fc41f7e (diff)
downloadkeks-meet-439428f5c3967f5dd76db5540e085cdd91e7b747.tar
keks-meet-439428f5c3967f5dd76db5540e085cdd91e7b747.tar.bz2
keks-meet-439428f5c3967f5dd76db5540e085cdd91e7b747.tar.zst
some work on native lib
Diffstat (limited to 'client-native-rift')
-rw-r--r--client-native-rift/src/main.rs41
1 files changed, 36 insertions, 5 deletions
diff --git a/client-native-rift/src/main.rs b/client-native-rift/src/main.rs
index 0e458c4..9d97b8e 100644
--- a/client-native-rift/src/main.rs
+++ b/client-native-rift/src/main.rs
@@ -7,7 +7,9 @@
use bytes::Bytes;
use clap::{Parser, Subcommand};
-use client_native_lib::{connect, peer::Peer, webrtc::data_channel::RTCDataChannel, Config};
+use client_native_lib::{
+ peer::Peer, state::State, webrtc::data_channel::RTCDataChannel, Config, EventHandler,
+};
use log::{error, info};
use std::{future::Future, pin::Pin, sync::Arc};
use tokio::{
@@ -33,6 +35,9 @@ pub struct Args {
/// keks-meet server used for establishing p2p connection
#[clap(long, default_value = "wss://meet.metamuffin.org")]
signaling_uri: String,
+ /// username for the `identify` packet
+ #[clap(short, long, default_value = "guest")]
+ username: String,
/// pre-shared secret (aka. room name)
#[clap(short, long)]
secret: String,
@@ -43,16 +48,42 @@ pub struct Args {
async fn run() {
let args = Args::parse();
- connect(Config {
- secret: args.secret.clone(),
- signaling_uri: args.signaling_uri.clone(),
- })
+ let state = State::new(
+ Config {
+ secret: args.secret.clone(),
+ signaling_uri: args.signaling_uri.clone(),
+ username: args.username.clone(),
+ },
+ Box::new(Handler {}),
+ )
.await;
+ state.receive_loop().await;
+
tokio::signal::ctrl_c().await.unwrap();
error!("interrupt received, exiting");
}
+struct Handler {}
+
+impl EventHandler for Handler {
+ fn remote_resource_added(
+ &self,
+ peer: &Peer,
+ info: client_native_lib::protocol::ProvideInfo,
+ ) -> Pin<Box<dyn Future<Output = ()>>> {
+ todo!()
+ }
+
+ fn remote_resource_removed(
+ &self,
+ peer: &Peer,
+ id: String,
+ ) -> Pin<Box<dyn Future<Output = ()>>> {
+ todo!()
+ }
+}
+
#[derive(Subcommand)]
pub enum Action {
/// Send a file