diff options
Diffstat (limited to 'src/client.rs')
-rw-r--r-- | src/client.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/client.rs b/src/client.rs new file mode 100644 index 0000000..1e38cce --- /dev/null +++ b/src/client.rs @@ -0,0 +1,31 @@ +use serde::{Deserialize, Serialize}; +use tokio::{io::AsyncWriteExt, net::UnixStream}; + +use crate::Error; + +#[derive(Debug, Clone, Copy, Serialize, Deserialize)] +pub enum ClientKind { + #[serde(rename = "mpris-icon")] + Icon, + #[serde(rename = "mpris-title")] + Title, + #[serde(rename = "mpris-prev")] + Prev, + #[serde(rename = "mpris-playPause")] + PlayPause, + #[serde(rename = "mpris-next")] + Next, + #[serde(rename = "mpris-volume")] + Volume, +} + +async fn client(kind: ClientKind) -> Result<(), Error> { + let stream = UnixStream::connect("/tmp/i3blocks-mpris.sock").await?; + let (mut reader, mut writer) = stream.into_split(); + + let buf = bincode::serialize(&kind)?; + writer.write_all(&buf).await?; + + todo!() +} + |