playback controls
This commit is contained in:
@@ -117,17 +117,17 @@ KEYS_N_QUIT="${KEYS_N_QUIT:-"q"}"
|
||||
|
||||
# Playback:
|
||||
KEYS_PLAY="${KEYS_PLAY:-"enter"}"
|
||||
KEYS_QUEUE="${KEYS_QUEUE:-"ctrl-alt-m"}"
|
||||
KEYS_QUEUE="${KEYS_QUEUE:-"ctrl-alt-m"}" # That's actually alt-enter
|
||||
KEYS_QUEUE_NEXT="${KEYS_QUEUE_NEXT:-"ctrl-alt-n"}"
|
||||
KEYS_TOGGLE_PLAYBACK="${KEYS_TOGGLE_PLAYBACK:-"alt-space"}"
|
||||
KEYS_PLAY_NEXT="${KEYS_PLAY_NEXT:-"alt-right"}"
|
||||
KEYS_PLAY_PREV="${KEYS_PLAY_PREV:-"alt-left"}"
|
||||
KEYS_SEEK_FORWARD="${KEYS_SEEK_FORWARD:-"alt-shift-right,shift-right"}"
|
||||
KEYS_SEEK_BACKWARD="${KEYS_SEEK_BACKWARD:-"alt-shift-left,shift-left"}"
|
||||
KEYS_TOGGLE_PLAYBACK="${KEYS_TOGGLE_PLAYBACK:-"ctrl-space"}"
|
||||
KEYS_PLAY_NEXT="${KEYS_PLAY_NEXT:-"alt-n"}"
|
||||
KEYS_PLAY_PREV="${KEYS_PLAY_PREV:-"alt-p"}"
|
||||
KEYS_SEEK_FORWARD="${KEYS_SEEK_FORWARD:-"alt-N"}"
|
||||
KEYS_SEEK_BACKWARD="${KEYS_SEEK_BACKWARD:-"alt-P"}"
|
||||
KEYS_PLAYBACK="$KEYS_PLAY,$KEYS_QUEUE,$KEYS_QUEUE_NEXT,$KEYS_TOGGLE_PLAYBACK,$KEYS_PLAY_NEXT,$KEYS_PLAY_PREV,$KEYS_SEEK_FORWARD,$KEYS_SEEK_BACKWARD"
|
||||
KEYS_N_PLAY="${KEYS_PLAY:-"."}"
|
||||
KEYS_N_QUEUE="${KEYS_QUEUE:-","}"
|
||||
KEYS_N_QUEUE_NEXT="${KEYS_QUEUE_NEXT:-";"}"
|
||||
KEYS_N_PLAY="${KEYS_N_PLAY:-"."}"
|
||||
KEYS_N_QUEUE="${KEYS_N_QUEUE:-";"}"
|
||||
KEYS_N_QUEUE_NEXT="${KEYS_N_QUEUE_NEXT:-":"}"
|
||||
KEYS_N_TOGGLE_PLAYBACK="${KEYS_N_TOGGLE_PLAYBACK:-"space"}"
|
||||
KEYS_N_PLAY_NEXT="${KEYS_N_PLAY_NEXT:-"right,n"}"
|
||||
KEYS_N_PLAY_PREV="${KEYS_N_PLAY_PREV:-"left,p"}"
|
||||
|
@@ -22,6 +22,11 @@ mpv_playlist_position() {
|
||||
__mpv_get '${playlist-pos}'
|
||||
}
|
||||
|
||||
mpv_playlist_move() {
|
||||
debug "moving $1 -> $2"
|
||||
__mpv_command_with_args2 "playlist-move" "$1" "$2" >>/tmp/foo 2>/dev/stdout
|
||||
}
|
||||
|
||||
mpv_quit() {
|
||||
__mpv_command "quit"
|
||||
}
|
||||
@@ -47,6 +52,22 @@ mpv_queue_list() {
|
||||
rm -f "$t"
|
||||
}
|
||||
|
||||
mpv_queue_next_list() {
|
||||
t=$(mktemp)
|
||||
cat >"$t"
|
||||
pos=$(mpv_playlist_position)
|
||||
cnt1=$(mpv_playlist_count)
|
||||
__mpv_command_with_args2 "loadlist" "$t" "append-play"
|
||||
rm -f "$t"
|
||||
cnt2=$(mpv_playlist_count)
|
||||
diff=$((cnt2 - cnt1))
|
||||
[ "$diff" -gt 0 ] || return
|
||||
# Move added items right after current item (numbers are 0 based)
|
||||
for i in $(seq "$diff"); do
|
||||
mpv_playlist_move $((cnt1 + i - 1)) $((pos + i))
|
||||
done
|
||||
}
|
||||
|
||||
mpv_next() {
|
||||
__mpv_command "playlist-next"
|
||||
}
|
||||
|
31
src/sh/playback.sh
Normal file
31
src/sh/playback.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
# Available playback commands
|
||||
PLAYBACK_CMD_PLAY="play"
|
||||
PLAYBACK_CMD_QUEUE="queue"
|
||||
PLAYBACK_CMD_QUEUE_NEXT="queue-next"
|
||||
PLAYBACK_CMD_TOGGLE_PLAYBACK="toggle"
|
||||
PLAYBACK_CMD_PLAY_NEXT="next"
|
||||
PLAYBACK_CMD_PLAY_PREV="prev"
|
||||
PLAYBACK_CMD_SEEK_FORWARD="seekf"
|
||||
PLAYBACK_CMD_SEEK_BACKWARD="seekb"
|
||||
|
||||
# Obtain playback command from key press
|
||||
# @argument $1: key
|
||||
playback_cmd_from_key() {
|
||||
key=$1
|
||||
case ",$KEYS_PLAY," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY" && return ;; esac
|
||||
case ",$KEYS_N_PLAY," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY" && return ;; esac
|
||||
case ",$KEYS_QUEUE," in *",$key,"*) echo "$PLAYBACK_CMD_QUEUE" && return ;; esac
|
||||
case ",$KEYS_N_QUEUE," in *",$key,"*) echo "$PLAYBACK_CMD_QUEUE" && return ;; esac
|
||||
case ",$KEYS_QUEUE_NEXT," in *",$key,"*) echo "$PLAYBACK_CMD_QUEUE_NEXT" && return ;; esac
|
||||
case ",$KEYS_N_QUEUE_NEXT," in *",$key,"*) echo "$PLAYBACK_CMD_QUEUE_NEXT" && return ;; esac
|
||||
case ",$KEYS_TOGGLE_PLAYBACK," in *",$key,"*) echo "$PLAYBACK_CMD_TOGGLE_PLAYBACK" && return ;; esac
|
||||
case ",$KEYS_N_TOGGLE_PLAYBACK," in *",$key,"*) echo "$PLAYBACK_CMD_TOGGLE_PLAYBACK" && return ;; esac
|
||||
case ",$KEYS_PLAY_NEXT," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY_NEXT" && return ;; esac
|
||||
case ",$KEYS_N_PLAY_NEXT," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY_NEXT" && return ;; esac
|
||||
case ",$KEYS_PLAY_PREV," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY_PREV" && return ;; esac
|
||||
case ",$KEYS_N_PLAY_PREV," in *",$key,"*) echo "$PLAYBACK_CMD_PLAY_PREV" && return ;; esac
|
||||
case ",$KEYS_SEEK_FORWARD," in *",$key,"*) echo "$PLAYBACK_CMD_SEEK_FORWARD" && return ;; esac
|
||||
case ",$KEYS_N_SEEK_FORWARD," in *",$key,"*) echo "$PLAYBACK_CMD_SEEK_FORWARD" && return ;; esac
|
||||
case ",$KEYS_SEEK_BACKWARD," in *",$key,"*) echo "$PLAYBACK_CMD_SEEK_BACKWARD" && return ;; esac
|
||||
case ",$KEYS_N_SEEK_BACKWARD," in *",$key,"*) echo "$PLAYBACK_CMD_SEEK_BACKWARD" && return ;; esac
|
||||
}
|
Reference in New Issue
Block a user