Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
357 commits
Select commit Hold shift + click to select a range
1d1c7f7
Make navigation determination an InfoLabel function and do housekeeping
herrnst Nov 4, 2012
fbbb1cc
comment
herrnst Nov 4, 2012
57f1651
Save some cycles by only updating codec/channel icons when codec info…
herrnst Nov 4, 2012
a57a37e
whitespace
herrnst Nov 4, 2012
279373c
Implement icon setting when idle (based on active navigation/window i…
herrnst Nov 4, 2012
2279eee
missed WINDOW_PICTURES
herrnst Nov 4, 2012
9cd3379
Add disableonplaydelay option to delay display dim for disableonplay …
herrnst Nov 10, 2012
b99a408
Fix author name
herrnst Nov 12, 2012
6b08848
DisableOnPlayback(): Dim only when really playing (pause should activ…
herrnst Nov 12, 2012
546dc7a
CloseSocket(): announce disconnect to LCDd
herrnst Nov 18, 2012
bc30503
cleanup connection notification popup handling and move functionality…
herrnst Nov 18, 2012
561ecbf
Made connection notification popup display a user-toggleable option
herrnst Nov 18, 2012
7bf4a5a
put GUI-settings into categories, add hostport configuration option, …
herrnst Nov 18, 2012
11be9e2
changelog, license in README
herrnst Nov 18, 2012
b899cd2
Fix sleep not being executed when no connection to LCDproc can be made
herrnst Nov 18, 2012
33edd03
don't fill short strings with blanks
herrnst Nov 28, 2012
52564e5
alignment pseudo-enum, add dict member for alignment
herrnst Nov 28, 2012
d9fb571
initialize linedescriptor with empty globally-defined desc and set ne…
herrnst Nov 28, 2012
6fc1c83
set empty desc type to pseudo-enum type
herrnst Nov 28, 2012
6b2ed7a
find, apply and strip pseudo alignment-labels
herrnst Nov 28, 2012
db4b727
x offset in separate var
herrnst Nov 28, 2012
0d0b58c
fix: compare line length against maxlen instead of display len (corre…
herrnst Nov 28, 2012
f65655c
put alignment to correct dict member (copy/paste-bitch)
herrnst Nov 28, 2012
847f774
apply aligning to x-offset of scroller widget
herrnst Nov 28, 2012
272bc99
Merge line alignment feature from branch 'aligntext'
herrnst Dec 2, 2012
0c6ccd9
update addon changelog
herrnst Dec 2, 2012
20e4b75
make log prefix correctly resemble addon name
herrnst Dec 9, 2012
6dad94a
update addon metadata, german description
herrnst Dec 9, 2012
ad80016
update copyright info
herrnst Dec 9, 2012
3fc08d8
fix: avoid script error/crash when LCD.xml is missing, empty or inval…
herrnst Dec 26, 2012
896f2c5
make LCD.xml parse problems part of connection handling so Render() d…
herrnst Dec 26, 2012
cffe16b
INIT_RETRY_INTERVAL_MAX is seconds, not milliseconds (so really stop …
herrnst Dec 26, 2012
88d4c3b
leave more detailed instructions in xbmc.log after giving up with con…
herrnst Dec 26, 2012
6db15cb
[extra_imon] fix: make sure scaling icons are off when not playing vi…
herrnst Dec 26, 2012
621df12
[extra_*] fix: SetBar function call in Initialize() (how was this wor…
herrnst Dec 26, 2012
a74991b
Turning display off while playing PVR-TV/PVR-radio
theonlychriss Jan 13, 2013
e24f79c
Merge pull request #2 from theonlychriss/master
herrnst Jan 13, 2013
ff63c6b
light up icons for vc1-video and dtshd-hra, and treat "hdmv" (bluray)…
herrnst Jan 14, 2013
dc932ba
add trac ticket reference for hdmv "mistake"
herrnst Jan 20, 2013
9661e5b
additional id's for vc1 and pcm matching bluray codecs
herrnst Jan 20, 2013
309f3d7
start 1.3.0
herrnst Jan 20, 2013
fcf9f12
treat 'pcm_s24le' as wav
herrnst Jan 31, 2013
cdd5906
provide LCD.xml in a similar way to CopyUserDataIfNeeded(), have defa…
herrnst Jan 31, 2013
c61f4b4
add LCD.xml handling to changelog
herrnst Jan 31, 2013
5cab3f4
Rename things to script.xbmc.lcdproc
herrnst Feb 2, 2013
62ef7e6
move addon files to repo root, rename README to README.md
herrnst Feb 2, 2013
6068fde
add full depends and license-tag, bump version for eden/frodo compat
herrnst Feb 2, 2013
3400b56
changelog: Eden and Frodo versions
herrnst Feb 2, 2013
bb37119
reduce while loops in main to one and fix a possible CPU hog when LCD…
herrnst Feb 2, 2013
3db2d27
make string IDs conform to standards
herrnst Feb 2, 2013
afa9e86
mark LCDd ip and port as subsetting to emphasize the dependency of th…
herrnst Feb 2, 2013
0fc46db
Lcdproc telnet server doesn't support telnet command IAC.
PetrovSE Feb 10, 2013
62dccf6
Merge pull request #4 from PetrovSE/master
herrnst Feb 10, 2013
02b2eaf
handle socket object as class member to safe cycles in SendCommand()
herrnst Feb 10, 2013
d3bd6b2
remove an unneeded socket check and commented out code
herrnst Feb 10, 2013
3e2046d
partially revert d3bd6b2 causing exceptions on init/connect
herrnst Feb 10, 2013
9f32534
fix: do correct counting in SetExtraInfoBars() so all bars actually g…
herrnst Feb 10, 2013
32a42c5
Native imon codepage added
Vanek Dec 31, 2012
91373ec
Un-duplicate code, revert code shuffling and enable charmap encoding …
herrnst Jan 6, 2013
e7f041a
Delete redundant decoding table
Vanek Jan 7, 2013
56eaf21
Move codepages to correct location
herrnst Feb 2, 2013
71120bc
settings and strings for alternative charset selection
herrnst Feb 11, 2013
e222f4d
introduce GUI-setting updater, carefully handle charset setting and c…
herrnst Feb 11, 2013
18cc8ed
rename things to charset_hd44780, make code style match all other pyt…
herrnst Feb 11, 2013
83c51ae
Manually merge branch 'nativecharmaps' containing alternative charset…
herrnst Feb 18, 2013
4a155da
update credits for original implementation of imon/mdm166a stuff
herrnst Feb 18, 2013
b99a55a
changelog update
herrnst Feb 23, 2013
4bcd19c
fix variable initialisation (typo)
herrnst Feb 23, 2013
1ab1b71
register hd44780 encoder only if not previously done
herrnst Feb 23, 2013
34f701d
Cleanup of/ease backlight control
theonlychriss Jan 14, 2013
69e0939
put screensaver check into separate function aswell, initialise doDim…
herrnst Feb 23, 2013
1e4d25d
change ambiguous naming, rename dimming-check methods
herrnst Feb 23, 2013
64cc12b
reset dim state so backlight gets dimmed upon reload/reconnect again
herrnst Feb 23, 2013
a5c45c5
set backlight state before drawing content (fixes empty display on un…
herrnst Feb 23, 2013
9e52605
Merged branch 'backlight-control' - fully refactored and simplified b…
herrnst Feb 24, 2013
348667a
changelog
herrnst Feb 24, 2013
33cb3c3
mode variable not needed anymore, directly pass return of getLcdMode()
herrnst Feb 24, 2013
baa9b59
get dimonshutdown directly in Shutdown()
herrnst Feb 25, 2013
8719114
make 'disableonplaydelay' a GUI setting as well
herrnst Feb 25, 2013
9b9fde3
beautify dim settings/strings a bit
herrnst Feb 25, 2013
11b8b86
force UpdateGUISettings() on Initialize() to properly init vars on re…
herrnst Feb 25, 2013
08f41c3
Display WEBCASTING icon
PetrovSE Feb 13, 2013
4ca0276
Merge pull request #6 from PetrovSE/webcast
herrnst Feb 28, 2013
675d447
add caching around URI evaluation in InfoLabels_IsInternetStream() to…
herrnst Feb 28, 2013
fa6f8fa
get rid of self.tn.get_socket()
herrnst Feb 25, 2013
828c820
housekeeping
herrnst Feb 28, 2013
65185e2
Use XBMC system time instead python's local time
Mar 2, 2013
717f7b6
Merge pull request #7 from PetrovSE/bigclock
herrnst Mar 2, 2013
df142de
make time retrieval a bit more compact, refactor abit to not need fin…
herrnst Mar 2, 2013
eec6560
allow 'on' and 'true' as case-insensitive LCD.xml option bools
herrnst Mar 4, 2013
6f5f08c
new option 'disableplayindicatoronpause' disables playing indicator (…
herrnst Mar 4, 2013
d50ec47
extrabar-value 'volumehidden' only shows volume extra bar when volume…
herrnst Mar 4, 2013
7234eeb
changelog
herrnst Mar 10, 2013
dbeb779
Alignment on the center of the big clock
PetrovSE Mar 13, 2013
a6b9b4c
Merge pull request #10 from PetrovSE/bigclock
herrnst Mar 13, 2013
a4b4a71
Use sendall instead send
PetrovSE Mar 24, 2013
39bb2d0
Merge pull request #12 from PetrovSE/sendall
herrnst Mar 24, 2013
2872979
tidy up var initialisation a bit for readability
herrnst Mar 27, 2013
454be70
unduplicate code
herrnst Mar 27, 2013
77c0ae6
housekeeping
herrnst Mar 27, 2013
9b9d1e6
infolabels: interface function for getCondVidibility(), move getters …
herrnst Mar 27, 2013
c1402f1
provide "alwayson" option for extrabars
herrnst Apr 7, 2013
e87a718
cleanup reconnect conditional and improve code readability
herrnst Apr 22, 2013
2bf7891
add support for differing A00 and A02 charset variants for HD44780 RO…
herrnst Apr 21, 2013
88a7e8c
introduce GUI setting to fully disable extra element support (e.g. ic…
herrnst Apr 22, 2013
eb8a6bb
remove redundant extraicon clearing from ShutDown() and have function…
herrnst Apr 25, 2013
44ad083
changelog
herrnst Apr 25, 2013
059ecaa
added tvshow mode
May 23, 2013
6625db4
Merge pull request #16 from waven/tvshow
herrnst May 28, 2013
5ee4a2f
changelog, indent
herrnst May 28, 2013
5a035b8
treat LCD.xml as override for LCD.xml.defaults so additions (e.g. new…
herrnst Jun 5, 2013
4eb9515
LoadMode: clear mode at the beginning so users can force empty modes …
herrnst Jun 18, 2013
17f1a0e
InfoLabels: initialise return value in timeToSecs to fix a python exc…
herrnst Jun 20, 2013
b90ec3a
fixed format usage for GetSystemTime() to ease transition to XBMC 13+
herrnst Jun 20, 2013
5ce88d2
correctly set num of bigdigits based on display geometry and allow ov…
herrnst Jun 20, 2013
df472d4
changelog
herrnst Jun 20, 2013
8e1e96d
catch exceptions on decode.encode in Render()
herrnst Jul 4, 2013
238896f
extraicons: recognize eac3 (dolby digital plus) as ACODEC_AC3
herrnst Sep 5, 2013
86ceb2c
bigdigits: don't do full reset in ClearBigDigits() from SetBigDigits(…
herrnst Sep 9, 2013
4f9bb03
changelog
herrnst Sep 9, 2013
8c78850
update LCD.xml.defaults with all "advanced" options and their default…
herrnst Sep 12, 2013
4822b30
bump version for release
herrnst Sep 15, 2013
88aaec2
fix DoDimOnVideo(), missed variable comparison resulting in always-true
herrnst Oct 14, 2013
5e2c93b
version bump, changelog
herrnst Oct 14, 2013
7899701
added cz/sk characters with caron
dmnc-net Feb 1, 2014
5ea9a74
Merge pull request #18 from pavian/charsCZ
herrnst Feb 2, 2014
484db0c
Bump addon version, start X.3.3 changelog
herrnst Feb 2, 2014
3d3806a
Bump version to 2.4.x, start some gotham-only enhancements/changes
herrnst Feb 2, 2014
29608a8
cleanup usage of xbmcgui, readd to addon.xml imports as infolabels.py…
herrnst Feb 2, 2014
76c41f8
Fixed German u and o umlauts (small letters) in hd44780 a00 charset map.
ksooo Feb 23, 2014
fd628e3
Merge pull request #19 from ksooo/german-umlauts-hd44780_a00
herrnst Feb 24, 2014
ab6cd22
Gotham version will be 2.5.0
herrnst Feb 26, 2014
9ad38d9
line should have content also when configured encodings match
herrnst Feb 26, 2014
417d8c5
strip off BBcode tags from parsed infolabel in line renderer
herrnst Feb 26, 2014
a9c42bc
pass current mode to GetBigDigitTime() and use as indicator wether to…
herrnst Feb 17, 2014
5cd189e
changelog
herrnst Mar 3, 2014
ff50c47
improve/fix cpu-hogging regex, tidy up code
herrnst Mar 3, 2014
efa735b
catch errors related to bbcode regex caching/execution
herrnst Mar 5, 2014
e5408ac
insert resources/lib at index 0 of sys.path to fix unwanted priorisat…
herrnst Mar 9, 2014
865f134
changelog
herrnst May 21, 2014
70f68e2
split setup command loop to initialise all hbars before icons, fixes …
herrnst May 21, 2014
647dbf2
don't use str() function in LcdBase::LoadMode() and encode to UTF8, s…
herrnst Jul 7, 2014
b90a790
version bump to 2.5.1
herrnst Aug 18, 2014
879c98d
use m_strInfoLabelEncoding for linetext assignment instead of hardcod…
herrnst Aug 18, 2014
0c739fd
version bump, bump depends for helix
herrnst Sep 12, 2014
602c899
Update charset_map_hd44780_a00.py
Sep 20, 2014
9649600
Merge pull request #27 from DK-Git/patch-1
herrnst Sep 21, 2014
a790757
use player.muted infobool to determine mute state
herrnst Sep 18, 2014
a603fed
changelog
herrnst Sep 21, 2014
8a61128
drop unneeded dependency on xbmc.gui
herrnst Nov 7, 2014
f6dc664
changelog: tag 2.6.0 as "Helix"
herrnst Nov 7, 2014
f1b1ed3
change startup priority to "startup" so the addon gets active earlier
herrnst Jan 30, 2017
406ebd1
fix BigDigit (TimeWide mode) SystemTime retrieval
herrnst May 31, 2018
dcb673e
check Player.HasMedia instead of Player.Playing for any player activity
herrnst May 31, 2018
c0e4512
use IsPlayerPlaying instead of IsPlayingAny in LcdBase.SetExtraInform…
herrnst May 31, 2018
b4f0313
check for playing and paused in HandleBacklight()
herrnst May 31, 2018
e45d116
get PVR Epg progress labels to determine player progress percent
herrnst May 31, 2018
3070b3c
get Player.IsInternetStream in InfoBool_IsInternetStream()
herrnst May 31, 2018
f65f18e
Added Polish translation
mskalski Dec 30, 2017
329efa1
versionate as 3.0.0
herrnst May 31, 2018
2171d24
add *.pyo to .gitignore
herrnst May 31, 2018
8c8b8a9
cosmetics: get rid of stray whitespace all over the place
herrnst May 31, 2018
d0b33d9
update copyright year in all files
herrnst May 31, 2018
6173e8c
French translation
fengalin Aug 11, 2017
4a158b9
changelog: add note for the french translation
herrnst Jun 1, 2018
b724247
fix Time/Duration InfoLabels in the PVR screens in LCD.xml.defaults
herrnst Jun 1, 2018
19aea12
Add progressbar with time
truongtx8 Sep 12, 2015
1bdbd99
changelog: add note for the new progressbar+time linetype
herrnst Jun 1, 2018
5dc5a3c
optimizations for progresstime linetype handling
herrnst Jun 1, 2018
db9cad3
convert language files to strings.po format
herrnst Jun 2, 2018
b128729
addon.xml: add more addon details and fix language codes
herrnst Jun 2, 2018
29813b2
addon.xml: drop obsolete startup option from extension point
herrnst Jun 2, 2018
d07c88e
fr translations: fixes
fengalin Jun 3, 2018
e5dba18
Merge pull request #47 from fengalin/leia
herrnst Jun 3, 2018
352966e
global: change 'XBMC' to 'Kodi' in a few places
herrnst Jun 3, 2018
fdb8446
fix location reference to icon.png in lcdmain.py
herrnst Jun 4, 2018
bfb5cf9
changelog: put changes of 3.0.0 into addon.xml news-tag
herrnst Jun 5, 2018
be2d357
addon.xml: remove unneeded dependency on xbmc.addon
herrnst Jun 5, 2018
ea1068f
rename lcdmain.py to main.py
herrnst Jun 2, 2018
e86ee82
make sure things are started only from the __main__ scope
herrnst Jun 2, 2018
4500a34
refactor imports handling and create common module
herrnst Jun 3, 2018
6942733
remove __scriptname__ and use KODI_ADDON_NAME globally instead
herrnst Jun 4, 2018
046fd5e
remove __icon__ and use the new global KODI_ADDON_ICON instead
herrnst Jun 4, 2018
b72a116
clean up use of __settings__ and __cwd__
herrnst Jun 4, 2018
c1e171f
remove remaining __cwd__ and __settings__ pseudo globals aswell
herrnst Jun 4, 2018
8ff1b28
remove the more or less useless enum construct
herrnst Jun 5, 2018
0f08d65
remove pre-python2.7 compat code paths
herrnst Jun 5, 2018
ac7e27b
addon.xml: explicitly specify en_GB in the desciption and disclaimer …
herrnst Jun 6, 2018
54b8b45
remove unnecessary __settingshandler__ and just import settings instead
herrnst Jun 6, 2018
dcc7bb2
use the LOG* defines from common instead of referring xbmc.LOG*
herrnst Jun 6, 2018
9cb8df5
don't use print directly but rather use log(LOGDEBUG...)
herrnst Jun 6, 2018
1ab8cee
use xbmc.Monitor().abortRequested() instead of xbmc.abortRequested
herrnst Jun 6, 2018
335bcb6
use xbmcgui.Dialog() instead of executebuiltin to display the warning…
herrnst Jun 6, 2018
36775bc
syntax: make the ValueError exception catching py2/3 aware
herrnst Jun 6, 2018
2430b04
cleanup imports
herrnst Jun 6, 2018
25a7d57
python3: use absolute imports
herrnst Jun 9, 2018
629689c
python3: don't use obsolete methods from the string library
herrnst Jun 9, 2018
d9f1c01
python3: fix up byte/unicode string handling
herrnst Jun 10, 2018
bb797a9
explicitly specify the used encoding in LCD.xml.defaults
herrnst Jun 10, 2018
b89902b
py27-compat: enforce utf-8 string in InfoLabel_GetInfoLabel()
herrnst Jun 10, 2018
dcf2495
remove unused m_strInfoLabelEncoding and the srcline intermediate var
herrnst Jun 10, 2018
a971b05
changelog/addon.xml: note changes and set version to 3.0.1
herrnst Jun 13, 2018
9b6177c
refactor main handler into class XBMCLCDproc()
herrnst Jun 24, 2018
e16d1b4
don't unnecessarily check for abortRequested() in HandleConnectLCD()
herrnst Jun 24, 2018
64fbad6
fix the logic that resets failedConnectionNotified
herrnst Jun 26, 2018
f4b52c1
refactor settings into class Settings()
herrnst Jun 26, 2018
29e6fdd
move the LCD mode evaluation into the LcdBase class
herrnst Jun 30, 2018
d84aa81
refactor infolabels handling into class InfoLabels()
herrnst Jun 30, 2018
836909b
move the WINDOW_IDS value class to the common module
herrnst Jun 30, 2018
539d7fb
cleanup and fix WINDOW_IDS
herrnst Jul 1, 2018
d41da87
use xbmc.Monitor.waitForAbort() instead of time.sleep() in the main loop
herrnst Jul 1, 2018
39b224e
changelog/addon.xml: version 3.0.2
herrnst Jul 1, 2018
5e891c7
Update Polish translation
mskalski Aug 27, 2018
6c7748b
pass "errors=ignore" to string.decode() in InfoLabels.GetInfoLabel()
herrnst Sep 10, 2018
82b1769
add videocodec strings, fix mp3 audiocodec evaluation
herrnst Sep 10, 2018
dd1cc4d
changelog/addon.xml: version 3.0.3
herrnst Sep 10, 2018
31d86c0
addon.xml: add lang attribute to the summary tag
herrnst Sep 18, 2018
5d884c5
py2compat: make sure linetexts are encoded as UTF-8
herrnst Mar 2, 2019
816430a
cosmetics: fix a comment indent in infolabels.py
herrnst Mar 2, 2019
5127a4e
changelog/addon.xml: version 3.0.4
herrnst Mar 7, 2019
5a5c37e
Add setting to display clock using 3,4,5 or 6 big digits
mskalski Sep 11, 2018
0ef4c78
BigClock: fix not updating last digit if digits start offset change
mskalski Nov 2, 2018
626446d
Merge pull request #52 from mskalski/systime-format
herrnst Mar 22, 2019
4951539
changelog/addon.xml: version 3.0.5
herrnst Mar 28, 2019
fc6d169
addon.xml: bump xbmc.python dependency to 2.26.0
herrnst Mar 28, 2019
cf7f770
Remove all py2/3 compat switches and bump version to 3.90.0
herrnst Oct 22, 2019
e27d9f3
lcdproc: support protocol 0.4
herrnst Oct 22, 2019
a65093f
changelog/addon.xml: add missing changelog lines
herrnst Nov 21, 2019
80794ac
remove and replace LOGNOTICE and LOGSEVERE log levels
herrnst Sep 16, 2020
c38af90
use translatePath from xbmcvfs instead of xbmc
herrnst Sep 16, 2020
01a2ba7
changelog/addon.xml: version 3.90.1
herrnst Sep 16, 2020
594f678
replace getiterator with iter
BlackIkeEagle Feb 28, 2021
188bd13
Merge pull request #60 from BlackIkeEagle/getiterator-deprecated
herrnst Mar 8, 2021
5b3aa52
changelog/addon.xml: version 3.90.2
herrnst May 10, 2021
a66e1e3
Replace hyphens in the HD44780 charset map names to underscore
herrnst May 2, 2022
bb8d7d6
Use passed name directly when registering charset codecs
herrnst May 2, 2022
34cb257
changelog/addon.xml: version 4.0.0
herrnst May 4, 2022
b7d0f31
Update copyright year, clean up boilerplates
herrnst Feb 4, 2024
cc6e1ec
Fix SyntaxWarning on regex invalid escape sequences
alanswanson Sep 27, 2024
157a06c
Merge pull request #69 from alanswanson/master
herrnst Oct 3, 2024
b0ffde7
Rewritten socket code to support Python 3.13 by replacing telnetlib w…
m-wichmann Nov 10, 2024
2a3db31
Merge pull request #70 from m-wichmann/master
herrnst Nov 12, 2024
2b7dbba
Refactor and simplify socket_read_until_newline() to ReadUntil()
herrnst Nov 11, 2024
e3ddcaf
Don't enforce and/or assume ReadUntil() responses have a LF suffix
herrnst Nov 11, 2024
b2356d1
Be more verbose in Connect() and SendCommand(), cleanup telnet wording
herrnst Nov 11, 2024
c6a338d
changelog/addon.xml: version 4.1.0
herrnst Nov 11, 2024
807be25
Adding Swedish translation
yeager May 6, 2025
355873b
Merge pull request #71 from yeager/master
herrnst May 7, 2025
aa845d4
Adding Swedish to addon.xml (#72)
yeager Jun 13, 2025
a64470a
changelog/addon.xml: version 4.1.1
herrnst Jun 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.pyc
*.pyo
27 changes: 13 additions & 14 deletions script.xbmc.lcd/LICENSE.txt → LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble
Preamble

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Expand All @@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
Expand Down Expand Up @@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
Expand Down Expand Up @@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
Expand Down Expand Up @@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
Expand Down Expand Up @@ -225,7 +225,7 @@ impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
Expand Down Expand Up @@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY
NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
Expand All @@ -277,6 +277,5 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS
-------------------------------------------------------------------------
END OF TERMS AND CONDITIONS

18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Kodi (XBMC) LCDproc Python addon
=================================

Copyright (C) 2012-2024 Team Kodi, Daniel 'herrnst' Scheller
Based on initial work (C) 2012 Memphiz/Team Kodi (formerly Team XBMC)

LCDproc support for Kodi implemented in Python, direct drop-in replacement for
the LCD support that was present in prior versions of XBMC and it's core.

See https://github.com/herrnst/script.xbmc.lcdproc/wiki for details and usage
information.

This program 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.

See LICENSE.txt for more information.
33 changes: 33 additions & 0 deletions addon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.xbmc.lcdproc" name="XBMC LCDproc" version="4.1.1" provider-name="Team Kodi: Memphiz, Daniel 'herrnst' Scheller">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
</requires>
<extension point="xbmc.service" library="main.py"/>
<extension point="xbmc.addon.metadata">
<language></language>
<summary lang="en_GB">Kodi/XBMC LCDproc</summary>
<description lang="en_GB">Displays configurable information e.g. about playing media or Kodi status on any LC/VF-display driven by LCDproc, and acts as direct drop-in replacement to the LCD/VFD-feature previously available in Kodi/XBMC's core. Supports additional display elements (icons, bars) on SoundGraph iMON LCD and Targa/Futaba mdm166a VFD hardware. Requires a properly configured and running LCDd either locally or somewhere on the network.</description>
<description lang="de_DE">Zeigt konfigurierbare Informationen z.B. über aktuelle Wiedergabe oder den Kodi Status auf beliebigen von LCDproc angesteuerten LC/VF-Displays, ersetzt die zuvor im Kodi/XBMC-Kern enthaltene LCD/VFD-Funktion. Unterstützt zusätzliche Elemente (Icons, Balken) von SoundGraph iMON LCD und Targa/Futaba mdm166a VFD Hardware. Benötigt einen konfigurierten, laufenden LCDd auf dem lokalen System oder im Netzwerk.</description>
<description lang="fr_FR">Affiche des informations définies par configuration telles que le média en cours de lecture, l'état de Kodi... et ce sur tout type d'afficheur LC/VF géré par LCDProc. Remplace la fonctionnalité LCD/VFD précédemment disponible par défaut dans Kodi/XBMC. Gère des éléments supplémentaires (icônes, barres) sur les écrans SoundGraph iMON LCD et Targa/Futaba mdm166a VFD. Nécessite un serveur LCDd correctement configuré et disponible localement ou sur le réseau.</description>
<description lang="pl_PL">Wyświetla konfigurowalne informacje np. o odtwarzanych mediach oraz statusie Kodi na dowolnym wyświetlaczu LCD/VFD sterowanym poprzez LCDproc. Działa jako bezpośredni zamiennik funkcji wyświetlania na LCD/VFD poprzednio dostępnej w rdzeniu Kodi/XBMC. Wspiera wyświetlanie dodatkowych elementów (np. ikon stanu, linijek diodowych lub pasków postępu) na wyświetlaczach SoundGraph iMON (LCD) oraz Targa/Futaba mdm166a (VFD). Wymaga poprawnie skonfigurowanego i uruchomionego serwera LCDd albo lokalnie, albo gdzieś w sieci.</description>
<description lang="sv_SE">Visar konfigurerbar information, t.ex. om uppspelning av media eller Kodi-status på valfri LC/VF-skärm som drivs av LCDproc, och fungerar som direkt ersättning för LCD/VFD-funktionen som tidigare fanns i Kodi/XBMC:s kärna. Stöder ytterligare skärmelement (ikoner, staplar) på SoundGraph iMON LCD och Targa/Futaba mdm166a VFD-hårdvara. Kräver en korrekt konfigurerad och körande LCDd antingen lokalt eller någonstans i nätverket.</description>
<disclaimer lang="en_GB">Works with LCDproc only. Other LCD services like LCD4Linux or iMON Manager on Win32 are not supported. No liability taken for damaged hardware and/or software caused by this addon.</disclaimer>
<disclaimer lang="de_DE">Funktioniert ausschliesslich mit LCDproc. Andere LCD-Dienste wie LCD4Linux, iMON Manager unter Win32 u.a. sind nicht unterstützt. Keine Haftung für durch dieses Addon beschädigte Hard-/Software.</disclaimer>
<disclaimer lang="fr_FR">Fonctionne uniquement avec LCDProc. Les services tels que LCD4Linux ou iMON Manager sur Win32 ne sont pas gérés. Nous déclinons toute responsabilité en cas de dégats survenus suite à l'utilisation de cette extension.</disclaimer>
<disclaimer lang="pl_PL">Działa wyłącznie z LCDproc. Inne usługi LCD jak LCD4Linux lub iMON Manager dla Win32 nie są obsługiwane. Nie ponosimy żadnej odpowiedzialności za uszkodzony sprzęt i/lub oprogramowanie spowodowane tym dodatkiem.</disclaimer>
<disclaimer lang="sv_SE">Fungerar endast med LCDproc. Andra LCD-tjänster som LCD4Linux eller iMON Manager på Win32 stöds inte. Vi tar inget ansvar för skador på hårdvara och/eller programvara som orsakas av detta tillägg.</disclaimer>
<license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
<platform>all</platform>
<website>https://github.com/lcdproc/lcdproc</website>
<forum>https://forum.kodi.tv/showthread.php?tid=143912</forum>
<source>https://github.com/herrnst/script.xbmc.lcdproc</source>
<email>nst at kodi dot tv</email>
<assets>
<icon>resources/icon.png</icon>
</assets>
<news>4.1.1
- Swedish translation (thanks yeager!)
</news>
</extension>
</addon>
90 changes: 90 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
4.1.1
- Swedish translation (thanks yeager!)
4.1.0
- Python 3.13 compat: Use raw strings for regex'es everywhere, fixes SyntaxError's (thanks alanswanson!)
- Python 3.13 compat: Replace long deprecated telnetlib usage with raw sockets (thanks m-wichmann!)
- Minor housekeepings
4.0.0
- fix Python exception when using the HD44780 character encodings/translation maps
3.90.2
- fix compatibility with Python 3.9
3.90.1
- replace LOGNOTICE with LOGINFO, remove LOGSEVERE
- use translatePath from xbmcvfs instead of xbmc
3.90.0
- XBMC LCDproc for Kodi Matrix (Python 3)
- Allow LCDproc protocol version 0.4
3.0.5
- selectable BigDigit clock format by mskalski (thanks!)
3.0.4
- Fix possible exception due to improper LCD.xml handling
3.0.3
- Polish translation update by mskalski (thanks!)
- Fixed a possible UTF8 conversion crash/exception
- Updated video/audiocodec strings for extraicon display
3.0.2
- Refactored the main addon handling into class XBMCLCDproc()
- Refactored the settings and infolabels modules into classes
- fixed connection status popup handling logic
- Code/vars move and cleanup
- Window ID cleanup (fixes the extraicon triggers during navigation)
3.0.1
- Imports cleaned up
- Compatibility with Python 3
3.0.0 (Leia)
- Compatibility with Kodi 18 Leia
- Polish translation by mskalski (thanks!)
- French translation by fengalin (thanks!)
- Strings finally migrated to strings.po format
- New progressbar+time linetype by Truong Ta (thanks!)
- Fixes, cleanups, cosmetics and optimizations all over the place
2.6.0 (Helix)
- Initial version for Kodi Helix
- Fix retrieval of application mute state
- Small addition to the HD44780-A00 charmap for polish chars
- Dropped unneeded dependency on xbmc.gui
2.5.1
- Fix name conflict with the LCDproc PyEgg
- Split setup command list loop to initialise hbars before icons, fixes progress bars not being shown if placed after any icons on RasbPi
- Fix charset encoding exceptions on LCD.xml load if it contains UTF8 chars
2.5.0 (Gotham)
- Initial version for XBMC Gotham with updated dependencies
- BBcode tags are stripped before sending content to the display (reported to happen on e.g. OpenELEC)
- Change in behaviour: BigDigit tag will show the system time instead of current playtime if playing media is paused and the screensaver kicks in
- Missing german umlauts added to the HD44780-A00 character translation map
1.3.3 / 2.3.3 (Eden / Frodo)
- A02 char map enhanced to map czech characters
1.3.2 / 2.3.2
- Fix "dim display on video playback" functionality
1.3.1 / 2.3.1
- Recognize E-AC3 (Dolby Digital plus) as AC3 in extra stuff support (affect imonlcd support)
- Fix BigDigits overdrawing text on addon start when things change too fast
1.3.0 / 2.3.0
- Alternate charmap selection, support for HD44780/iMON ROM (A00 and A02 variants) charsets
- New "tvshow" mode, active when playing media from the TV-shows database
- Refactored backlight dimming handling and configuration via GUI settings
- Cleaned up and improved TCP/Telnet socket handling
- Indicate internet stream on extraicon-supported displays
- Use XBMC's time for daytime display on BigDigit-mode and thus properly display 12/24h clocks, improve bigdigit handling
- Additional "finetuning"-options for extraicon/bar-support
- Option to entirely disable extra stuff support
- Always load defaults so LCD.xml in the masterprofile acts as user override, makes additions like new modes or wrong spelling in XML tags not result in empty displays
- Bugfixes and friends, of course
1.2.1 / 2.2.1
- Bugfixes, Credits, slightly more convenient configuration option bools
1.2.0 / 2.2.0
- Maintain versions for Eden (1.x.x) and Frodo+ (2.x.x)
- Support for extra stuff (icons, bars) on supporting displays
- Extra stuff handling for SoundGraph iMON LCD and Futaba/Targa mdm166a VFD
devices (presence will be autodetected)
- Align each line either left (default), centered or right
- Fixed connection problem popup annoyance
- GUI settings cleanup and some more LCD.xml configurables
- Take care of providing a default LCD.xml in the master profile
1.1.0
- greatly improved client/server communication
- native widgets for bars, icons and bignumbers
- character conversion left to be done by LCDproc
- additional configuration options
1.0.0
- initial addon release
16 changes: 16 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
# XBMC LCDproc addon
# Copyright (C) 2012-2024 Team Kodi
# Copyright (C) 2012-2024 Daniel 'herrnst' Scheller
#
# Addon entry point
#

from resources.lib.xbmclcdproc import XBMCLCDproc

######
# script entry point
if __name__ == "__main__":
xbmclcd = XBMCLCDproc()
xbmclcd.RunLCD()
81 changes: 81 additions & 0 deletions resources/LCD.xml.defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<lcd>
<!-- advanced configurables, XML-uncomment and set options as desired -->

<!-- scrollseparator: string to use as separator if text gets scrolled -->
<!--scrollseparator> </scrollseparator-->

<!-- progressbarsurroundings: put progress bars in square brackets (on/off) -->
<!--progressbarsurroundings>off</progressbarsurroundings-->

<!-- progressbarblank: character to use as non-filled progressbar -->
<!--progressbarblank>-</progressbarblank-->

<!-- icontextoffset: offset for text displayed after any play/pause icons -->
<!--icontextoffset>2</icontextoffset-->

<!-- allowemptylines: show text lines without contents or filter them (on/off) -->
<!--allowemptylines>off</allowemptylines-->

<!-- centerbigdigits: (try to) align big numbers centered on the display (on/off) -->
<!--centerbigdigits>off</centerbigdigits-->

<!-- disableplayindicatoronpause: turn off any playing indicator (extra stuff) when pausing playback (on/off) -->
<!--disableplayindicatoronpause>off</disableplayindicatoronpause-->

<navigation>
<line>$INFO[System.CurrentWindow]</line>
<line>$INFO[System.CurrentControl]</line>
<line>Freemem: $INFO[System.FreeMemory]</line>
<line>$INFO[System.ScreenWidth]x$INFO[System.ScreenHeight] $INFO[System.ScreenMode]</line>
</navigation>
<music>
<line>$INFO[LCD.PlayIcon] $INFO[Player.Time]/$INFO[Player.Duration]</line>
<line>$INFO[MusicPlayer.Title]</line>
<line>$INFO[MusicPlayer.Artist]</line>
<line>$INFO[MusicPlayer.Album] ($INFO[MusicPlayer.Year])</line>
</music>
<video>
<line>$INFO[LCD.PlayIcon] $INFO[Player.Time]/$INFO[Player.Duration]</line>
<line>$INFO[VideoPlayer.Title]</line>
<line>$INFO[VideoPlayer.Genre]</line>
<line>$INFO[LCD.ProgressBar]</line>
<line>Freemem: $INFO[System.FreeMemory]</line>
</video>
<tvshow>
<line>$INFO[LCD.PlayIcon] $INFO[Player.Time]/$INFO[Player.Duration]</line>
<line>$INFO[VideoPlayer.TVShowTitle]</line>
<line>$INFO[VideoPlayer.Title]</line>
<line>$INFO[LCD.ProgressBar]</line>
<line>Freemem: $INFO[System.FreeMemory]</line>
</tvshow>
<general>
<line>Kodi running...</line>
<line>$INFO[System.Time] $INFO[System.Date]</line>
<line>Freemem: $INFO[System.FreeMemory]</line>
<line>$INFO[System.ScreenWidth]x$INFO[System.ScreenHeight] $INFO[System.ScreenMode]</line>
</general>
<screensaver>
<line>$INFO[System.CurrentWindow]</line>
<line>$INFO[LCD.TimeWide21]</line>
<line>$INFO[LCD.TimeWide22]</line>
<line>Freemem: $INFO[System.FreeMemory]</line>
</screensaver>
<xbelaunch>
<line></line>
<line>Playing</line>
<line>$INFO[System.LaunchXBE]</line>
</xbelaunch>
<pvrtv>
<line>$INFO[VideoPlayer.ChannelName]</line>
<line>$INFO[VideoPlayer.Title]</line>
<line>$INFO[LCD.PlayIcon] $INFO[PVR.EpgEventElapsedTime]$INFO[PVR.EpgEventDuration,/,]</line>
<line>$INFO[LCD.ProgressBar]</line>
</pvrtv>
<pvrradio>
<line>$INFO[MusicPlayer.ChannelName]</line>
<line>$INFO[MusicPlayer.Title]</line>
<line>$INFO[LCD.PlayIcon] $INFO[PVR.EpgEventElapsedTime]$INFO[PVR.EpgEventDuration,/,]</line>
<line>$INFO[LCD.ProgressBar]</line>
</pvrradio>
</lcd>
1 change: 1 addition & 0 deletions resources/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# dummy file for Python package directory labeling
File renamed without changes
Loading