mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
lcdd: initial addon
This commit is contained in:
parent
c2507c13fe
commit
374a0c10e3
2
packages/addons/service/lcdd/changelog.txt
Normal file
2
packages/addons/service/lcdd/changelog.txt
Normal file
@ -0,0 +1,2 @@
|
||||
100
|
||||
- Initial addon
|
BIN
packages/addons/service/lcdd/icon/icon.png
Normal file
BIN
packages/addons/service/lcdd/icon/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
80
packages/addons/service/lcdd/package.mk
Normal file
80
packages/addons/service/lcdd/package.mk
Normal file
@ -0,0 +1,80 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="lcdd"
|
||||
PKG_VERSION="0.5.7-cvs20140217"
|
||||
PKG_REV="100"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://lcdproc.org/"
|
||||
PKG_URL="$DISTRO_SRC/lcdproc-$PKG_VERSION.tar.xz"
|
||||
PKG_SOURCE_DIR="lcdproc-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain freetype libftdi1 libhid libusb netbsd-curses serdisplib"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="LCDproc: Software to display system information from your Linux/*BSD box on a LCD"
|
||||
PKG_LONGDESC="LCDproc ($PKG_VERSION) is a piece of software that displays real-time system information from your Linux/*BSD box on a LCD. The server supports several serial devices: Matrix Orbital, Crystal Fontz, Bayrad, LB216, LCDM001 (kernelconcepts.de), Wirz-SLI, Cwlinux(.com) and PIC-an-LCD; and some devices connected to the LPT port: HD44780, STV5730, T6963, SED1520 and SED1330. Various clients are available that display things like CPU load, system load, memory usage, uptime, and a lot more."
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="LCDproc"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--with-ft-prefix=$SYSROOT_PREFIX/usr \
|
||||
--enable-libusb \
|
||||
--enable-libftdi \
|
||||
--disable-libX11 \
|
||||
--enable-libhid \
|
||||
--disable-libpng \
|
||||
--enable-drivers=all \
|
||||
--enable-seamless-hbars"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
|
||||
addon() {
|
||||
drivers="none|$(cat $ROOT/$PKG_BUILD/.$TARGET_NAME/config.log | sed -n "s|^DRIVERS=' \(.*\)'|\1|p" | sed "s|.so||g" | tr ' ' '|')"
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
|
||||
cp -PR $PKG_DIR/resources $ADDON_BUILD/$PKG_ADDON_ID
|
||||
|
||||
cp -PR $PKG_BUILD/.install_pkg/etc/LCDd.conf $ADDON_BUILD/$PKG_ADDON_ID/config/
|
||||
cp -PR $PKG_BUILD/.install_pkg/usr/lib $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
cp -PR $PKG_BUILD/.install_pkg/usr/sbin $ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
|
||||
cp -L $(get_build_dir serdisplib)/.install_pkg/usr/lib/libserdisp.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
|
||||
sed -e "s|^DriverPath=.*$|DriverPath=/storage/.kodi/addons/service.lcdd/lib/lcdproc/|" \
|
||||
-e "s|^#Foreground=.*$|Foreground=no|" \
|
||||
-e "s|^#ServerScreen=.*$|ServerScreen=blank|" \
|
||||
-e "s|^#Backlight=.*$|Backlight=open|" \
|
||||
-e "s|^#Heartbeat=.*$|Heartbeat=open|" \
|
||||
-e "s|^#TitleSpeed=.*$|TitleSpeed=4|" \
|
||||
-e "s|^#Hello=\" Welcome to\"|Hello=\"Welcome to\"|" \
|
||||
-e "s|^#Hello=\" LCDproc!\"|Hello=\"$DISTRONAME\"|" \
|
||||
-e "s|^#GoodBye=\"Thanks for using\"|GoodBye=\"Thanks for using\"|" \
|
||||
-e "s|^#GoodBye=\" LCDproc!\"|GoodBye=\"$DISTRONAME\"|" \
|
||||
-e "s|^#normal_font=.*$|normal_font=/usr/share/fonts/liberation/LiberationMono-Bold.ttf|" \
|
||||
-i $ADDON_BUILD/$PKG_ADDON_ID/config/LCDd.conf
|
||||
|
||||
sed -e "s/@DRIVERS@/$drivers/" \
|
||||
-i $ADDON_BUILD/$PKG_ADDON_ID/resources/settings.xml
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,65 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7c053d2..dcb0c4d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -314,7 +314,7 @@ AC_MSG_RESULT($enable_libftdi)
|
||||
|
||||
if test "$enable_libftdi" = "yes"; then
|
||||
ifdef([PKG_CHECK_MODULES],
|
||||
- [PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.8,
|
||||
+ [PKG_CHECK_MODULES(LIBFTDI, libftdi1 >= 0.8,
|
||||
[AC_DEFINE(HAVE_LIBFTDI, [1], [Define to 1 if you have libftdi])],
|
||||
[ enable_libftdi=no ])],
|
||||
[AC_MSG_WARN([pkg-config not (fully) installed; drivers requiring libftdi may not be built])])
|
||||
diff --git a/server/drivers/hd44780-low.h b/server/drivers/hd44780-low.h
|
||||
index 47acf45..6faa830 100644
|
||||
--- a/server/drivers/hd44780-low.h
|
||||
+++ b/server/drivers/hd44780-low.h
|
||||
@@ -26,7 +26,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBFTDI
|
||||
-# include <ftdi.h>
|
||||
+# include <libftdi1/ftdi.h>
|
||||
#endif
|
||||
|
||||
/** \name Symbolic names for connection types
|
||||
diff --git a/server/drivers/i2500vfd.c b/server/drivers/i2500vfd.c
|
||||
index d896a69..7fe74f2 100644
|
||||
--- a/server/drivers/i2500vfd.c
|
||||
+++ b/server/drivers/i2500vfd.c
|
||||
@@ -32,7 +32,7 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
-#include <ftdi.h>
|
||||
+#include <libftdi1/ftdi.h>
|
||||
|
||||
#include "lcd.h"
|
||||
#include "i2500vfd.h"
|
||||
diff --git a/server/drivers/lis.c b/server/drivers/lis.c
|
||||
index 5d3e97a..6c26a19 100644
|
||||
--- a/server/drivers/lis.c
|
||||
+++ b/server/drivers/lis.c
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <pthread.h>
|
||||
|
||||
#include <usb.h>
|
||||
-#include <ftdi.h>
|
||||
+#include <libftdi1/ftdi.h>
|
||||
|
||||
#include "lcd.h"
|
||||
#include "lis.h"
|
||||
diff --git a/server/drivers/ula200.c b/server/drivers/ula200.c
|
||||
index cbdde40..a84eb49 100644
|
||||
--- a/server/drivers/ula200.c
|
||||
+++ b/server/drivers/ula200.c
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <usb.h>
|
||||
-#include <ftdi.h>
|
||||
+#include <libftdi1/ftdi.h>
|
||||
|
||||
#include "lcd.h"
|
||||
#include "ula200.h"
|
@ -0,0 +1,56 @@
|
||||
diff -Naur lcdproc-0.5.7-cvs20140217/server/drivers/dm140.c lcdproc-0.5.7-cvs20140217.patch/server/drivers/dm140.c
|
||||
--- lcdproc-0.5.7-cvs20140217/server/drivers/dm140.c 2014-12-24 01:37:27.439628078 +0100
|
||||
+++ lcdproc-0.5.7-cvs20140217.patch/server/drivers/dm140.c 2014-12-24 01:41:34.556853466 +0100
|
||||
@@ -81,10 +81,17 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if((p->fd = OpenHID(drvthis))< 0)
|
||||
+ if ((p->fd = OpenHID(drvthis)) < 0)
|
||||
{
|
||||
- report(RPT_INFO, "Device for Vendor[%s] Product[%s] was not found, exiting\n", p->pszVendor, p->pszProduct);
|
||||
- return -1;
|
||||
+ report(RPT_INFO, "Device for Vendor[%s] Product[%s] was not found\n", p->pszVendor, p->pszProduct);
|
||||
+ p->pszVendor = "1509";
|
||||
+ p->pszProduct = "925d";
|
||||
+ if ((p->fd = OpenHID(drvthis)) < 0)
|
||||
+ {
|
||||
+ report(RPT_INFO, "Device for Vendor[%s] Product[%s] was not found\n", p->pszVendor, p->pszProduct);
|
||||
+ report(RPT_INFO, "No dm140 device found, exiting\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
}
|
||||
|
||||
//******************************************************
|
||||
diff -Naur lcdproc-0.5.7-cvs20140217/server/drivers/led.c lcdproc-0.5.7-cvs20140217.patch/server/drivers/led.c
|
||||
--- lcdproc-0.5.7-cvs20140217/server/drivers/led.c 2014-12-24 01:37:27.439628078 +0100
|
||||
+++ lcdproc-0.5.7-cvs20140217.patch/server/drivers/led.c 2014-12-24 01:49:38.519253308 +0100
|
||||
@@ -95,21 +95,21 @@
|
||||
//**************************************************************
|
||||
// FUNCTION: Compare
|
||||
//
|
||||
-// INPUT:
|
||||
+// INPUT:
|
||||
// const char *pszValue - string to compare
|
||||
-// short sValue - numberic value to compare
|
||||
+// short sOtherValue - numeric value to compare
|
||||
//
|
||||
// OUTPUT:
|
||||
// int - Boolean value, 0 on non match, 1 on success.
|
||||
//
|
||||
-// DESCRIPTION: Compare a character value to a numeric value.
|
||||
+// DESCRIPTION: Compare a hex value in a string to a numeric value.
|
||||
//**************************************************************
|
||||
-int Compare(const char *pszValue, short sValue)
|
||||
+int Compare(const char *pszValue, short sOtherValue)
|
||||
{
|
||||
- int iValue;
|
||||
+ short sValue;
|
||||
// convert the pszValue to a number
|
||||
- sscanf( pszValue, "%4x", &iValue);
|
||||
- return( iValue == sValue );
|
||||
+ sscanf( pszValue, "%4hx", &sValue );
|
||||
+ return( sValue == sOtherValue );
|
||||
}
|
||||
|
||||
|
6
packages/addons/service/lcdd/resources/settings.xml
Normal file
6
packages/addons/service/lcdd/resources/settings.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting label="30001" id="LCD_DRIVER" type="select" values="@DRIVERS@" default="none" />
|
||||
</category>
|
||||
</settings>
|
37
packages/addons/service/lcdd/source/bin/lcdd.start
Normal file
37
packages/addons/service/lcdd/source/bin/lcdd.start
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
oe_setup_addon service.lcdd
|
||||
|
||||
if [ -z "$LCD_DRIVER" -o "$LCD_DRIVER" == "none" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LCDCONF=$ADDON_HOME/LCDd.conf
|
||||
|
||||
if [ ! -f $LCDCONF ]; then
|
||||
if [ -f /storage/.cache/LCDd.conf ]; then
|
||||
mv /storage/.cache/LCDd.conf $LCDCONF
|
||||
else
|
||||
cp $ADDON_DIR/config/LCDd.conf $LCDCONF
|
||||
fi
|
||||
fi
|
||||
|
||||
LCDd -f -c $LCDCONF -d $LCD_DRIVER
|
35
packages/addons/service/lcdd/source/default.py
Normal file
35
packages/addons/service/lcdd/source/default.py
Normal file
@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
import subprocess
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
|
||||
|
||||
class Monitor(xbmc.Monitor):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
xbmc.Monitor.__init__(self)
|
||||
self.id = xbmcaddon.Addon().getAddonInfo('id')
|
||||
|
||||
def onSettingsChanged(self):
|
||||
subprocess.call(['systemctl', 'restart', self.id])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
Monitor().waitForAbort()
|
@ -0,0 +1,11 @@
|
||||
# Kodi Media Center language file
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "LCD driver"
|
||||
msgstr ""
|
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=LCDProc
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh /storage/.kodi/addons/service.lcdd/bin/lcdd.start
|
||||
TimeoutStopSec=1s
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
StartLimitInterval=30
|
||||
StartLimitBurst=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
x
Reference in New Issue
Block a user