Go to file
h7x4 deb45a4570 Make entire project async
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.
2024-04-19 00:59:22 +02:00
2024-04-19 00:59:22 +02:00
2024-04-19 00:59:22 +02:00
2017-05-22 18:56:11 +02:00
2024-04-19 00:59:22 +02:00
2017-05-22 18:31:20 +02:00
2023-08-22 14:05:32 +03:00

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

2024-08-04 00:34:54 +02:00
Languages
Rust 98.4%
Nix 1%
Shell 0.6%