aboutsummaryrefslogtreecommitdiffstats
path: root/libmpv2/examples/protocol.rs
diff options
context:
space:
mode:
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 _
-}