Oystein Kristoffer Tveit
deb45a4570
This moves all communication with Mpv's unix socket into another tokio task, and uses message passing through clonable mpsc channels to receive commands to execute, and to send responses. |
||
---|---|---|
examples | ||
src | ||
.gitignore | ||
COPYING | ||
Cargo.toml | ||
README.md |
README.md
mpvipc
A small library which provides bindings to control existing mpv instances through sockets.
To make use of this library, please make sure mpv is started with the following option:
$ mpv --input-ipc-server=/tmp/mpv.sock --idle ...
Dependencies
mpv
cargo
(makedep)
Install
You can use this package with cargo.
Example
Make sure mpv is started with the following option:
$ mpv --input-ipc-server=/tmp/mpv.sock --idle
Here is a small code example which connects to the socket /tmp/mpv.sock and toggles playback.
extern crate mpvipc;
use mpvipc::*;
use std::sync::mpsc::channel;
fn main() {
let mpv = Mpv::connect("/tmp/mpv.sock").unwrap();
let paused: bool = mpv.get_property("pause").unwrap();
mpv.set_property("pause", !paused).expect("Error pausing");
}
For a more extensive example and proof of concept, see project mpvc.
Bugs / Ideas
Check out the Issue Tracker