WIP
This commit is contained in:
parent
894cc4e146
commit
66eac50be4
|
@ -480,6 +480,7 @@ dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
"clap",
|
"clap",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"futures",
|
||||||
"log",
|
"log",
|
||||||
"mpvipc-async",
|
"mpvipc-async",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -711,7 +712,6 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mpvipc-async"
|
name = "mpvipc-async"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://git.pvv.ntnu.no/oysteikt/mpvipc-async.git?rev=v0.1.0#467cac3c503887c4d6371ec5fdf1b23b3e0eb515"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures",
|
"futures",
|
||||||
"log",
|
"log",
|
||||||
|
|
|
@ -10,8 +10,9 @@ anyhow = "1.0.82"
|
||||||
axum = { version = "0.6.20", features = ["macros"] }
|
axum = { version = "0.6.20", features = ["macros"] }
|
||||||
clap = { version = "4.4.1", features = ["derive"] }
|
clap = { version = "4.4.1", features = ["derive"] }
|
||||||
env_logger = "0.10.0"
|
env_logger = "0.10.0"
|
||||||
|
futures = "0.3.30"
|
||||||
log = "0.4.20"
|
log = "0.4.20"
|
||||||
mpvipc-async = { git = "https://git.pvv.ntnu.no/oysteikt/mpvipc-async.git", rev = "v0.1.0" }
|
mpvipc-async = { path = "../mpvipc-async" }
|
||||||
serde = { version = "1.0.188", features = ["derive"] }
|
serde = { version = "1.0.188", features = ["derive"] }
|
||||||
serde_json = "1.0.105"
|
serde_json = "1.0.105"
|
||||||
tokio = { version = "1.32.0", features = ["full"] }
|
tokio = { version = "1.32.0", features = ["full"] }
|
||||||
|
|
40
src/main.rs
40
src/main.rs
|
@ -1,7 +1,8 @@
|
||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use axum::{Router, Server};
|
use axum::{Router, Server};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use mpvipc_async::Mpv;
|
use futures::StreamExt;
|
||||||
|
use mpvipc_async::{parse_property, Mpv, MpvExt, Switch};
|
||||||
use std::{
|
use std::{
|
||||||
fs::create_dir_all,
|
fs::create_dir_all,
|
||||||
net::{IpAddr, SocketAddr},
|
net::{IpAddr, SocketAddr},
|
||||||
|
@ -155,6 +156,43 @@ async fn main() -> anyhow::Result<()> {
|
||||||
mpv.disconnect().await?;
|
mpv.disconnect().await?;
|
||||||
proc.kill().await?;
|
proc.kill().await?;
|
||||||
}
|
}
|
||||||
|
/* DEBUG */
|
||||||
|
_ = async {
|
||||||
|
let mut event_stream = mpv.get_event_stream().await;
|
||||||
|
mpv.set_playback(Switch::Off).await.unwrap();
|
||||||
|
mpv.observe_property(1, "volume").await.unwrap();
|
||||||
|
mpv.observe_property(2, "pause").await.unwrap();
|
||||||
|
mpv.observe_property(3, "time-pos").await.unwrap();
|
||||||
|
mpv.observe_property(4, "duration").await.unwrap();
|
||||||
|
mpv.observe_property(5, "playlist").await.unwrap();
|
||||||
|
mpv.observe_property(6, "playlist-pos").await.unwrap();
|
||||||
|
mpv.observe_property(7, "tick").await.unwrap();
|
||||||
|
mpv.observe_property(8, "eof-reached").await.unwrap();
|
||||||
|
mpv.observe_property(9, "speed").await.unwrap();
|
||||||
|
mpv.observe_property(10, "filename").await.unwrap();
|
||||||
|
mpv.observe_property(11, "media-title").await.unwrap();
|
||||||
|
mpv.observe_property(12, "loop-file").await.unwrap();
|
||||||
|
mpv.observe_property(13, "loop-playlist").await.unwrap();
|
||||||
|
mpv.observe_property(14, "mute").await.unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
let event = event_stream.next().await;
|
||||||
|
if let Some(Ok(event)) = event {
|
||||||
|
match &event {
|
||||||
|
mpvipc_async::Event::PropertyChange { name, data, id } => {
|
||||||
|
let parsed_event_property = parse_property(name, data.clone());
|
||||||
|
log::info!("PropertyChange({}): {:#?}", id, parsed_event_property);
|
||||||
|
}
|
||||||
|
event => {
|
||||||
|
log::info!("Event: {:?}", event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} => {
|
||||||
|
|
||||||
|
}
|
||||||
|
/* END_DEBUG */
|
||||||
result = async {
|
result = async {
|
||||||
match Server::try_bind(&addr.clone()).context("Failed to bind server") {
|
match Server::try_bind(&addr.clone()).context("Failed to bind server") {
|
||||||
Ok(server) => server.serve(app.into_make_service()).await.context("Failed to serve app"),
|
Ok(server) => server.serve(app.into_make_service()).await.context("Failed to serve app"),
|
||||||
|
|
Loading…
Reference in New Issue