summaryrefslogtreecommitdiffstats
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs31
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!()
+}
+