From f769b7fd7352a2ea51899b3f07e77e34e5353f39 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Wed, 29 Jun 2022 17:01:37 -0700 Subject: [PATCH 1/9] Menu script --- scriptmodules/supplementary/bgm123.sh | 98 +++++++--------------- scriptmodules/supplementary/bgm123/menu.sh | 67 +++++++++++++++ 2 files changed, 96 insertions(+), 69 deletions(-) create mode 100644 scriptmodules/supplementary/bgm123/menu.sh diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 67a87545..4a560f89 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -53,7 +53,8 @@ function install_bin_bgm123() { local gamelist gamelist="$(_gamelist_bgm123)" - local scriptname="bgm_vol_fade.sh" + local configfile="$configdir/all/$md_id.cfg" + local fadescript="bgm_vol_fade.sh" local share="$datadir/bgm" local file @@ -65,16 +66,30 @@ function install_bin_bgm123() { fi done - cp "$md_data/$scriptname" "$md_inst" - chmod +x "$md_inst/$scriptname" - - touch "$datadir/retropiemenu/$md_id.rp" - cp "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" + cat > "$configfile" << _EOF_ +rootdir="$rootdir" +configdir="$configdir" +scriptdir="$scriptdir" +datadir="$datadir" +user="$user" +md_inst="$md_inst" +__backtitle="$__backtitle" +_EOF_ + chown $user:$user "$configfile" + + cp "$md_data/$fadescript" "$md_inst" + + cp "$md_data/menu.sh" "$md_inst/$md_id.sh" + sed -i '/#fnocotua/d' "$md_inst/$md_id.sh" + sed -i '/#autoconf/asource "'"$configfile"'" #fnocotua' "$md_inst/$md_id.sh" + + ln -sf "$md_inst/$md_id.sh" "$datadir/retropiemenu/$md_id.sh" + cp -f "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" chown -R $user:$user "$datadir/retropiemenu" - if ! grep "./$md_id.rp" "$gamelist" >/dev/null; then + if ! grep "./$md_id.sh" "$gamelist" >/dev/null; then xmlstarlet ed -L -s "/gameList" -t elem -n "gameTMP" \ - -s "//gameTMP" -t elem -n path -v "./$md_id.rp" \ + -s "//gameTMP" -t elem -n path -v "./$md_id.sh" \ -s "//gameTMP" -t elem -n name -v "Background Music" \ -s "//gameTMP" -t elem -n desc -v "Configure and control background music player. Enable or disable menu music while browsing and pause, resume, or skip current track." \ -s "//gameTMP" -t elem -n image -v "./icons/$md_id.png" \ @@ -119,8 +134,8 @@ function remove_bgm123() { local gamelist gamelist="$(_gamelist_bgm123)" - rm -f "$datadir/retropiemenu/$md_id.rp" "$datadir/retropiemenu/icons/$md_id.png" - xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" + rm -f "$datadir/retropiemenu/$md_id.sh" "$datadir/retropiemenu/icons/$md_id.png" + xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.sh')]" "$gamelist" disable_bgm123 remove_share_samba "bgm" @@ -148,70 +163,15 @@ function enable_bgm123() { done echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1) & #bgm123'; cat $autostart)" > "$autostart" - echo -e '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; pkill mpg123) #bgm123' >> "$bashrc" - echo -e '"'"$fadescript"'" -STOP & #bgm123' >> "$onstart" - echo -e '(sleep 1; "'"$fadescript"'" -CONT) & #bgm123' >> "$onend" + echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; pkill mpg123) #bgm123' >> "$bashrc" + echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" + echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" } function configure_bgm123() { [[ "$md_mode" == "install" ]] && enable_bgm123 } -function play_pause_bgm123() { - if pgrep mpg123 >/dev/null; then - su "$user" -c "$md_inst/bgm_vol_fade.sh &" - else - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" - fi -} - -function next_track_bgm123() { - pkill mpg123 - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" -} - function gui_bgm123() { - local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Choose an option for $md_id" 22 86 16) - while true; do - local enabled=0 - grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && enabled=1 - local options=() - if [[ "$enabled" -eq 1 ]]; then - options+=( - E "Enable or disable background music (currently: Enabled)" - ) - if pgrep emulationstatio >/dev/null; then - options+=( - P "Play / pause" - N "Next track" - ) - fi - else - options+=( - E "Enable or disable background music (currently: Disabled)" - ) - fi - local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) - if [[ -n "$choice" ]]; then - case "$choice" in - E) - if [[ "$enabled" -eq 1 ]]; then - disable_bgm123 - printMsgs "dialog" "Background music disabled." - else - enable_bgm123 - printMsgs "dialog" "Background music enabled." - fi - ;; - P) - play_pause_bgm123 - ;; - N) - next_track_bgm123 - ;; - esac - else - break - fi - done + bash "$md_inst/$md_id.sh" } diff --git a/scriptmodules/supplementary/bgm123/menu.sh b/scriptmodules/supplementary/bgm123/menu.sh new file mode 100644 index 00000000..6897a647 --- /dev/null +++ b/scriptmodules/supplementary/bgm123/menu.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Menu GUI for bgm123 background music in RetroPie. + +#autoconf +#fnocotua + +function playPause() { + if pgrep mpg123 >/dev/null; then + bash "$md_inst/bgm_vol_fade.sh" & + else + sudo su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + fi +} + +function nextTrack() { + pkill mpg123 + sudo su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" +} + +function showMenu() { + local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration menu for bgm123. Please choose an option." 22 86 16) + while true; do + local enabled=0 + grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && enabled=1 + local options=() + if [[ "$enabled" -eq 1 ]]; then + options+=( + E "Enable or disable background music (currently: Enabled)" + ) + if pgrep emulationstatio >/dev/null; then + options+=( + P "Play / pause" + N "Next track" + ) + fi + else + options+=( + E "Enable or disable background music (currently: Disabled)" + ) + fi + local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) + if [[ -n "$choice" ]]; then + case "$choice" in + E) + if [[ "$enabled" -eq 1 ]]; then + sudo su "$user" -c "sudo $scriptdir/retropie_packages.sh bgm123 disable" + dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music disabled." 20 60 >/dev/tty + else + sudo su "$user" -c "sudo $scriptdir/retropie_packages.sh bgm123 enable" + dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music enabled." 20 60 >/dev/tty + fi + ;; + P) + playPause + ;; + N) + nextTrack + ;; + esac + else + break + fi + done +} + +showMenu From 824b4c968ec22f36a658d1e3c69199e658bb1dc6 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Thu, 30 Jun 2022 12:14:54 -0700 Subject: [PATCH 2/9] User config --- scriptmodules/supplementary/bgm123.sh | 173 +++++++++++++----- .../supplementary/bgm123/bgm_vol_fade.sh | 27 ++- scriptmodules/supplementary/bgm123/menu.sh | 48 ++++- 3 files changed, 189 insertions(+), 59 deletions(-) diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 4a560f89..0afbf3d1 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -15,10 +15,6 @@ rp_module_help="Place your MP3 files in $datadir/bgm" rp_module_section="exp" rp_module_flags="!all rpi" -function depends_bgm123() { - getDepends mpg123 -} - function _autostart_bgm123() { echo "$configdir/all/autostart.sh" } @@ -41,7 +37,28 @@ function _gamelist_bgm123() { echo "$xmlfile" } +function depends_bgm123() { + getDepends mpg123 +} + function install_bin_bgm123() { + local fadescript="bgm_vol_fade.sh" + local menuconf="$md_inst/$md_id.menuconf" + local autoconf="$configdir/all/$md_id.cfg" + + cp "$md_data/$fadescript" "$md_inst" + cp "$md_data/menu.sh" "$md_inst/$md_id.sh" + cp -f "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" + + sed -i 's|.*#menuconf.*|source "'"$menuconf"'" #menuconf|' "$md_inst/$md_id.sh" + sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$md_id.sh" + sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$fadescript" + + ln -sf "$md_inst/$md_id.sh" "$datadir/retropiemenu/$md_id.sh" + chown -R $user:$user "$datadir/retropiemenu" +} + +function configure_bgm123() { local autostart autostart="$(_autostart_bgm123)" local bashrc @@ -53,11 +70,13 @@ function install_bin_bgm123() { local gamelist gamelist="$(_gamelist_bgm123)" - local configfile="$configdir/all/$md_id.cfg" - local fadescript="bgm_vol_fade.sh" + local menuconf="$md_inst/$md_id.menuconf" + local autoconf="$configdir/all/$md_id.cfg" local share="$datadir/bgm" local file + [[ "$md_mode" == "remove" ]] && return + for file in "$autostart" "$bashrc" "$onstart" "$onend"; do # preserve original file versions if [[ -f "$file" && ! -f "$file.old.$md_id" ]]; then @@ -66,26 +85,31 @@ function install_bin_bgm123() { fi done - cat > "$configfile" << _EOF_ + cat > "$menuconf" << _EOF_ +# Menu variables for bgm123 +__backtitle="$__backtitle" +autostart="$autostart" +bashrc="$bashrc" +onstart="$onstart" +onend="$onend" rootdir="$rootdir" configdir="$configdir" scriptdir="$scriptdir" datadir="$datadir" -user="$user" md_inst="$md_inst" -__backtitle="$__backtitle" +user="$user" _EOF_ - chown $user:$user "$configfile" - - cp "$md_data/$fadescript" "$md_inst" + chown $user:$user "$menuconf" - cp "$md_data/menu.sh" "$md_inst/$md_id.sh" - sed -i '/#fnocotua/d' "$md_inst/$md_id.sh" - sed -i '/#autoconf/asource "'"$configfile"'" #fnocotua' "$md_inst/$md_id.sh" - - ln -sf "$md_inst/$md_id.sh" "$datadir/retropiemenu/$md_id.sh" - cp -f "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" - chown -R $user:$user "$datadir/retropiemenu" + local tmp + tmp="$(mktemp)" + iniConfig "=" '"' "$tmp" + echo -e '# Configuration file for bgm123\n' >> "$tmp" + iniSet "installed" "0" + iniSet "music_player" "mpg123" + iniSet "mapped_volume" "1" + copyDefaultConfig "$tmp" "$autoconf" + rm -f "$tmp" if ! grep "./$md_id.sh" "$gamelist" >/dev/null; then xmlstarlet ed -L -s "/gameList" -t elem -n "gameTMP" \ @@ -100,6 +124,37 @@ _EOF_ mkUserDir "$share" add_share_samba "bgm" "$share" restart_samba + + iniConfig "=" '"' "$autoconf" + iniGet "installed" + [[ "$ini_value" -eq 0 ]] && enable_bgm123 + iniSet "installed" "1" +} + +function enable_bgm123() { + local autostart + autostart="$(_autostart_bgm123)" + local bashrc + bashrc="$(_bashrc_bgm123)" + local onstart + onstart="$(_onstart_bgm123)" + local onend + onend="$(_onend_bgm123)" + + local fadescript="$md_inst/bgm_vol_fade.sh" + local file + + disable_bgm123 + + for file in "$autostart" "$bashrc" "$onstart" "$onend"; do + touch "$file" + chown $user:$user "$file" + done + + echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 6; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" + echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" + echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" + echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" } function disable_bgm123() { @@ -115,6 +170,7 @@ function disable_bgm123() { # kill player now since .bashrc won't do it later (vcgencmd force_audio hdmi 0) >/dev/null + sleep 0.5 pkill mpg123 for file in "$autostart" "$bashrc" "$onstart" "$onend"; do @@ -142,36 +198,61 @@ function remove_bgm123() { restart_samba } -function enable_bgm123() { - local autostart - autostart="$(_autostart_bgm123)" - local bashrc - bashrc="$(_bashrc_bgm123)" - local onstart - onstart="$(_onstart_bgm123)" - local onend - onend="$(_onend_bgm123)" - - local fadescript="$md_inst/bgm_vol_fade.sh" - local file - - disable_bgm123 - - for file in "$autostart" "$bashrc" "$onstart" "$onend"; do - touch "$file" - chown $user:$user "$file" - done - - echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1) & #bgm123'; cat $autostart)" > "$autostart" - echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; pkill mpg123) #bgm123' >> "$bashrc" - echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" - echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" +function play_pause_bgm123() { + if pgrep mpg123 >/dev/null; then + su "$user" -c "bash $md_inst/bgm_vol_fade.sh &" + else + su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + fi } -function configure_bgm123() { - [[ "$md_mode" == "install" ]] && enable_bgm123 +function next_track_bgm123() { + pkill mpg123 + su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" } function gui_bgm123() { - bash "$md_inst/$md_id.sh" + local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) + while true; do + local enabled=0 + grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && enabled=1 + local options=() + if [[ "$enabled" -eq 1 ]]; then + options+=( + E "Enable or disable background music (currently: Enabled)" + ) + if pgrep emulationstatio >/dev/null; then + options+=( + P "Play / pause" + N "Next track" + ) + fi + else + options+=( + E "Enable or disable background music (currently: Disabled)" + ) + fi + local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) + if [[ -n "$choice" ]]; then + case "$choice" in + E) + if [[ "$enabled" -eq 1 ]]; then + disable_bgm123 + printMsgs "dialog" "Background music disabled." + else + enable_bgm123 + printMsgs "dialog" "Background music enabled." + fi + ;; + P) + play_pause_bgm123 + ;; + N) + next_track_bgm123 + ;; + esac + else + break + fi + done } diff --git a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh b/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh index d374057e..9f2703a7 100644 --- a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh +++ b/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh @@ -9,6 +9,8 @@ # https://github.com/crcerror/RetroPie-Shares/blob/master/BGM_vol_fade.sh # +#autoconf + # avoid multiple starts wait=0 while [[ "$(pgrep -c -f $(basename $0))" -gt 1 ]]; do @@ -21,8 +23,14 @@ done readonly MIXER_CHANNEL="HDMI" readonly MUSIC_PLAYER="mpg123" +# command for amixer (use -M for mapped volume) +# dnn't quote $MIXER in commands when -M (or any params) are used +MIXER="amixer" +[[ "$mapped_volume" -eq 1 ]] && MIXER="amixer -M" +readonly MIXER + # get mixer volume -readonly VOLUME_RAW="$(amixer -M get $MIXER_CHANNEL | grep -o '...%')" +readonly VOLUME_RAW="$($MIXER get $MIXER_CHANNEL | grep -o '...%')" readonly MIXER_VOLUME="${VOLUME_RAW//[![:digit:]]}" # get player status @@ -35,30 +43,32 @@ fade_volume="" volume_step="" function setStep() { + # set dynamic step size for true volume case "$fade_volume" in [1-4][0-9]|50) volume_step="5" ;; [5-7][0-9]|80) volume_step="3" ;; - [8-9][0-9]|100) volume_step="2" ;; + [8-9][0-9]|100) volume_step="1" ;; *) volume_step="5" ;; esac } function volumeZero() { - amixer -q -M set "$MIXER_CHANNEL" 0% + $MIXER -q set "$MIXER_CHANNEL" 0% } function volumeReset() { - amixer -q -M set "$MIXER_CHANNEL" "${MIXER_VOLUME}%" + $MIXER -q set "$MIXER_CHANNEL" "${MIXER_VOLUME}%" } # if flag -(s)top, or status=(r)unning or interruptable (s)leep if [[ "${PLAYER_STATUS,,}" == *s* || "${PLAYER_STATUS,,}" == *r* ]]; then # fade out and stop player fade_volume="$MIXER_VOLUME" + volume_step="$[$MIXER_VOLUME /20]" until [[ "$fade_volume" -le 10 ]]; do - setStep + [[ "$mapped_volume" -eq 1 ]] || setStep fade_volume="$[$fade_volume -$volume_step]" - amixer -q -M set "$MIXER_CHANNEL" "${fade_volume}%" + $MIXER -q set "$MIXER_CHANNEL" "${fade_volume}%" sleep 0.1 done volumeZero @@ -73,10 +83,11 @@ elif [[ "${PLAYER_STATUS,,}" == *t* ]]; then sleep 0.5 pkill -CONT "$MUSIC_PLAYER" fade_volume="10" + volume_step="$[$MIXER_VOLUME /20]" until [[ "$fade_volume" -ge "$MIXER_VOLUME" ]]; do - setStep + [[ "$mapped_volume" -eq 1 ]] || setStep fade_volume="$[$fade_volume +$volume_step]" - amixer -q -M set "$MIXER_CHANNEL" "${fade_volume}%" + $MIXER -q set "$MIXER_CHANNEL" "${fade_volume}%" sleep 0.2 done volumeReset diff --git a/scriptmodules/supplementary/bgm123/menu.sh b/scriptmodules/supplementary/bgm123/menu.sh index 6897a647..33dd1531 100644 --- a/scriptmodules/supplementary/bgm123/menu.sh +++ b/scriptmodules/supplementary/bgm123/menu.sh @@ -2,20 +2,58 @@ # Menu GUI for bgm123 background music in RetroPie. +#menuconf #autoconf -#fnocotua + +function disAble() { + local file + + # kill player now since .bashrc won't do it later + (vcgencmd force_audio hdmi 0) >/dev/null + sleep 0.5 + pkill mpg123 + + for file in "$autostart" "$bashrc" "$onstart" "$onend"; do + if [[ -f "$file" ]]; then + # backup file and attempt to remove any existing bgm config + cp -f "$file" "$file.bak" + chown $user:$user "$file.bak" + sed -i '/#bgm/d' "$file" + + # if file is now empty, remove it + [[ ! -s "$file" ]] && rm -f "$file" + fi + done +} + +function enAble() { + local fadescript="$md_inst/bgm_vol_fade.sh" + local file + + disAble + + for file in "$autostart" "$bashrc" "$onstart" "$onend"; do + touch "$file" + chown $user:$user "$file" + done + + echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 6; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" + echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" + echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" + echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" +} function playPause() { if pgrep mpg123 >/dev/null; then bash "$md_inst/bgm_vol_fade.sh" & else - sudo su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + ((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) & fi } function nextTrack() { pkill mpg123 - sudo su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 1; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + ((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) & } function showMenu() { @@ -44,10 +82,10 @@ function showMenu() { case "$choice" in E) if [[ "$enabled" -eq 1 ]]; then - sudo su "$user" -c "sudo $scriptdir/retropie_packages.sh bgm123 disable" + disAble dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music disabled." 20 60 >/dev/tty else - sudo su "$user" -c "sudo $scriptdir/retropie_packages.sh bgm123 enable" + enAble dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music enabled." 20 60 >/dev/tty fi ;; From db2ebcbd2781d4d72253bfd23a8a162bf073983b Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:00:07 -0700 Subject: [PATCH 3/9] mapped volume GUI Removed the extra menu script, it's all rolled back into the gui_ function for now. Added a mapped_volume switch to use a different fade-in/out profile. --- scriptmodules/supplementary/bgm123.sh | 122 ++++++++---------- .../supplementary/bgm123/bgm_vol_fade.sh | 2 +- scriptmodules/supplementary/bgm123/menu.sh | 105 --------------- 3 files changed, 56 insertions(+), 173 deletions(-) delete mode 100644 scriptmodules/supplementary/bgm123/menu.sh diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 0afbf3d1..1db967e6 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -31,6 +31,10 @@ function _onend_bgm123() { echo "$configdir/all/runcommand-onend.sh" } +function _autoconf_bgm123() { + echo "$configdir/all/$md_id.cfg" +} + function _gamelist_bgm123() { local xmlfile="$datadir/retropiemenu/gamelist.xml" [[ -f "$xmlfile" ]] || xmlfile="$configdir/all/emulationstation/gamelists/retropie/gamelist.xml" @@ -42,19 +46,11 @@ function depends_bgm123() { } function install_bin_bgm123() { - local fadescript="bgm_vol_fade.sh" - local menuconf="$md_inst/$md_id.menuconf" - local autoconf="$configdir/all/$md_id.cfg" + local scriptname="bgm_vol_fade.sh" - cp "$md_data/$fadescript" "$md_inst" - cp "$md_data/menu.sh" "$md_inst/$md_id.sh" + cp "$md_data/$scriptname" "$md_inst" cp -f "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" - - sed -i 's|.*#menuconf.*|source "'"$menuconf"'" #menuconf|' "$md_inst/$md_id.sh" - sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$md_id.sh" - sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$fadescript" - - ln -sf "$md_inst/$md_id.sh" "$datadir/retropiemenu/$md_id.sh" + touch "$datadir/retropiemenu/$md_id.rp" chown -R $user:$user "$datadir/retropiemenu" } @@ -67,11 +63,11 @@ function configure_bgm123() { onstart="$(_onstart_bgm123)" local onend onend="$(_onend_bgm123)" + local autoconf + autoconf="$(_autoconf_bgm123)" local gamelist gamelist="$(_gamelist_bgm123)" - local menuconf="$md_inst/$md_id.menuconf" - local autoconf="$configdir/all/$md_id.cfg" local share="$datadir/bgm" local file @@ -85,35 +81,21 @@ function configure_bgm123() { fi done - cat > "$menuconf" << _EOF_ -# Menu variables for bgm123 -__backtitle="$__backtitle" -autostart="$autostart" -bashrc="$bashrc" -onstart="$onstart" -onend="$onend" -rootdir="$rootdir" -configdir="$configdir" -scriptdir="$scriptdir" -datadir="$datadir" -md_inst="$md_inst" -user="$user" -_EOF_ - chown $user:$user "$menuconf" - local tmp tmp="$(mktemp)" iniConfig "=" '"' "$tmp" echo -e '# Configuration file for bgm123\n' >> "$tmp" iniSet "installed" "0" - iniSet "music_player" "mpg123" iniSet "mapped_volume" "1" + iniSet "music_player" "mpg123" copyDefaultConfig "$tmp" "$autoconf" rm -f "$tmp" - if ! grep "./$md_id.sh" "$gamelist" >/dev/null; then + sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$scriptname" + + if ! grep "./$md_id.rp" "$gamelist" >/dev/null; then xmlstarlet ed -L -s "/gameList" -t elem -n "gameTMP" \ - -s "//gameTMP" -t elem -n path -v "./$md_id.sh" \ + -s "//gameTMP" -t elem -n path -v "./$md_id.rp" \ -s "//gameTMP" -t elem -n name -v "Background Music" \ -s "//gameTMP" -t elem -n desc -v "Configure and control background music player. Enable or disable menu music while browsing and pause, resume, or skip current track." \ -s "//gameTMP" -t elem -n image -v "./icons/$md_id.png" \ @@ -151,7 +133,7 @@ function enable_bgm123() { chown $user:$user "$file" done - echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 6; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" + echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" @@ -190,53 +172,45 @@ function remove_bgm123() { local gamelist gamelist="$(_gamelist_bgm123)" - rm -f "$datadir/retropiemenu/$md_id.sh" "$datadir/retropiemenu/icons/$md_id.png" - xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.sh')]" "$gamelist" + rm -f "$datadir/retropiemenu/$md_id.rp" "$datadir/retropiemenu/icons/$md_id.png" + xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" disable_bgm123 remove_share_samba "bgm" restart_samba } -function play_pause_bgm123() { - if pgrep mpg123 >/dev/null; then - su "$user" -c "bash $md_inst/bgm_vol_fade.sh &" - else - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" - fi -} - -function next_track_bgm123() { - pkill mpg123 - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" -} - function gui_bgm123() { + local autoconf + autoconf="$(_autoconf_bgm123)" + local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) while true; do - local enabled=0 - grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && enabled=1 - local options=() - if [[ "$enabled" -eq 1 ]]; then - options+=( - E "Enable or disable background music (currently: Enabled)" - ) - if pgrep emulationstatio >/dev/null; then - options+=( - P "Play / pause" - N "Next track" - ) - fi - else + local status="disabled" + grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && status="enabled" + + local mapped="disabled" + iniConfig "=" '"' "$autoconf" + iniGet "mapped_volume" + [[ "$ini_value" -eq 1 ]] && mapped="enabled" + + local options=( + 1 "Enable or disable background music (currently: ${status^})" + 2 "Enable or disable mapped volume profile (currently: ${mapped^})" + ) + + if [[ "${status,,}" == "enabled" ]] && pgrep emulationstatio >/dev/null; then options+=( - E "Enable or disable background music (currently: Disabled)" + P "Play / pause" + N "Next track" ) fi + local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) if [[ -n "$choice" ]]; then case "$choice" in - E) - if [[ "$enabled" -eq 1 ]]; then + 1) + if [[ "${status,,}" == "enabled" ]]; then disable_bgm123 printMsgs "dialog" "Background music disabled." else @@ -244,11 +218,25 @@ function gui_bgm123() { printMsgs "dialog" "Background music enabled." fi ;; + 2) + if [[ "${mapped,,}" == "enabled" ]]; then + iniSet "mapped_volume" "0" + printMsgs "dialog" "Mapped volume disabled." + else + iniSet "mapped_volume" "1" + printMsgs "dialog" "Mapped volume enabled." + fi + ;; P) - play_pause_bgm123 + if pgrep mpg123 >/dev/null; then + su "$user" -c "bash $md_inst/bgm_vol_fade.sh &" + else + su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + fi ;; N) - next_track_bgm123 + pkill mpg123 + su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" ;; esac else diff --git a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh b/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh index 9f2703a7..dd16575a 100644 --- a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh +++ b/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh @@ -24,7 +24,7 @@ readonly MIXER_CHANNEL="HDMI" readonly MUSIC_PLAYER="mpg123" # command for amixer (use -M for mapped volume) -# dnn't quote $MIXER in commands when -M (or any params) are used +# don't quote $MIXER in commands when -M (or any params) are used MIXER="amixer" [[ "$mapped_volume" -eq 1 ]] && MIXER="amixer -M" readonly MIXER diff --git a/scriptmodules/supplementary/bgm123/menu.sh b/scriptmodules/supplementary/bgm123/menu.sh deleted file mode 100644 index 33dd1531..00000000 --- a/scriptmodules/supplementary/bgm123/menu.sh +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/bash - -# Menu GUI for bgm123 background music in RetroPie. - -#menuconf -#autoconf - -function disAble() { - local file - - # kill player now since .bashrc won't do it later - (vcgencmd force_audio hdmi 0) >/dev/null - sleep 0.5 - pkill mpg123 - - for file in "$autostart" "$bashrc" "$onstart" "$onend"; do - if [[ -f "$file" ]]; then - # backup file and attempt to remove any existing bgm config - cp -f "$file" "$file.bak" - chown $user:$user "$file.bak" - sed -i '/#bgm/d' "$file" - - # if file is now empty, remove it - [[ ! -s "$file" ]] && rm -f "$file" - fi - done -} - -function enAble() { - local fadescript="$md_inst/bgm_vol_fade.sh" - local file - - disAble - - for file in "$autostart" "$bashrc" "$onstart" "$onend"; do - touch "$file" - chown $user:$user "$file" - done - - echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 6; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" - echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" - echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" - echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" -} - -function playPause() { - if pgrep mpg123 >/dev/null; then - bash "$md_inst/bgm_vol_fade.sh" & - else - ((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) & - fi -} - -function nextTrack() { - pkill mpg123 - ((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) & -} - -function showMenu() { - local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration menu for bgm123. Please choose an option." 22 86 16) - while true; do - local enabled=0 - grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && enabled=1 - local options=() - if [[ "$enabled" -eq 1 ]]; then - options+=( - E "Enable or disable background music (currently: Enabled)" - ) - if pgrep emulationstatio >/dev/null; then - options+=( - P "Play / pause" - N "Next track" - ) - fi - else - options+=( - E "Enable or disable background music (currently: Disabled)" - ) - fi - local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) - if [[ -n "$choice" ]]; then - case "$choice" in - E) - if [[ "$enabled" -eq 1 ]]; then - disAble - dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music disabled." 20 60 >/dev/tty - else - enAble - dialog --backtitle "$__backtitle" --cr-wrap --no-collapse --msgbox "Background music enabled." 20 60 >/dev/tty - fi - ;; - P) - playPause - ;; - N) - nextTrack - ;; - esac - else - break - fi - done -} - -showMenu From 2a5fd6880e90c7192da39ed0c351a9daef274b98 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Fri, 1 Jul 2022 22:36:09 -0700 Subject: [PATCH 4/9] Functions Rolled 'disable' and 'remove' into 'enable' and 'configure'. Changed up which vars use "global var" functions. Minor edits. --- scriptmodules/supplementary/bgm123.sh | 144 ++++++++++++-------------- 1 file changed, 67 insertions(+), 77 deletions(-) diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 1db967e6..0ba5ae67 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -35,10 +35,8 @@ function _autoconf_bgm123() { echo "$configdir/all/$md_id.cfg" } -function _gamelist_bgm123() { - local xmlfile="$datadir/retropiemenu/gamelist.xml" - [[ -f "$xmlfile" ]] || xmlfile="$configdir/all/emulationstation/gamelists/retropie/gamelist.xml" - echo "$xmlfile" +function _menudir_bgm123() { + echo "$datadir/retropiemenu" } function depends_bgm123() { @@ -46,12 +44,19 @@ function depends_bgm123() { } function install_bin_bgm123() { + local autoconf + autoconf="$(_autoconf_bgm123)" + local menudir + menudir="$(_menudir_bgm123)" + local scriptname="bgm_vol_fade.sh" cp "$md_data/$scriptname" "$md_inst" - cp -f "$md_data/icon.png" "$datadir/retropiemenu/icons/$md_id.png" - touch "$datadir/retropiemenu/$md_id.rp" - chown -R $user:$user "$datadir/retropiemenu" + sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$scriptname" + + cp -f "$md_data/icon.png" "$menudir/icons/$md_id.png" + touch "$menudir/$md_id.rp" + chown -R $user:$user "$menudir" } function configure_bgm123() { @@ -65,34 +70,33 @@ function configure_bgm123() { onend="$(_onend_bgm123)" local autoconf autoconf="$(_autoconf_bgm123)" - local gamelist - gamelist="$(_gamelist_bgm123)" + local menudir + menudir="$(_menudir_bgm123)" + + local gamelist="$menudir/gamelist.xml" + [[ -f "$gamelist" ]] || gamelist="$configdir/all/emulationstation/gamelists/retropie/gamelist.xml" local share="$datadir/bgm" local file - [[ "$md_mode" == "remove" ]] && return + if [[ "$md_mode" == "remove" ]]; then + rm -f "$menudir/$md_id.rp" "$menudir/icons/$md_id.png" + xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" + + enable_bgm123 "DISABLE" + remove_share_samba "bgm" + restart_samba + return + fi + # preserve original file versions for file in "$autostart" "$bashrc" "$onstart" "$onend"; do - # preserve original file versions if [[ -f "$file" && ! -f "$file.old.$md_id" ]]; then cp -v "$file" "$file.old.$md_id" chown $user:$user "$file.old.$md_id" fi done - local tmp - tmp="$(mktemp)" - iniConfig "=" '"' "$tmp" - echo -e '# Configuration file for bgm123\n' >> "$tmp" - iniSet "installed" "0" - iniSet "mapped_volume" "1" - iniSet "music_player" "mpg123" - copyDefaultConfig "$tmp" "$autoconf" - rm -f "$tmp" - - sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$scriptname" - if ! grep "./$md_id.rp" "$gamelist" >/dev/null; then xmlstarlet ed -L -s "/gameList" -t elem -n "gameTMP" \ -s "//gameTMP" -t elem -n path -v "./$md_id.rp" \ @@ -103,14 +107,20 @@ function configure_bgm123() { "$gamelist" fi + [[ -f "$autoconf" ]] || enable_bgm123 "ENABLE" + + local tmp + tmp="$(mktemp)" + iniConfig "=" '"' "$tmp" + echo '# Configuration file for bgm123' > "$tmp" + iniSet "music_player" "mpg123" + iniSet "mapped_volume" "1" + copyDefaultConfig "$tmp" "$autoconf" + rm -f "$tmp" + mkUserDir "$share" add_share_samba "bgm" "$share" restart_samba - - iniConfig "=" '"' "$autoconf" - iniGet "installed" - [[ "$ini_value" -eq 0 ]] && enable_bgm123 - iniSet "installed" "1" } function enable_bgm123() { @@ -126,71 +136,52 @@ function enable_bgm123() { local fadescript="$md_inst/bgm_vol_fade.sh" local file - disable_bgm123 - - for file in "$autostart" "$bashrc" "$onstart" "$onend"; do - touch "$file" - chown $user:$user "$file" - done - - echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" - echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" - echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" - echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" -} - -function disable_bgm123() { - local autostart - autostart="$(_autostart_bgm123)" - local bashrc - bashrc="$(_bashrc_bgm123)" - local onstart - onstart="$(_onstart_bgm123)" - local onend - onend="$(_onend_bgm123)" - local file - - # kill player now since .bashrc won't do it later - (vcgencmd force_audio hdmi 0) >/dev/null - sleep 0.5 - pkill mpg123 - + # backup files and attempt to remove any existing bgm config for file in "$autostart" "$bashrc" "$onstart" "$onend"; do if [[ -f "$file" ]]; then - # backup file and attempt to remove any existing bgm config cp -f "$file" "$file.bak" chown $user:$user "$file.bak" sed -i '/#bgm/d' "$file" - - # if file is now empty, remove it - [[ ! -s "$file" ]] && rm -f "$file" fi done -} - -function remove_bgm123() { - local gamelist - gamelist="$(_gamelist_bgm123)" - rm -f "$datadir/retropiemenu/$md_id.rp" "$datadir/retropiemenu/icons/$md_id.png" - xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" - - disable_bgm123 - remove_share_samba "bgm" - restart_samba + if [[ "${1,,}" == "enable" ]]; then + for file in "$autostart" "$bashrc" "$onstart" "$onend"; do + touch "$file" + chown $user:$user "$file" + done + + echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" + echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" + echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" + echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" + else + # kill player now since .bashrc won't do it later + (vcgencmd force_audio hdmi 0) >/dev/null + sleep 0.5 + pkill mpg123 + + for file in "$onstart" "$onend"; do + # if file is now empty, remove it + [[ -f "$file" && ! -s "$file" ]] && rm -f "$file" + done + fi } function gui_bgm123() { + local autostart + autostart="$(_autostart_bgm123)" local autoconf autoconf="$(_autoconf_bgm123)" local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) while true; do + iniConfig "=" '"' "$autoconf" + local status="disabled" - grep '#bgm123' "$configdir/all/autostart.sh" >/dev/null && status="enabled" + grep '#bgm123' "$autostart" >/dev/null && status="enabled" local mapped="disabled" - iniConfig "=" '"' "$autoconf" iniGet "mapped_volume" [[ "$ini_value" -eq 1 ]] && mapped="enabled" @@ -198,7 +189,6 @@ function gui_bgm123() { 1 "Enable or disable background music (currently: ${status^})" 2 "Enable or disable mapped volume profile (currently: ${mapped^})" ) - if [[ "${status,,}" == "enabled" ]] && pgrep emulationstatio >/dev/null; then options+=( P "Play / pause" @@ -211,10 +201,10 @@ function gui_bgm123() { case "$choice" in 1) if [[ "${status,,}" == "enabled" ]]; then - disable_bgm123 + enable_bgm123 "DISABLE" printMsgs "dialog" "Background music disabled." else - enable_bgm123 + enable_bgm123 "ENABLE" printMsgs "dialog" "Background music enabled." fi ;; From 9344ee0c3941689c84c89f9d32db6aa05aa3fd0a Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Sun, 3 Jul 2022 01:00:50 -0700 Subject: [PATCH 5/9] Init External init and kill scripts. Renamed fade script. Renamed enable_ function. Added dummy enable_/disable_ functions for CLI usage. Made assignment of recycled variables prettier. --- scriptmodules/supplementary/bgm123.sh | 175 +++++++++--------- .../bgm123/{bgm_vol_fade.sh => bgm_fade.sh} | 6 +- .../supplementary/bgm123/bgm_start.sh | 8 + .../supplementary/bgm123/bgm_stop.sh | 8 + 4 files changed, 104 insertions(+), 93 deletions(-) rename scriptmodules/supplementary/bgm123/{bgm_vol_fade.sh => bgm_fade.sh} (96%) create mode 100644 scriptmodules/supplementary/bgm123/bgm_start.sh create mode 100644 scriptmodules/supplementary/bgm123/bgm_stop.sh diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 0ba5ae67..37adc874 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -13,30 +13,20 @@ rp_module_id="bgm123" rp_module_desc="Straightforward background music player using mpg123" rp_module_help="Place your MP3 files in $datadir/bgm" rp_module_section="exp" -rp_module_flags="!all rpi" - -function _autostart_bgm123() { - echo "$configdir/all/autostart.sh" -} - -function _bashrc_bgm123() { - echo "$home/.bashrc" -} - -function _onstart_bgm123() { - echo "$configdir/all/runcommand-onstart.sh" -} - -function _onend_bgm123() { - echo "$configdir/all/runcommand-onend.sh" -} - -function _autoconf_bgm123() { - echo "$configdir/all/$md_id.cfg" -} - -function _menudir_bgm123() { - echo "$datadir/retropiemenu" +rp_module_flags="" + +function _get_vars_bgm123() { + case "$1" in + autostart) echo "$configdir/all/autostart.sh" ;; + bashrc) echo "$home/.bashrc" ;; + onstart) echo "$configdir/all/runcommand-onstart.sh" ;; + onend) echo "$configdir/all/runcommand-onend.sh" ;; + autoconf) echo "$configdir/all/$md_id.cfg" ;; + menudir) echo "$datadir/retropiemenu" ;; + init) echo "$md_inst/bgm_start.sh" ;; + killscript) echo "$md_inst/bgm_stop.sh" ;; + fadescript) echo "$md_inst/bgm_fade.sh" ;; + esac } function depends_bgm123() { @@ -44,15 +34,19 @@ function depends_bgm123() { } function install_bin_bgm123() { - local autoconf - autoconf="$(_autoconf_bgm123)" - local menudir - menudir="$(_menudir_bgm123)" - - local scriptname="bgm_vol_fade.sh" - - cp "$md_data/$scriptname" "$md_inst" - sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$scriptname" + local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" + local menudir && menudir="$(_get_vars_bgm123 menudir)" + local file + local scripts=( + 'bgm_start.sh' + 'bgm_stop.sh' + 'bgm_fade.sh' + ) + + for file in "${scripts[@]}"; do + cp "$md_data/$file" "$md_inst" + sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$file" + done cp -f "$md_data/icon.png" "$menudir/icons/$md_id.png" touch "$menudir/$md_id.rp" @@ -60,30 +54,23 @@ function install_bin_bgm123() { } function configure_bgm123() { - local autostart - autostart="$(_autostart_bgm123)" - local bashrc - bashrc="$(_bashrc_bgm123)" - local onstart - onstart="$(_onstart_bgm123)" - local onend - onend="$(_onend_bgm123)" - local autoconf - autoconf="$(_autoconf_bgm123)" - local menudir - menudir="$(_menudir_bgm123)" + local autostart && autostart="$(_get_vars_bgm123 autostart)" + local bashrc && bashrc="$(_get_vars_bgm123 bashrc)" + local onstart && onstart="$(_get_vars_bgm123 onstart)" + local onend && onend="$(_get_vars_bgm123 onend)" + local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" + local menudir && menudir="$(_get_vars_bgm123 menudir)" + local share="$datadir/bgm" + local file local gamelist="$menudir/gamelist.xml" [[ -f "$gamelist" ]] || gamelist="$configdir/all/emulationstation/gamelists/retropie/gamelist.xml" - local share="$datadir/bgm" - local file - if [[ "$md_mode" == "remove" ]]; then rm -f "$menudir/$md_id.rp" "$menudir/icons/$md_id.png" xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" - enable_bgm123 "DISABLE" + toggle_bgm123 "off" remove_share_samba "bgm" restart_samba return @@ -107,14 +94,16 @@ function configure_bgm123() { "$gamelist" fi - [[ -f "$autoconf" ]] || enable_bgm123 "ENABLE" + [[ -f "$autoconf" ]] || toggle_bgm123 on local tmp tmp="$(mktemp)" iniConfig "=" '"' "$tmp" echo '# Configuration file for bgm123' > "$tmp" + iniSet "mixer_channel" "HDMI" iniSet "music_player" "mpg123" - iniSet "mapped_volume" "1" + iniSet "music_dir" "$share" + iniSet "mapped_volume" "enabled" copyDefaultConfig "$tmp" "$autoconf" rm -f "$tmp" @@ -123,17 +112,14 @@ function configure_bgm123() { restart_samba } -function enable_bgm123() { - local autostart - autostart="$(_autostart_bgm123)" - local bashrc - bashrc="$(_bashrc_bgm123)" - local onstart - onstart="$(_onstart_bgm123)" - local onend - onend="$(_onend_bgm123)" - - local fadescript="$md_inst/bgm_vol_fade.sh" +function toggle_bgm123() { + local autostart && autostart="$(_get_vars_bgm123 autostart)" + local bashrc && bashrc="$(_get_vars_bgm123 bashrc)" + local onstart && onstart="$(_get_vars_bgm123 onstart)" + local onend && onend="$(_get_vars_bgm123 onend)" + local init && init="$(_get_vars_bgm123 init)" + local killscript && killscript="$(_get_vars_bgm123 killscript)" + local fadescript && fadescript="$(_get_vars_bgm123 fadescript)" local file # backup files and attempt to remove any existing bgm config @@ -145,51 +131,61 @@ function enable_bgm123() { fi done - if [[ "${1,,}" == "enable" ]]; then + if [[ "$1" == "on" || "$1" == "enable"?("d") ]]; then for file in "$autostart" "$bashrc" "$onstart" "$onend"; do touch "$file" chown $user:$user "$file" done - echo -e "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n((vcgencmd force_audio hdmi 1) >/dev/null; sleep 8; (pgrep emulationstatio >/dev/null && mpg123 -Z "'$datadir'/bgm/"*.[mM][pP]3 >/dev/null 2>&1)) & #bgm123'; cat $autostart)" > "$autostart" - echo '[[ "$(tty)" == "/dev/tty1" ]] && ((vcgencmd force_audio hdmi 0) >/dev/null; sleep 0.5; pkill mpg123) #bgm123' >> "$bashrc" - echo 'bash "'"$fadescript"'" -STOP & #bgm123' >> "$onstart" - echo '(sleep 1; "bash '"$fadescript"'" -CONT) & #bgm123' >> "$onend" + echo "$(echo -e 'while pgrep omxplayer >/dev/null; do sleep 1; done #bgm123\n(sleep 10; bash "'"$init"'") & #bgm123'; cat $autostart)" > "$autostart" + echo '[[ "$(tty)" == "/dev/tty1" ]] && (bash "'"$killscript"'" &) #bgm123' >> "$bashrc" + echo "$(echo 'bash "'"$fadescript"'" -STOP & #bgm123'; cat $onstart)" > "$onstart" + echo '(sleep 1; bash "'"$fadescript"'" -CONT) & #bgm123' >> "$onend" + + printMsgs "console" "Background music enabled." else # kill player now since .bashrc won't do it later - (vcgencmd force_audio hdmi 0) >/dev/null - sleep 0.5 - pkill mpg123 + su "$user" -c "bash $killscript" for file in "$onstart" "$onend"; do # if file is now empty, remove it [[ -f "$file" && ! -s "$file" ]] && rm -f "$file" done + + printMsgs "console" "Background music disabled." fi } +## because I still keep trying to use the old ones on command-line: +function disable_bgm123() { + toggle_bgm123 off +} + +function enable_bgm123() { + toggle_bgm123 on +} + function gui_bgm123() { - local autostart - autostart="$(_autostart_bgm123)" - local autoconf - autoconf="$(_autoconf_bgm123)" + local autostart && autostart="$(_get_vars_bgm123 autostart)" + local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" + local init && init="$(_get_vars_bgm123 init)" + local killscript && killscript="$(_get_vars_bgm123 killscript)" + local fadescript && fadescript="$(_get_vars_bgm123 fadescript)" local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) + iniConfig "=" '"' "$autoconf" while true; do - iniConfig "=" '"' "$autoconf" - local status="disabled" grep '#bgm123' "$autostart" >/dev/null && status="enabled" - local mapped="disabled" - iniGet "mapped_volume" - [[ "$ini_value" -eq 1 ]] && mapped="enabled" + local mapped + iniGet "mapped_volume" && mapped="$ini_value" local options=( 1 "Enable or disable background music (currently: ${status^})" 2 "Enable or disable mapped volume profile (currently: ${mapped^})" ) - if [[ "${status,,}" == "enabled" ]] && pgrep emulationstatio >/dev/null; then + if [[ "$status" == "enabled" ]] && pgrep emulationstatio >/dev/null; then options+=( P "Play / pause" N "Next track" @@ -200,33 +196,32 @@ function gui_bgm123() { if [[ -n "$choice" ]]; then case "$choice" in 1) - if [[ "${status,,}" == "enabled" ]]; then - enable_bgm123 "DISABLE" + if [[ "$status" == "enabled" ]]; then + toggle_bgm123 off printMsgs "dialog" "Background music disabled." else - enable_bgm123 "ENABLE" + toggle_bgm123 on printMsgs "dialog" "Background music enabled." fi ;; 2) - if [[ "${mapped,,}" == "enabled" ]]; then - iniSet "mapped_volume" "0" + if [[ "$mapped" == "enabled" ]]; then + iniSet "mapped_volume" "disabled" printMsgs "dialog" "Mapped volume disabled." else - iniSet "mapped_volume" "1" + iniSet "mapped_volume" "enabled" printMsgs "dialog" "Mapped volume enabled." fi ;; P) if pgrep mpg123 >/dev/null; then - su "$user" -c "bash $md_inst/bgm_vol_fade.sh &" + su "$user" -c "bash $fadescript &" else - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + su "$user" -c "bash $init &" fi ;; N) - pkill mpg123 - su "$user" -c "((vcgencmd force_audio hdmi 1) >/dev/null; sleep 0.5; mpg123 -Z $datadir/bgm/*.[mM][pP]3 >/dev/null 2>&1) &" + su "$user" -c "(bash $killscript; sleep 1; bash $init) &" ;; esac else diff --git a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh b/scriptmodules/supplementary/bgm123/bgm_fade.sh similarity index 96% rename from scriptmodules/supplementary/bgm123/bgm_vol_fade.sh rename to scriptmodules/supplementary/bgm123/bgm_fade.sh index dd16575a..7a3283c3 100644 --- a/scriptmodules/supplementary/bgm123/bgm_vol_fade.sh +++ b/scriptmodules/supplementary/bgm123/bgm_fade.sh @@ -9,7 +9,7 @@ # https://github.com/crcerror/RetroPie-Shares/blob/master/BGM_vol_fade.sh # -#autoconf +source #autoconf # avoid multiple starts wait=0 @@ -20,8 +20,8 @@ while [[ "$(pgrep -c -f $(basename $0))" -gt 1 ]]; do done # get mixer channel and player name -readonly MIXER_CHANNEL="HDMI" -readonly MUSIC_PLAYER="mpg123" +readonly MIXER_CHANNEL="$mixer_channel" +readonly MUSIC_PLAYER="$music_player" # command for amixer (use -M for mapped volume) # don't quote $MIXER in commands when -M (or any params) are used diff --git a/scriptmodules/supplementary/bgm123/bgm_start.sh b/scriptmodules/supplementary/bgm123/bgm_start.sh new file mode 100644 index 00000000..c3ad1ea2 --- /dev/null +++ b/scriptmodules/supplementary/bgm123/bgm_start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# bgm123 init script for RetroPie + +source #autoconf + +vcgencmd force_audio hdmi 1 >/dev/null && sleep 0.1 +pgrep emulationstatio >/dev/null && mpg123 -Z "$music_dir/"*.[mM][pP]3 >/dev/null 2>&1 diff --git a/scriptmodules/supplementary/bgm123/bgm_stop.sh b/scriptmodules/supplementary/bgm123/bgm_stop.sh new file mode 100644 index 00000000..5d9b8872 --- /dev/null +++ b/scriptmodules/supplementary/bgm123/bgm_stop.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# bgm123 kill script for RetroPie + +source #autoconf + +vcgencmd force_audio hdmi 0 >/dev/null && sleep 0.1 +pkill "$music_player" From c7ee52ce223e1adea576d17c35811cfb1cf13038 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Sun, 3 Jul 2022 17:17:44 -0700 Subject: [PATCH 6/9] Status config Added "enabled" status to user config. Fixes "not enabled after uninstall/reinstall." Expanded comments. --- scriptmodules/supplementary/bgm123.sh | 28 ++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 37adc874..07b5eb0d 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -43,11 +43,13 @@ function install_bin_bgm123() { 'bgm_fade.sh' ) + # copy scripts and include config for file in "${scripts[@]}"; do cp "$md_data/$file" "$md_inst" sed -i 's|.*#autoconf.*|source "'"$autoconf"'" #autoconf|' "$md_inst/$file" done + # create rp menu items cp -f "$md_data/icon.png" "$menudir/icons/$md_id.png" touch "$menudir/$md_id.rp" chown -R $user:$user "$menudir" @@ -63,10 +65,13 @@ function configure_bgm123() { local share="$datadir/bgm" local file + # find gamelist local gamelist="$menudir/gamelist.xml" [[ -f "$gamelist" ]] || gamelist="$configdir/all/emulationstation/gamelists/retropie/gamelist.xml" if [[ "$md_mode" == "remove" ]]; then + # remove menu items and network share + rm -f "$menudir/$md_id.rp" "$menudir/icons/$md_id.png" xmlstarlet ed -L -d "/gameList/game[contains(path,'$md_id.rp')]" "$gamelist" @@ -84,6 +89,7 @@ function configure_bgm123() { fi done + # add gamelist entry if ! grep "./$md_id.rp" "$gamelist" >/dev/null; then xmlstarlet ed -L -s "/gameList" -t elem -n "gameTMP" \ -s "//gameTMP" -t elem -n path -v "./$md_id.rp" \ @@ -94,12 +100,12 @@ function configure_bgm123() { "$gamelist" fi - [[ -f "$autoconf" ]] || toggle_bgm123 on - + # create user config local tmp tmp="$(mktemp)" iniConfig "=" '"' "$tmp" echo '# Configuration file for bgm123' > "$tmp" + iniSet "status" "enabled" iniSet "mixer_channel" "HDMI" iniSet "music_player" "mpg123" iniSet "music_dir" "$share" @@ -107,6 +113,12 @@ function configure_bgm123() { copyDefaultConfig "$tmp" "$autoconf" rm -f "$tmp" + # check for enable + iniConfig "=" '"' "$autoconf" + iniGet "status" + [[ "$ini_value" == "enabled" ]] && toggle_bgm123 on + + # add music dir and network share mkUserDir "$share" add_share_samba "bgm" "$share" restart_samba @@ -131,6 +143,8 @@ function toggle_bgm123() { fi done + # enable with toggle "on" or "enable(d)" + # disable with anything else if [[ "$1" == "on" || "$1" == "enable"?("d") ]]; then for file in "$autostart" "$bashrc" "$onstart" "$onend"; do touch "$file" @@ -156,7 +170,7 @@ function toggle_bgm123() { fi } -## because I still keep trying to use the old ones on command-line: +# dummy enable/disable functions for CLI function disable_bgm123() { toggle_bgm123 off } @@ -166,15 +180,17 @@ function enable_bgm123() { } function gui_bgm123() { - local autostart && autostart="$(_get_vars_bgm123 autostart)" local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" + iniConfig "=" '"' "$autoconf" + + local autostart && autostart="$(_get_vars_bgm123 autostart)" local init && init="$(_get_vars_bgm123 init)" local killscript && killscript="$(_get_vars_bgm123 killscript)" local fadescript && fadescript="$(_get_vars_bgm123 fadescript)" local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) - iniConfig "=" '"' "$autoconf" while true; do + # check if bgm code is actually enabled in autostart local status="disabled" grep '#bgm123' "$autostart" >/dev/null && status="enabled" @@ -198,9 +214,11 @@ function gui_bgm123() { 1) if [[ "$status" == "enabled" ]]; then toggle_bgm123 off + iniSet "status" "disabled" printMsgs "dialog" "Background music disabled." else toggle_bgm123 on + iniSet "status" "enabled" printMsgs "dialog" "Background music enabled." fi ;; From 8c6576358086465e87586ffcbed598ebd6ed9119 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Sun, 3 Jul 2022 23:11:43 -0700 Subject: [PATCH 7/9] Continued "prettyfication" of global vars I guess this separation of declaration and assignment is probably not necessary, after all. --- scriptmodules/supplementary/bgm123.sh | 44 +++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/scriptmodules/supplementary/bgm123.sh b/scriptmodules/supplementary/bgm123.sh index 07b5eb0d..6494e68f 100644 --- a/scriptmodules/supplementary/bgm123.sh +++ b/scriptmodules/supplementary/bgm123.sh @@ -34,8 +34,8 @@ function depends_bgm123() { } function install_bin_bgm123() { - local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" - local menudir && menudir="$(_get_vars_bgm123 menudir)" + local autoconf="$(_get_vars_bgm123 autoconf)" + local menudir="$(_get_vars_bgm123 menudir)" local file local scripts=( 'bgm_start.sh' @@ -56,12 +56,12 @@ function install_bin_bgm123() { } function configure_bgm123() { - local autostart && autostart="$(_get_vars_bgm123 autostart)" - local bashrc && bashrc="$(_get_vars_bgm123 bashrc)" - local onstart && onstart="$(_get_vars_bgm123 onstart)" - local onend && onend="$(_get_vars_bgm123 onend)" - local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" - local menudir && menudir="$(_get_vars_bgm123 menudir)" + local autostart="$(_get_vars_bgm123 autostart)" + local bashrc="$(_get_vars_bgm123 bashrc)" + local onstart="$(_get_vars_bgm123 onstart)" + local onend="$(_get_vars_bgm123 onend)" + local autoconf="$(_get_vars_bgm123 autoconf)" + local menudir="$(_get_vars_bgm123 menudir)" local share="$datadir/bgm" local file @@ -78,6 +78,7 @@ function configure_bgm123() { toggle_bgm123 "off" remove_share_samba "bgm" restart_samba + return fi @@ -101,8 +102,7 @@ function configure_bgm123() { fi # create user config - local tmp - tmp="$(mktemp)" + local tmp="$(mktemp)" iniConfig "=" '"' "$tmp" echo '# Configuration file for bgm123' > "$tmp" iniSet "status" "enabled" @@ -125,13 +125,13 @@ function configure_bgm123() { } function toggle_bgm123() { - local autostart && autostart="$(_get_vars_bgm123 autostart)" - local bashrc && bashrc="$(_get_vars_bgm123 bashrc)" - local onstart && onstart="$(_get_vars_bgm123 onstart)" - local onend && onend="$(_get_vars_bgm123 onend)" - local init && init="$(_get_vars_bgm123 init)" - local killscript && killscript="$(_get_vars_bgm123 killscript)" - local fadescript && fadescript="$(_get_vars_bgm123 fadescript)" + local autostart="$(_get_vars_bgm123 autostart)" + local bashrc="$(_get_vars_bgm123 bashrc)" + local onstart="$(_get_vars_bgm123 onstart)" + local onend="$(_get_vars_bgm123 onend)" + local init="$(_get_vars_bgm123 init)" + local killscript="$(_get_vars_bgm123 killscript)" + local fadescript="$(_get_vars_bgm123 fadescript)" local file # backup files and attempt to remove any existing bgm config @@ -180,13 +180,13 @@ function enable_bgm123() { } function gui_bgm123() { - local autoconf && autoconf="$(_get_vars_bgm123 autoconf)" + local autoconf="$(_get_vars_bgm123 autoconf)" iniConfig "=" '"' "$autoconf" - local autostart && autostart="$(_get_vars_bgm123 autostart)" - local init && init="$(_get_vars_bgm123 init)" - local killscript && killscript="$(_get_vars_bgm123 killscript)" - local fadescript && fadescript="$(_get_vars_bgm123 fadescript)" + local autostart="$(_get_vars_bgm123 autostart)" + local init="$(_get_vars_bgm123 init)" + local killscript="$(_get_vars_bgm123 killscript)" + local fadescript="$(_get_vars_bgm123 fadescript)" local cmd=(dialog --backtitle "$__backtitle" --cancel-label "Back" --menu "Configuration for $md_id. Please choose an option." 22 86 16) while true; do From 7956e742d265f9d12cfd9fd7c15fa7ac1fcac9b5 Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Mon, 4 Jul 2022 00:25:57 -0700 Subject: [PATCH 8/9] Fix broken mapped volume setting --- scriptmodules/supplementary/bgm123/bgm_fade.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scriptmodules/supplementary/bgm123/bgm_fade.sh b/scriptmodules/supplementary/bgm123/bgm_fade.sh index 7a3283c3..1ed1184c 100644 --- a/scriptmodules/supplementary/bgm123/bgm_fade.sh +++ b/scriptmodules/supplementary/bgm123/bgm_fade.sh @@ -26,7 +26,7 @@ readonly MUSIC_PLAYER="$music_player" # command for amixer (use -M for mapped volume) # don't quote $MIXER in commands when -M (or any params) are used MIXER="amixer" -[[ "$mapped_volume" -eq 1 ]] && MIXER="amixer -M" +[[ "$mapped_volume" == "enabled" ]] && MIXER="amixer -M" readonly MIXER # get mixer volume @@ -66,7 +66,7 @@ if [[ "${PLAYER_STATUS,,}" == *s* || "${PLAYER_STATUS,,}" == *r* ]]; then fade_volume="$MIXER_VOLUME" volume_step="$[$MIXER_VOLUME /20]" until [[ "$fade_volume" -le 10 ]]; do - [[ "$mapped_volume" -eq 1 ]] || setStep + [[ "$mapped_volume" == "enabled" ]] || setStep fade_volume="$[$fade_volume -$volume_step]" $MIXER -q set "$MIXER_CHANNEL" "${fade_volume}%" sleep 0.1 @@ -85,7 +85,7 @@ elif [[ "${PLAYER_STATUS,,}" == *t* ]]; then fade_volume="10" volume_step="$[$MIXER_VOLUME /20]" until [[ "$fade_volume" -ge "$MIXER_VOLUME" ]]; do - [[ "$mapped_volume" -eq 1 ]] || setStep + [[ "$mapped_volume" == "enabled" ]] || setStep fade_volume="$[$fade_volume +$volume_step]" $MIXER -q set "$MIXER_CHANNEL" "${fade_volume}%" sleep 0.2 From 607f01f25cad1d98a228a897d8fb73e35d96f1fe Mon Sep 17 00:00:00 2001 From: s1eve-mcdichae1 <92833764+s1eve-mcdichae1@users.noreply.github.com> Date: Mon, 4 Jul 2022 01:09:59 -0700 Subject: [PATCH 9/9] Update bgm_stop.sh SIGKILL should patch this for now but it's a dirty fix. --- scriptmodules/supplementary/bgm123/bgm_stop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scriptmodules/supplementary/bgm123/bgm_stop.sh b/scriptmodules/supplementary/bgm123/bgm_stop.sh index 5d9b8872..2c776ac3 100644 --- a/scriptmodules/supplementary/bgm123/bgm_stop.sh +++ b/scriptmodules/supplementary/bgm123/bgm_stop.sh @@ -5,4 +5,4 @@ source #autoconf vcgencmd force_audio hdmi 0 >/dev/null && sleep 0.1 -pkill "$music_player" +pkill -9 "$music_player"