mirror of
https://github.com/Stremio/stremio-shell-ng.git
synced 2026-04-20 19:12:02 +00:00
Fix playback from offset
This commit is contained in:
parent
ae8ea1b8ce
commit
91f9d4a460
2 changed files with 37 additions and 4 deletions
|
|
@ -231,12 +231,20 @@ stringable!(MpvCmd);
|
|||
pub enum CmdVal {
|
||||
Single((MpvCmd,)),
|
||||
Double(MpvCmd, String),
|
||||
Tripple(MpvCmd, String, String),
|
||||
Quadruple(MpvCmd, String, String, String),
|
||||
Quintuple(MpvCmd, String, String, String, String),
|
||||
}
|
||||
impl From<CmdVal> for Vec<String> {
|
||||
fn from(cmd: CmdVal) -> Vec<String> {
|
||||
match cmd {
|
||||
CmdVal::Single(cmd) => vec![cmd.0.to_string()],
|
||||
CmdVal::Double(cmd, arg) => vec![cmd.to_string(), arg],
|
||||
CmdVal::Tripple(cmd, arg1, arg2) => vec![cmd.to_string(), arg1, arg2],
|
||||
CmdVal::Quadruple(cmd, arg1, arg2, arg3) => vec![cmd.to_string(), arg1, arg2, arg3],
|
||||
CmdVal::Quintuple(cmd, arg1, arg2, arg3, arg4) => {
|
||||
vec![cmd.to_string(), arg1, arg2, arg3, arg4]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,11 +160,36 @@ fn create_message_thread(
|
|||
};
|
||||
|
||||
let send_command = |cmd: CmdVal| {
|
||||
let (name, arg) = match cmd {
|
||||
CmdVal::Double(name, arg) => (name, format!(r#""{arg}""#)),
|
||||
CmdVal::Single((name,)) => (name, String::new()),
|
||||
let a1;
|
||||
let a2;
|
||||
let a3;
|
||||
let a4;
|
||||
let (name, args) = match cmd {
|
||||
CmdVal::Quintuple(name, arg1, arg2, arg3, arg4) => {
|
||||
a1 = format!(r#""{arg1}""#);
|
||||
a2 = format!(r#""{arg2}""#);
|
||||
a3 = format!(r#""{arg3}""#);
|
||||
a4 = format!(r#""{arg4}""#);
|
||||
(name, vec![a1.as_ref(), a2.as_ref(), a3.as_ref(), a4.as_ref()])
|
||||
}
|
||||
CmdVal::Quadruple(name, arg1, arg2, arg3) => {
|
||||
a1 = format!(r#""{arg1}""#);
|
||||
a2 = format!(r#""{arg2}""#);
|
||||
a3 = format!(r#""{arg3}""#);
|
||||
(name, vec![a1.as_ref(), a2.as_ref(), a3.as_ref()])
|
||||
}
|
||||
CmdVal::Tripple(name, arg1, arg2 ) => {
|
||||
a1 = format!(r#""{arg1}""#);
|
||||
a2 = format!(r#""{arg2}""#);
|
||||
(name, vec![a1.as_ref(), a2.as_ref()])
|
||||
},
|
||||
CmdVal::Double(name, arg1) => {
|
||||
a1 = format!(r#""{arg1}""#);
|
||||
(name, vec![a1.as_ref()])
|
||||
}
|
||||
CmdVal::Single((name,)) => (name, vec![]),
|
||||
};
|
||||
if let Err(error) = mpv.command(&name.to_string(), &[&arg]) {
|
||||
if let Err(error) = mpv.command(&name.to_string(), &args) {
|
||||
eprintln!("failed to execute MPV command: '{error:#}'")
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue