about summary refs log tree commit diff stats
path: root/libmpv2/examples/protocol.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-23 12:57:19 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-23 12:58:02 +0200
commit0ae5018c33cc4bfe27583c9902472b499f4bd269 (patch)
treeafc2fbfcb126215f47afbc32e555d203d4d6d88c /libmpv2/examples/protocol.rs
parentchore(yt_dlp/progress_hook): Also consider the `total_bytes_estimate` field (diff)
downloadyt-0ae5018c33cc4bfe27583c9902472b499f4bd269.tar.gz
yt-0ae5018c33cc4bfe27583c9902472b499f4bd269.zip
refactor(libmpv2): Move to the `crates` directory
Diffstat (limited to 'libmpv2/examples/protocol.rs')
-rw-r--r--libmpv2/examples/protocol.rs87
1 files changed, 0 insertions, 87 deletions
diff --git a/libmpv2/examples/protocol.rs b/libmpv2/examples/protocol.rs
deleted file mode 100644
index 46702d6..0000000
--- a/libmpv2/examples/protocol.rs
+++ /dev/null
@@ -1,87 +0,0 @@
-// yt - A fully featured command line YouTube client
-//
-// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-// SPDX-License-Identifier: GPL-3.0-or-later
-//
-// This file is part of Yt.
-//
-// You should have received a copy of the License along with this program.
-// If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-use std::{
-    env,
-    fs::File,
-    io::{Read, Seek, SeekFrom},
-    mem, thread,
-    time::Duration,
-};
-
-#[cfg(all(not(test), not(feature = "protocols")))]
-compile_error!("The feature `protocols` needs to be enabled for this example`");
-
-#[cfg(feature = "protocols")]
-fn main() {
-    use libmpv2::{protocol::*, *};
-
-    let path = format!(
-        "filereader://{}",
-        env::args()
-            .nth(1)
-            .expect("Expected path to local media as argument, found nil.")
-    );
-
-    let protocol = unsafe {
-        Protocol::new(
-            "filereader".into(),
-            (),
-            open,
-            close,
-            read,
-            Some(seek),
-            Some(size),
-        )
-    };
-
-    let mpv = Mpv::new().unwrap();
-    mpv.set_property("volume", 25).unwrap();
-
-    let proto_ctx = mpv.create_protocol_context();
-    proto_ctx.register(protocol).unwrap();
-
-    mpv.command("loadfile", &[&path, "append-play"]).unwrap();
-
-    thread::sleep(Duration::from_secs(10));
-
-    mpv.command("seek", &["15"]).unwrap();
-
-    thread::sleep(Duration::from_secs(5));
-}
-
-fn open(_: &mut (), uri: &str) -> File {
-    // Open the file, and strip the `filereader://` part
-    let ret = File::open(&uri[13..]).unwrap();
-
-    println!("Opened file[{}], ready for orders o7", &uri[13..]);
-    ret
-}
-
-fn close(_: Box<File>) {
-    println!("Closing file, bye bye~~");
-}
-
-fn read(cookie: &mut File, buf: &mut [i8]) -> i64 {
-    unsafe {
-        let forbidden_magic = mem::transmute::<&mut [i8], &mut [u8]>(buf);
-
-        cookie.read(forbidden_magic).unwrap() as _
-    }
-}
-
-fn seek(cookie: &mut File, offset: i64) -> i64 {
-    println!("Seeking to byte {}", offset);
-    cookie.seek(SeekFrom::Start(offset as u64)).unwrap() as _
-}
-
-fn size(cookie: &mut File) -> i64 {
-    cookie.metadata().unwrap().len() as _
-}