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"