Browse Source

mediaplayer module (looped playback on tv panel)

master
crim50n 4 years ago
parent
commit
68900b6d16
  1. 69
      linux-live/module_scripts/03-mediaplayer/install
  2. 2
      linux-live/module_scripts/03-mediaplayer/rootcopy-install/etc/skel/.xinitrc
  3. 64
      linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer
  4. 6
      linux-live/module_scripts/03-mediaplayer/standard.list

69
linux-live/module_scripts/03-mediaplayer/install

@ -13,3 +13,72 @@ if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/$PACKAGE_VARIANT.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
cat >/etc/samba/smb.conf <<'EOF'
[global]
dos charset = cp866
server string = Samba Server
unix charset = UTF8
log file = /var/log/samba/%m.log
max log size = 50
disable spoolss = Yes
load printers = No
printcap name = /dev/null
show add printer wizard = No
unix extensions = No
map to guest = Bad User
security = USER
dns proxy = No
idmap config * : backend = tdb
wide links = Yes
[media]
comment = Media Folder
path = /mediasource
locking = No
read only = No
valid users = guest
EOF
cat >/lib/systemd/system/x11vnc.service <<'EOF'
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
EOF
cat >/lib/systemd/system/novnc.service <<'EOF'
[Unit]
Description=NoVNC
After=network.target
[Service]
Type=simple
User=novnc
WorkingDirectory=/usr/share/novnc
ExecStart=/usr/bin/websockify --web /usr/share/novnc/ :6080 127.0.0.1:5900
#ExecStart=/usr/share/novnc/utils/launch.sh
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
cat >/mediaplayer.config <<'EOF'
x11vnc_password=P1ayMyVide0
samba_password=P1ayMyVide0
vlc_password=P1ayMyVide0
nextcloud_password=P1ayMyVide0
media_source="/mediasource"
playing_source="/playingsource"
local_source="/localsource"
local_source_label="LOCALSOURCE"
vlc_name=cvlc
vlc_options=" -f -R --no-video-title --extraintf=http --http-password $vlc_password"
play_pause=1
EOF
systemctl disable smbd
systemctl disable x11vnc
systemctl disable novnc

2
linux-live/module_scripts/03-mediaplayer/rootcopy-install/etc/skel/.xinitrc

@ -0,0 +1,2 @@
/usr/bin/xrdb -merge .Xresources
exec openbox-session

64
linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer

@ -0,0 +1,64 @@
#!/bin/bash
if [ -f /run/initramfs/memory/toram/mediaplayer.config ]; then
. /run/initramfs/memory/toram/mediaplayer.config
cp /run/initramfs/memory/toram/mediaplayer.config /mediaplayer.config
elif [ -f /run/initramfs/memory/data/minios/mediaplayer.config ]; then
. /run/initramfs/memory/data/minios/mediaplayer.config
cp /run/initramfs/memory/data/minios/mediaplayer.config /mediaplayer.config
else
. /mediaplayer.config
fi
sudo x11vnc -storepasswd "$x11vnc_password" /etc/x11vnc.pass >/dev/null 2>&1
echo -e "$samba_password\n$samba_password" | (sudo smbpasswd -a -s $USER_NAME)
sudo systemctl restart ssh
sudo systemctl restart x11vnc
sudo systemctl restart novnc
sudo systemctl restart smbd
if [ ! -d "$media_source" ]; then
sudo mkdir -p $media_source
sudo chown $USER_NAME:$USER_NAME $media_source
fi
if [ ! -d "$playing_source" ]; then
sudo mkdir -p $playing_source
sudo chown $USER_NAME:$USER_NAME $playing_source
fi
if [ ! -d "$local_source" ]; then
sudo mkdir -p $local_source
sudo chown $USER_NAME:$USER_NAME $local_source
fi
if [ ! -d "/tmp/mediaplayer" ]; then
sudo mkdir -p /tmp/mediaplayer
sudo chown $USER_NAME:$USER_NAME /tmp/mediaplayer
fi
if mount -L $local_source_label $local_source >/dev/null 2>&1; then
if [ ! -d "$local_source/media" ]; then
sudo mkdir -p "$local_source/media"
sudo chown $USER_NAME:$USER_NAME "$local_source/media"
sudo mkdir -p "$local_source/mediaplayer"
sudo chown $USER_NAME:$USER_NAME "$local_source/mediaplayer"
fi
if [ -f "$local_source/mediaplayer/lastplayed" ]; then
cp $(cat $local_source/mediaplayer/lastplayed) $playing_source/
cp $local_source/mediaplayer/lastplayed /tmp/mediaplayer/lastplayed
fi
fi
if [ -f "/tmp/mediaplayer/lastplayed" ]; then
/usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 &
fi
inotifywait -m $media_source -e close_write |
while read path action file; do
echo "The file $file appeared in directory $path via $action"
sleep $play_pause
xhost + >/dev/null 2>/dev/null
mv "$path$file" "$playing_source/$file"
kill -9 $(pidof vlc)
echo "$playing_source/$file" >/tmp/mediaplayer/lastplayed
find $playing_source ! -name "$file" -type f -exec rm -f {""} +
if [ -d "$local_source/media" ] && [ -d "$local_source/mediaplayer" ]; then
cp "$playing_source/$file" "$local_source/media/$file"
echo "$local_source/media/$file" >$local_source/mediaplayer/lastplayed
find $local_source/media ! -name "$file" -type f -exec rm -f {""} +
fi
/usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 &
done

6
linux-live/module_scripts/03-mediaplayer/standard.list

@ -0,0 +1,6 @@
vlc
inotify-tools
samba
x11vnc
novnc
openbox
Loading…
Cancel
Save