Graphlcd-plugin/touchcol/changelog: Difference between revisions

From VDR Wiki
Jump to navigation Jump to search
(raw paste)
 
 
(9 intermediate revisions by the same user not shown)
Line 2: Line 2:
this changelog is taken from a thread from vdr-portal.de and has been started in german. only the newer entries have been made in english.
this changelog is taken from a thread from vdr-portal.de and has been started in german. only the newer entries have been made in english.


=== Changes (most recent first) ===
---
Sunday, March 17th 2013, 10:33am [941]
Sunday, March 17th 2013, 10:33am [941]
* news (graphlcd-base):


* '''news''' (graphlcd-base):
showpic: fix rendering bug
** showpic: fix rendering bug
Makefiles: rename PRESTRIP to HAVE_STRIP and unset it by default
** Makefiles: rename <tt>PRESTRIP</tt> to <tt>HAVE_STRIP</tt> and unset it by default

---


----
Friday, January 25th 2013, 9:24pm
Friday, January 25th 2013, 9:24pm
news (vdr-plugin-graphlcd):


* '''news''' (vdr-plugin-graphlcd):
Makefile: should now be compliant with 'new style make' and old vdr versions (incl. 1.4.x)
** Makefile: should now be compliant with 'new style make' and old vdr versions (incl. 1.4.x)


so. habe das Makefile ausgehend von einem via newplugin generiertem makefile neu erzeugt und angereichert, sodass es jetzt fuer div. vdr-versionen (neu, alt, sogar 1.4.x) brauchbar sein sollte, egal ob pkg-config das vdr.pc vom tree holt oder vom system, es werden auch auf keine dateien v. vdr mehr direkt zugegriffen und ich habe es in allen moeglichen und unmoeglichen anwendungsfaellen ausprobiert (ausg. jene, die ich uebersehen habe) ...
: so. habe das Makefile ausgehend von einem via newplugin generiertem makefile neu erzeugt und angereichert, sodass es jetzt fuer div. vdr-versionen (neu, alt, sogar 1.4.x) brauchbar sein sollte, egal ob pkg-config das vdr.pc vom tree holt oder vom system, es werden auch auf keine dateien v. vdr mehr direkt zugegriffen und ich habe es in allen moeglichen und unmoeglichen anwendungsfaellen ausprobiert (ausg. jene, die ich uebersehen habe) ...
achtung luxusedition: ich habe sogar ein paar kommentare hineingeschrieben ...
achtung luxusedition: ich habe sogar ein paar kommentare hineingeschrieben ...


---
----

Monday, January 21st 2013, 12:57am
Monday, January 21st 2013, 12:57am
news (vdr-plugin-graphlcd)


* '''news''' (vdr-plugin-graphlcd):
consider that both VDRDIR and PLGCFG can be empty
** consider that both <tt>VDRDIR</tt> and <tt>PLGCFG</tt> can be empty


wie auf seite 44 bereits vorgeschlagen, werden VDRDIR und PLGCFG jetzt separat behandelt.
: wie bereits zuvor vorgeschlagen, werden <tt>VDRDIR</tt> und <tt>PLGCFG</tt> jetzt separat behandelt.
eine extra behandlung, dass Make.config in neueren versionen _ueberhaupt_ nicht mehr inkludiert werden kann, wird noch folgen.
eine extra behandlung, dass <tt>Make.config</tt> in neueren versionen ''ueberhaupt'' nicht mehr inkludiert werden kann, wird noch folgen.
getestet innerhalb v. vdr sowohl v. vdr-root aus als auch v. plugin-verzeichnis aus und von plugin-verzeichnis ausserhalb v. vdr-tree (mittels VDRDIR=<path to vdr-tree> make)
getestet innerhalb v. vdr sowohl v. vdr-root aus als auch v. plugin-verzeichnis aus und von plugin-verzeichnis ausserhalb v. vdr-tree (mittels <tt>VDRDIR=<path to vdr-tree> make</tt>)


* '''news''' (vdr-plugin-graphlcd):
** disallow inclusion of Make.config when VDR >= 1.7.33


----
ergaenzung (behandlung v. Make.config)-inkludierung:

news (vdr-plugin-graphlcd):

disallow inclusion of Make.config when VDR >= 1.7.33

---

Monday, January 7th 2013, 12:47am
Monday, January 7th 2013, 12:47am
news (graphlcd-base):


* '''news''' (graphlcd-base):
experimental support added for picoLCD 256x64 (contributed by Jochen Koch)
** experimental support added for '''picoLCD 256x64''' (contributed by Jochen Koch)<br/>'''nota bene''': needs to be activated in <tt>Make.config</tt> first because it is experimental for now

anm.: muss erst im Make.config aktiviert werden (solang bis es vdrstarter oder andere als produktiv einschaetzt/en :)

---


----
Saturday, October 27th 2012, 7:41pm
Saturday, October 27th 2012, 7:41pm


bugfix (Dimmen bei Wiedergabe?)
* '''bugfix''' (Dimmen bei Wiedergabe?):
fehler ist gefixt, display dimmt jetzt auch bei der wiedergabe.
** fehler ist gefixt, display dimmt jetzt auch bei der wiedergabe.

---


----
Sunday, September 23rd 2012, 10:42pm
Sunday, September 23rd 2012, 10:42pm
hab die auf scaleQuantumToDouble() basierende aenderung mal gepusht ...


* '''bugfix''':
---
** hab die auf <tt>scaleQuantumToDouble()</tt> basierende aenderung mal gepusht ...


----
Thursday, September 13th 2012, 11:33pm
Thursday, September 13th 2012, 11:33pm
news (vdr-plugin-graphlcd):


* '''news''' (vdr-plugin-graphlcd):
plugin.c: vdr >= 1.7.30 API-change: ConfigDirectory() -> ResourceDirectory()
** <tt>plugin.c</tt>: vdr >= 1.7.30 API-change: <tt>ConfigDirectory()</tt> -> <tt>ResourceDirectory()</tt>

---


----
Saturday, June 16th 2012, 4:54pm
Saturday, June 16th 2012, 4:54pm
news (graphlcd-base):


* '''news''' (graphlcd-base):<br/>
Image/GraphicsMagick: use much more relieable sample() instead of scale() for scaling images:
** '''Image/GraphicsMagick''': use much more relieable <tt>sample()</tt> instead of <tt>scale()</tt> for scaling images:
problems with distorted scaled icons/images or other display errors should now be history.
** problems with distorted scaled icons/images or other display errors should now be history.
monochrome images: fix monochrome bug in imagefile.c:
bgcolor and color should be working again for monochrome icons/symbols
** monochrome images: fix monochrome bug in <tt>imagefile.c</tt>:<br/>bgcolor and color should be working again for monochrome icons/symbols
improved relieability of eq()/ne()/gt()/lt()/ge()/le() if comparing 'mixture' of string / bool / value
** improved relieability of <tt>eq()/ne()/gt()/lt()/ge()/le()</tt> if comparing 'mixture' of string / bool / value
fixed a bug which could lead to an infinite loop under rare circumstances (if a content part contains a spare # without a variable name)
** fixed a bug which could lead to an infinite loop under rare circumstances (if a content part contains a spare # without a variable name)
permit and evaluate $( )$ expressions to enable direct embedding of functions in the content part of elements such as <text/>:
** permit and evaluate <tt>$( )$</tt> expressions to enable direct embedding of functions in the content part of elements such as <text/>:<br/>eg: <tt><text>$(add(#SomeVar,#SomeOtherVar))$</text></tt><br/>'''attention''': <tt>$()$</tt> is not verified (yet) when parsing the skin. if it contains syntactical errors, the unprocessed term will be displayed at runtime.
** '''clang''' can now be used instead of '''g++'''.<br/>'<tt>CXX=clang make</tt>' now compiles the whole graphlcd-base using clang.
eg: <text>$(add(#SomeVar,#SomeOtherVar))$</text>
** added support for fontconfig font name representations:<br/>eg.: <tt><font id="FontInfo" url="fc:Sans Serif:bold:size=12"/></tt><br/>'''attention''': specifying a size term (eg. '<tt>size=12</tt>') is mandatory!
attention: $()$ is not verified (yet) when parsing the skin. if it contains syntactical errors, the unprocessed term will be displayed at runtime.
clang can now be used instead of g++.
'CXX=clang make' now compiles the whole graphlcd-base using clang.
added support for fontconfig font name representations:
eg.: <font id="FontInfo" url="fc:Sans Serif:bold:size=12"/>
attention: specifying a size term (eg. 'size=12') is mandatory!


news (vdr-plugin-graphlcd):


* '''news''' (vdr-plugin-graphlcd):
fixed a bug that has been introduced in a former update and rendered some services unusable
** fixed a bug that has been introduced in a former update and rendered some services unusable

---


----
Sunday, March 25th 2012, 6:35pm [738]
Sunday, March 25th 2012, 6:35pm [738]
news (vdr-plugin-graphlcd):

plugin kompiliert jetzt auch unter vdr 1.7.27 (das eine include war in display.c ohnedies ueberfluessig)


* '''news''' (vdr-plugin-graphlcd):
---
** plugin kompiliert jetzt auch unter vdr 1.7.27 (das eine include war in <tt>display.c</tt> ohnedies ueberfluessig)


----
Sunday, March 11th 2012, 7:20pm [725]
Sunday, March 11th 2012, 7:20pm [725]
news (vdr-plugin-graphlcd):


* '''news''' (vdr-plugin-graphlcd):
unterstuetzung fuer VDR >= 1.7.26 hinzugefuegt
** unterstuetzung fuer VDR >= 1.7.26 hinzugefuegt

---


----
Sunday, March 11th 2012, 2:26pm [722]
Sunday, March 11th 2012, 2:26pm [722]
news (vdr-plugin-graphlcd):


* '''news''' (vdr-plugin-graphlcd):
{MenuTextScroll} sollte jetzt etwas zuverlaessiger funktionieren (noch nicht perfekt, aber zumindest brauchbar(er))
** <tt>{MenuTextScroll}</tt> sollte jetzt etwas zuverlaessiger funktionieren (noch nicht perfekt, aber zumindest brauchbar(er))
---


----
Tuesday, March 6th 2012, 9:25pm [704]
Tuesday, March 6th 2012, 9:25pm [704]
news (graphlcd-base):


* '''news''' (graphlcd-base):
serdisplib-treiber versucht jetzt flexibler, die serdisplib zu laden.
** serdisplib-treiber versucht jetzt flexibler, die serdisplib zu laden.<br/><br/>angefangen wird bei <tt>libserdisp.so.3</tt> (jew. ohne und mit "<tt>/usr/local/lib/</tt>") bis hinunter zu <tt>libserdisp.so.1</tt>.<br/>wenn dann noch nix dann ist, dasselbe spiel mit <tt>libserdisp.so</tt> (ohne major version).


----
angefangen wird bei libserdisp.so.3 (jew. ohne und mit "/usr/local/lib/") bis hinunter zu libserdisp.so.1.
Tuesday, March 6th 2012, 1:11am [695]
wenn dann noch nix dann ist, dasselbe spiel mit libserdisp.so (ohne major version).


* '''news''' (graphlcd-base):
---
** verbessertes logging (wo wird syslog-ausgabe generiert, syslog-flooding sollte jetzt behoben sein)
** zusaetzliches feature fuer progress bar: <tt>gradient</tt>


Tuesday, March 6th 2012, 1:11am [695]
news (graphlcd-base):


das gradient-feature kennt zwei optionen: <tt>gradient="total|current|vertical"</tt> und <tt>gradientcolor="<farbe>"</tt>
verbessertes logging (wo wird syslog-ausgabe generiert, syslog-flooding sollte jetzt behoben sein)
zusaetzliches feature fuer progress bar: gradient


* '''gradientcolor''': die farbabstufungen werden zwischen <tt>color</tt> und <tt>gradientcolor</tt> berechnet
das gradient-feature kennt zwei optionen: gradient="total|current|vertical" und gradientcolor="<farbe>"
* '''total''': die farbabstufungen werden ueber die maximale groesse des progress bars berechnet
* '''current''': die farbabstufungen werden nur ueber den tatsaechlich angezeigten progress bar berechnet
* '''vertical''': die farbabstufungen werden ueber die dicke des progress bars berechnet


gradientcolor: die farbabstufungen werden zwischen color und gradientcolor berechnet


'''beispiele''' (geordnet nach screenshots):
total: die farbabstufungen werden ueber die maximale groesse des progress bars berechnet
current: die farbabstufungen werden nur ueber den tatsaechlich angezeigten progress bar berechnet
vertical: die farbabstufungen werden ueber die dicke des progress bars berechnet


<pre>
beispiele (geordnet nach screenshots):
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
gradient="total" direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
gradient="current" direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
gradient="vertical" direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
</pre>


{|
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF" gradient="total" direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
|- valign="bottom"
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
|colspan="3"| [[Image:20120306_gradient_total.png|thumb|200px|''gradient=total'']]
gradient="current" direction="0" current="{PresentProgress}"
| [[Image:20120306_gradient_current.png|thumb|200px|''gradient=current'']]
total="{PresentDuration}"/>
| [[Image:20120306_gradient_vertical.png|thumb|200px|''gradient=vertical'']]
<progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
|}
gradient="vertical" direction="0" current="{PresentProgress}"
total="{PresentDuration}"/>


zu beachten:
zu beachten:
* gradient 'overruled' peak (dh. sobald gradient verwendet wird, ist keine peak-anzeige mehr moeglich).
* es muss sowohl die option gradient als auch gradientcolor definiert sein damit die gradient-funktion aktiviert wird.


----
gradient 'overruled' peak (dh. sobald gradient verwendet wird, ist keine peak-anzeige mehr moeglich).
Tuesday, November 8th 2011, 11:57pm [679]
es muss sowohl die option gradient als auch gradientcolor definiert sein damit die gradient-funktion aktiviert wird.


---

Tuesday, November 8th 2011, 11:57pm [679]
channellogos sind jetzt 1:1 jene vom graphlcd master branch (inkl. dateinamen und alles. auch die channels.alias ist vom master branch. sollten channel logos im touchcol branch neuer / mehr / ... gewesen sein (was ich kaum glaube), sind diese jetzt weg)
channellogos sind jetzt 1:1 jene vom graphlcd master branch (inkl. dateinamen und alles. auch die channels.alias ist vom master branch. sollten channel logos im touchcol branch neuer / mehr / ... gewesen sein (was ich kaum glaube), sind diese jetzt weg)


---
----

Saturday, October 29th 2011, 11:22pm [669]
Saturday, October 29th 2011, 11:22pm [669]
news:


* '''news''':
neue Tokens
** neue Tokens
neuer parameter 'evaluate' fuer <variable/>
** neuer parameter '<tt>evaluate</tt>' fuer <tt><variable/></tt>
verbesserte (konsistentere) logausgaben
** verbesserte (konsistentere) logausgaben




tokens:
'''tokens''':
* <tt>'''{ActualDevice}'''</tt>: liefert die ID des aktuell aktiven empfangsgeraetes (startend mit 1)
* <tt>'''{SignalStrength}'''</tt>: ab VDR 1.7.19: signalstaerke, von 0 - 100
* <tt>'''{SignalQuality}'''</tt>: ab VDR 1.7.19: signalqualitaet, von 0 - 100
* <tt>'''{SupportsSignalInfo}'''</tt>: abfrage, ob <tt>{SignalStrength}</tt> und <tt>{SignalQuality}</tt> unterstuetzt werden


'''evaluate''':
{ActualDevice} ... liefert die ID des aktuell aktiven empfangsgeraetes (startend mit 1)
* mit diesem parameter kann nun festgelegt werden, wann eine variable neu evaluiert wird (relevant fuer variable, die berechnet werden und/oder den wert von tokens bekommen.
{SignalStrength} ... ab VDR 1.7.19: signalstaerke, von 0 - 100
{SignalQuality} .. ab VDR 1.7.19: signalqualitaet, von 0 - 100
{SupportsSignalInfo} .. werden {SignalStrength} und {SignalQuality} unterstuetzt?




mit dem parameter evalute kann nun festgelegt werden, wann eine variable neu evaluiert wird (relevant fuer variable, die berechnet werden und/oder den wert von tokens bekommen.
werte fuer evaluate:
werte fuer evaluate:
* '''always''': variable wird bei jedem auslesen neu berechnet. wenn diese 10x im skin verwendet wird, wird 10x neu berechnet.
* '''tick''': die variable wird nur einmal pro displayupdate neu berechnet, ansonsten wird der zuvor berechnete wert zurueckgeben
* '''switch''': die variable wird nach einem channel- oder menueupdate neu berechnet
* '''once''': die variable wird nur ein einziges mal berechnet (bei der ersten verwendung, ab dann wird der berechnete wert zurueckgegeben)
* '''interval''': ein intervall (format: interval:<interval>) kann eingestellt werden (in ms), zb: evaluate="interval:1000" -> variable wird max. 1x / sekunde neu berechnet.<br/>
* '''tick''' ist ab jetzt die '''standardeinstellung''' (wenn nichts angegeben wird).


: mit dieser massnahme kann eine ungewuenschte exzessive neuberechnung (zb. innerhalb eines updatezyklus) vermieden werden, oder, wenn wie im falle von {SignalStrength} / {SignalQuality} das auslesen dieser tokens sehr lange dauert, abfangen von performanceproblemen.
always: variable wird bei jedem auslesen neu berechnet. wenn diese 10x im skin verwendet wird, wird 10x neu berechnet.
tick: die variable wird nur einmal pro displayupdate neu berechnet, ansonsten wird der zuvor berechnete wert zurueckgeben
switch: die variable wird nach einem channel- oder menueupdate neu berechnet
once: die variable wird nur ein einziges mal berechnet (bei der ersten verwendung, ab dann wird der berechnete wert zurueckgegeben)
interval: ein intervall (format: interval:<interval>) kann eingestellt werden (in ms), zb: evaluate="interval:1000" -> variable wird max. 1x / sekunde neu berechnet.

tick ist ab jetzt die standardeinstellung (wenn nichts angegeben wird).

mit dieser massnahme kann eine ungewuenschte exzessive neuberechnung (zb. innerhalb eines updatezyklus) vermieden werden, oder, wenn wie im falle von {SignalStrength} / {SignalQuality} das auslesen dieser tokens sehr lange dauert, abfangen von performanceproblemen.
bei mir dauert das lesen von {SignalStrength} zw. 300 und 600 ms. wenn dieses token dann 3x neu gelesen wird, kommt es zu zieml. performanceproblemen (scrolling, ...) und ausserdem laufen die werte auseinander (zb. progressbar vs. label). tick alleine faengt bereits das auseinanderlaufen ab, ein interval kann darueber hinaus eine sinnvolle update-frequenz garantieren (Es ist nicht notwendig, Signalinfo alle 100ms neu auswertet zu lassen ...)
bei mir dauert das lesen von {SignalStrength} zw. 300 und 600 ms. wenn dieses token dann 3x neu gelesen wird, kommt es zu zieml. performanceproblemen (scrolling, ...) und ausserdem laufen die werte auseinander (zb. progressbar vs. label). tick alleine faengt bereits das auseinanderlaufen ab, ein interval kann darueber hinaus eine sinnvolle update-frequenz garantieren (Es ist nicht notwendig, Signalinfo alle 100ms neu auswertet zu lassen ...)


---
----

Monday, October 24th 2011, 8:13pm [658]
Monday, October 24th 2011, 8:13pm [658]
news:
news:
Line 196: Line 177:
image cache: beim erfolgreichen laden eines bildes wird ins syslog eine meldung geschrieben (fuer debuggingzwecke, ...)
image cache: beim erfolgreichen laden eines bildes wird ins syslog eine meldung geschrieben (fuer debuggingzwecke, ...)


---
----

Friday, October 21st 2011, 1:08am [653]
Friday, October 21st 2011, 1:08am [653]
news:
news:
Line 209: Line 189:
der graphlcd-framebuffer-support kann jetzt mehr und ist flexibler als der der serdisplib :)
der graphlcd-framebuffer-support kann jetzt mehr und ist flexibler als der der serdisplib :)


---
----

Sunday, October 16th 2011, 12:38am [626]
Sunday, October 16th 2011, 12:38am [626]
news:
news:
Line 217: Line 196:
images werden bei skalierungen auto/autox/autoy jetzt zentriert
images werden bei skalierungen auto/autox/autoy jetzt zentriert


---
----

Saturday, October 15th 2011, 6:53pm [622]
Saturday, October 15th 2011, 6:53pm [622]
news:
news:
Line 231: Line 209:
zentrierung erfolgt automatisch bei auto/autox/autoy
zentrierung erfolgt automatisch bei auto/autox/autoy


---
----

Thursday, October 13th 2011, 1:08pm [605]
Thursday, October 13th 2011, 1:08pm [605]
es scheint sich ein fehler in der bitorder in SetPixel() eingeschlichen zu haben. habe das jetzt bei den displays, die nicht mit pages (8 bit = 8 vertikale pixel) arbeiten behoben. davon ist nur 'image' verifiziert.
es scheint sich ein fehler in der bitorder in SetPixel() eingeschlichen zu haben. habe das jetzt bei den displays, die nicht mit pages (8 bit = 8 vertikale pixel) arbeiten behoben. davon ist nur 'image' verifiziert.
Line 242: Line 219:
EDIT: sed1330 und ks0108 sind jetzt auch verifiziert (ks0108 ist allerdings sehr langsam. da wuerde ich den ks0108-support v. serdisplib emfehlen)
EDIT: sed1330 und ks0108 sind jetzt auch verifiziert (ks0108 ist allerdings sehr langsam. da wuerde ich den ks0108-support v. serdisplib emfehlen)


---
----

Thursday, October 13th 2011, 10:22am [601]
Thursday, October 13th 2011, 10:22am [601]


Line 251: Line 227:
graphlcd-zeug laeuft immer noch korrekt auf einer alten FedoraCore5-schuessel mit vdr 1.4.7.
graphlcd-zeug laeuft immer noch korrekt auf einer alten FedoraCore5-schuessel mit vdr 1.4.7.


---
----

Saturday, October 8th 2011, 12:53am [591]
Saturday, October 8th 2011, 12:53am [591]
news:
news:
Line 279: Line 254:
UNSET someotherkey
UNSET someotherkey


---
----

Saturday, October 1st 2011, 1:28pm [561]
Saturday, October 1st 2011, 1:28pm [561]
news:
news:
Line 288: Line 262:
default.skin: unterstuetzung fuer audiotrack-auswahl + audiochannel-auswahl hinzugefuegt, bug fixes, verbesserungen
default.skin: unterstuetzung fuer audiotrack-auswahl + audiochannel-auswahl hinzugefuegt, bug fixes, verbesserungen


---
----

Thursday, September 29th 2011, 12:56am [560]
Thursday, September 29th 2011, 12:56am [560]
news:
news:
Line 302: Line 275:
das ganze skin ist ziemlich komplex: fehler werden hoechstwahrscheinlich nicht gerade wenige enthalten sein ... (obwohl: bei meinen tests funktioniert es ganz gut)
das ganze skin ist ziemlich komplex: fehler werden hoechstwahrscheinlich nicht gerade wenige enthalten sein ... (obwohl: bei meinen tests funktioniert es ganz gut)


---
----

Thursday, September 22nd 2011, 1:14am [524]
Thursday, September 22nd 2011, 1:14am [524]


Line 336: Line 308:
-> disp1 zeigt 'ahoi' an, disp2 wieder 'hurra' (da nur der display-spez. eintrag geloescht worden ist)
-> disp1 zeigt 'ahoi' an, disp2 wieder 'hurra' (da nur der display-spez. eintrag geloescht worden ist)


---
----


Saturday, September 17th 2011, 10:45pm [514]
Saturday, September 17th 2011, 10:45pm [514]
hab wieder ein wenig im code herumgespielt, darum folgende neuigkeiten:
hab wieder ein wenig im code herumgespielt, darum folgende neuigkeiten:
Line 403: Line 373:
mit der aufnahme von {MenuText} sollte jetzt alles angezeigt werden koennen, was auch graphlcd-0.1.x anzeigen konnte (wenn doch noch etwas fehlen sollte: mir bitte hier posten). siehe bild 3
mit der aufnahme von {MenuText} sollte jetzt alles angezeigt werden koennen, was auch graphlcd-0.1.x anzeigen konnte (wenn doch noch etwas fehlen sollte: mir bitte hier posten). siehe bild 3


---
----

Friday, September 9th 2011, 8:31am [494]
Friday, September 9th 2011, 8:31am [494]
news:
news:
Line 412: Line 381:
stabilitaet: beim verbinden an ein nicht angeschlossenes display sollte es jetzt keine crashes mehr geben (gemeldet v. Keine_Ahnung, von mir bei CONNECT/DISCONN-spielereien nachvollzogen. @Keine_Ahnung: das graphlcd-base ebenfalls auf den neuesten stand bringen (ansonsten bei DISCONN crash mit serdisp-treiber. bitte testen)).
stabilitaet: beim verbinden an ein nicht angeschlossenes display sollte es jetzt keine crashes mehr geben (gemeldet v. Keine_Ahnung, von mir bei CONNECT/DISCONN-spielereien nachvollzogen. @Keine_Ahnung: das graphlcd-base ebenfalls auf den neuesten stand bringen (ansonsten bei DISCONN crash mit serdisp-treiber. bitte testen)).


---
----

Saturday, August 27th 2011, 5:52pm [453]
Saturday, August 27th 2011, 5:52pm [453]
news:
news:
* installation v. udev-rulesfile hinzugefuegt.
* installation v. udev-rulesfile hinzugefuegt.


---
----

Saturday, July 30th 2011, 4:43pm [322]
Saturday, July 30th 2011, 4:43pm [322]
neu:
neu:
Line 435: Line 402:
diese zwei angaben bewirken dasselbe (ein relativer pfad ist automatisch relativ zum skin-pfad.
diese zwei angaben bewirken dasselbe (ein relativer pfad ist automatisch relativ zum skin-pfad.


---
----

Saturday, July 9th 2011, 2:02pm [321]
Saturday, July 9th 2011, 2:02pm [321]
neu:
neu:
Line 499: Line 465:
</block>
</block>


---
----

Wednesday, June 29th 2011, 10:25pm [316]
Wednesday, June 29th 2011, 10:25pm [316]
neu
neu
Line 508: Line 473:
aktuellen noritake800 aus 0.1.x genommen und angepasst
aktuellen noritake800 aus 0.1.x genommen und angepasst


---
----

Wednesday, June 29th 2011, 1:25am [315]
Wednesday, June 29th 2011, 1:25am [315]
neu:
neu:
Line 519: Line 483:
hoffe, dass ich keine nebeneffekte hineingebracht habe, waren doch einige grundlegende aenderungen. meine tests brachten aber keine auffaelligkeiten zu tage ...
hoffe, dass ich keine nebeneffekte hineingebracht habe, waren doch einige grundlegende aenderungen. meine tests brachten aber keine auffaelligkeiten zu tage ...


---
----

Monday, June 27th 2011, 10:29pm [314]
Monday, June 27th 2011, 10:29pm [314]
neuigkeiten:
neuigkeiten:
Line 527: Line 490:
vdr-plugin-graphlcd: paranoia mode fuer strcmp. wenn das auch nicht hilft dann muss das wohl jmd. mit rds-faehigen radiosendern debuggen (gdb, mit dem man dann auch die konkreten inhalte der structs sehen kann).
vdr-plugin-graphlcd: paranoia mode fuer strcmp. wenn das auch nicht hilft dann muss das wohl jmd. mit rds-faehigen radiosendern debuggen (gdb, mit dem man dann auch die konkreten inhalte der structs sehen kann).


---
----

Sunday, June 26th 2011, 9:15pm [312]
Sunday, June 26th 2011, 9:15pm [312]
neu:
neu:
Line 536: Line 498:
der bugfix fuer cBitmap constructor wird spaeter committed (ist gerade groessere baustelle (anpassen der div. Save*-methods() an die 32bpp internas)
der bugfix fuer cBitmap constructor wird spaeter committed (ist gerade groessere baustelle (anpassen der div. Save*-methods() an die 32bpp internas)


---
----

Saturday, June 25th 2011, 10:17pm [310]
Saturday, June 25th 2011, 10:17pm [310]
neuigkeiten:
neuigkeiten:
Line 544: Line 505:
Set8Pixels() ist nicht laenger 'virtual', sondern ab jetzt eine in der basis-klasse definierte generische methode.
Set8Pixels() ist nicht laenger 'virtual', sondern ab jetzt eine in der basis-klasse definierte generische methode.


---
----

Tuesday, June 21st 2011, 11:54pm [308]
Tuesday, June 21st 2011, 11:54pm [308]
bug fix:
bug fix:
Line 551: Line 511:
bug(s) in WrapText() versucht zu beheben (-> mesg <langertext>)
bug(s) in WrapText() versucht zu beheben (-> mesg <langertext>)


---
----

Sunday, June 19th 2011, 1:24pm [307]
Sunday, June 19th 2011, 1:24pm [307]
neuigkeiten:
neuigkeiten:
Line 559: Line 518:
opacity support fuer images -> zusaetzlicher parameter fuer <image />: opacity="<value>", <value> = [0, 255], default 255
opacity support fuer images -> zusaetzlicher parameter fuer <image />: opacity="<value>", <value> = [0, 255], default 255


---
----

Friday, June 17th 2011, 11:20pm [303]
Friday, June 17th 2011, 11:20pm [303]
neuigkeiten:
neuigkeiten:
Line 568: Line 526:
einschraenkung: bei texten mit einem font-effect (outline, shadow) funktionierts leider nicht brauchbar (aufgrund der art und weise, wie die effekte derzeit erzeugt werden).
einschraenkung: bei texten mit einem font-effect (outline, shadow) funktionierts leider nicht brauchbar (aufgrund der art und weise, wie die effekte derzeit erzeugt werden).


---
----

Tuesday, June 14th 2011, 11:16pm [299]
Tuesday, June 14th 2011, 11:16pm [299]
neuigkeiten: grosses aufraeumen beim i18n-zeug
neuigkeiten: grosses aufraeumen beim i18n-zeug
Line 578: Line 535:
getestet auch mit vdr 1.4.7
getestet auch mit vdr 1.4.7


---
----

Friday, June 10th 2011, 8:22pm [291]
Friday, June 10th 2011, 8:22pm [291]
news
news
Line 585: Line 541:
bei den funktionen wurde eq() als alias fuer equal() hinzugefuegt
bei den funktionen wurde eq() als alias fuer equal() hinzugefuegt


---
----

Thursday, June 9th 2011, 11:28pm [287]
Thursday, June 9th 2011, 11:28pm [287]
neuigkeiten:
neuigkeiten:
Line 593: Line 548:
'font' ist ab jetzt fuer <text/> und <button/> verpflichtend (bis jetzt wurde einfach nichts angezeigt wenn keine font angegeben wurde - was etwas verwirrend war)
'font' ist ab jetzt fuer <text/> und <button/> verpflichtend (bis jetzt wurde einfach nichts angezeigt wenn keine font angegeben wurde - was etwas verwirrend war)


---
----

Sunday, June 5th 2011, 11:05am [258]
Sunday, June 5th 2011, 11:05am [258]
neu:
neu:
Line 609: Line 563:
scrolltext bricht nicht mehr vorzeitig ab (scrollt bei 'once' jetzt fertig durch und bei 'always' ohne versatz weiter)
scrolltext bricht nicht mehr vorzeitig ab (scrollt bei 'once' jetzt fertig durch und bei 'always' ohne versatz weiter)


---
----

Saturday, June 4th 2011, 6:12pm [252]
Saturday, June 4th 2011, 6:12pm [252]
neuigkeiten:
neuigkeiten:
Line 620: Line 573:
zusaetzliches boolsches token {IsUTF8}: liefert, ob das system UTF8 ist oder nicht (relevant, wenn zb. UTF-8 fonts mit eigenen zeichen verwendet werden wollen, zb VDRSymbols - diese sind auf !UTF-8-systemen natuerlich nutzlos)
zusaetzliches boolsches token {IsUTF8}: liefert, ob das system UTF8 ist oder nicht (relevant, wenn zb. UTF-8 fonts mit eigenen zeichen verwendet werden wollen, zb VDRSymbols - diese sind auf !UTF-8-systemen natuerlich nutzlos)


---
----

Tuesday, May 31st 2011, 1:05am [221]
Tuesday, May 31st 2011, 1:05am [221]
news:
news:
Line 635: Line 587:
-> weisser text mit schwarzem schatten
-> weisser text mit schwarzem schatten


---
----

Sunday, May 29th 2011, 6:05pm [211]
Sunday, May 29th 2011, 6:05pm [211]
die zwei angekuendigten tokens sind jetzt im vdr-plugin-graphlcd ->
die zwei angekuendigten tokens sind jetzt im vdr-plugin-graphlcd ->
Line 643: Line 594:
diese sollten (aus logischer sicht) ab jetzt statt {DefaultForegroundColor}/{DefaultBackgroundColor} in den skins verwendet werden
diese sollten (aus logischer sicht) ab jetzt statt {DefaultForegroundColor}/{DefaultBackgroundColor} in den skins verwendet werden


---
----

Saturday, May 28th 2011, 1:32pm [192]
Saturday, May 28th 2011, 1:32pm [192]
neue anpassungen:
neue anpassungen:
Line 651: Line 601:
serdisp-treiber: intern ueberarbeitung der class-members fg_colour und bg_colour: uint32_t statt long, verwenden der cColor-farben jetzt durchgehend. ausserdem wird jetzt die Set8Pixels()-methode der basisklasse verwendet (auch wenn dies zu einer merklichen verlangsamung fuehrt). aber diese methode sollte ohnehin obsolet sein (wird nur noch von 'lcdtestpattern' verwendet).
serdisp-treiber: intern ueberarbeitung der class-members fg_colour und bg_colour: uint32_t statt long, verwenden der cColor-farben jetzt durchgehend. ausserdem wird jetzt die Set8Pixels()-methode der basisklasse verwendet (auch wenn dies zu einer merklichen verlangsamung fuehrt). aber diese methode sollte ohnehin obsolet sein (wird nur noch von 'lcdtestpattern' verwendet).


---
----

Tuesday, May 24th 2011, 9:30pm [181]
Tuesday, May 24th 2011, 9:30pm [181]
finally: unterstuetzung fuer transparenz (aber nur alles oder nichts, keine alpha-channels).
finally: unterstuetzung fuer transparenz (aber nur alles oder nichts, keine alpha-channels).
Line 662: Line 611:
und ganz wichtig: ein bug fix, ohne dem das plugin crashen kann (wenn ein cBitmap objekt mit width=0 allokiert wird) ist auch dabei
und ganz wichtig: ein bug fix, ohne dem das plugin crashen kann (wenn ein cBitmap objekt mit width=0 allokiert wird) ist auch dabei


---
----

Thursday, May 19th 2011, 10:18am [164]
Thursday, May 19th 2011, 10:18am [164]
der vorschlag v. Keine_Ahnung hat mir keine ruhe gelassen.
der vorschlag v. Keine_Ahnung hat mir keine ruhe gelassen.
Line 689: Line 637:
GET <key>: <key> ueber SVDRP abfragen
GET <key>: <key> ueber SVDRP abfragen


---
----

Monday, May 16th 2011, 12:37am [145]
Monday, May 16th 2011, 12:37am [145]
object - farben (hinter/vordrgrund) werden jetzt zur laufzeit ausgewertet (hat mich einiges an herumhackerei inkl. einmal alles komplett verwerfen und neu starten gekostet. ist auch jetzt schoener (codetechnisch) als mein vorheriger versuch).
object - farben (hinter/vordrgrund) werden jetzt zur laufzeit ausgewertet (hat mich einiges an herumhackerei inkl. einmal alles komplett verwerfen und neu starten gekostet. ist auch jetzt schoener (codetechnisch) als mein vorheriger versuch).
Line 711: Line 658:
gelb: alles dazwischen
gelb: alles dazwischen


---
----

Thursday, May 12th 2011, 11:19pm [118]
Thursday, May 12th 2011, 11:19pm [118]


Line 719: Line 665:
* das display wird beim niederfahren des plugin (wenn der VDR beendet wird) jetzt geloscht
* das display wird beim niederfahren des plugin (wenn der VDR beendet wird) jetzt geloscht


---
----

Thursday, May 12th 2011, 1:04am [107]
Thursday, May 12th 2011, 1:04am [107]
news:
news:
Line 726: Line 671:
showpic kann jetzt auch (experimentell!) das imagemagick-zeug anzeigen (falls aktiviert).
showpic kann jetzt auch (experimentell!) das imagemagick-zeug anzeigen (falls aktiviert).


---
----

Saturday, May 7th 2011, 11:06pm [48]
Saturday, May 7th 2011, 11:06pm [48]
der erste schnellpfusch in sachen imagemagick funktioniert bereits (noch nicht ganz brauchbar (orf-logo ist zb. gedithered obwohl es das nicht soll)), aber das logo ist zumindest schon in farbe zu sehen. gibts irgendwo animierte senderlogos fuer text2skin? die sollten eigentlich auch aus dem stand funktionieren jetzt ...
der erste schnellpfusch in sachen imagemagick funktioniert bereits (noch nicht ganz brauchbar (orf-logo ist zb. gedithered obwohl es das nicht soll)), aber das logo ist zumindest schon in farbe zu sehen. gibts irgendwo animierte senderlogos fuer text2skin? die sollten eigentlich auch aus dem stand funktionieren jetzt ...
Line 743: Line 687:
oder statt imagemagick sollte auch graphicsmagick funktionieren.
oder statt imagemagick sollte auch graphicsmagick funktionieren.


---
----

Monday, May 2nd 2011, 12:15am [1]
Monday, May 2nd 2011, 12:15am [1]
graphlcd (base, vdr-plugin) touchcol branch
graphlcd (base, vdr-plugin) touchcol branch

Latest revision as of 22:18, 25 May 2013

Changelog

this changelog is taken from a thread from vdr-portal.de and has been started in german. only the newer entries have been made in english.

Changes (most recent first)

Sunday, March 17th 2013, 10:33am [941]

  • news (graphlcd-base):
    • showpic: fix rendering bug
    • Makefiles: rename PRESTRIP to HAVE_STRIP and unset it by default

Friday, January 25th 2013, 9:24pm

  • news (vdr-plugin-graphlcd):
    • Makefile: should now be compliant with 'new style make' and old vdr versions (incl. 1.4.x)
so. habe das Makefile ausgehend von einem via newplugin generiertem makefile neu erzeugt und angereichert, sodass es jetzt fuer div. vdr-versionen (neu, alt, sogar 1.4.x) brauchbar sein sollte, egal ob pkg-config das vdr.pc vom tree holt oder vom system, es werden auch auf keine dateien v. vdr mehr direkt zugegriffen und ich habe es in allen moeglichen und unmoeglichen anwendungsfaellen ausprobiert (ausg. jene, die ich uebersehen habe) ...

achtung luxusedition: ich habe sogar ein paar kommentare hineingeschrieben ...


Monday, January 21st 2013, 12:57am

  • news (vdr-plugin-graphlcd):
    • consider that both VDRDIR and PLGCFG can be empty
wie bereits zuvor vorgeschlagen, werden VDRDIR und PLGCFG jetzt separat behandelt.

eine extra behandlung, dass Make.config in neueren versionen ueberhaupt nicht mehr inkludiert werden kann, wird noch folgen. getestet innerhalb v. vdr sowohl v. vdr-root aus als auch v. plugin-verzeichnis aus und von plugin-verzeichnis ausserhalb v. vdr-tree (mittels VDRDIR=<path to vdr-tree> make)

  • news (vdr-plugin-graphlcd):
    • disallow inclusion of Make.config when VDR >= 1.7.33

Monday, January 7th 2013, 12:47am

  • news (graphlcd-base):
    • experimental support added for picoLCD 256x64 (contributed by Jochen Koch)
      nota bene: needs to be activated in Make.config first because it is experimental for now

Saturday, October 27th 2012, 7:41pm

  • bugfix (Dimmen bei Wiedergabe?):
    • fehler ist gefixt, display dimmt jetzt auch bei der wiedergabe.

Sunday, September 23rd 2012, 10:42pm

  • bugfix:
    • hab die auf scaleQuantumToDouble() basierende aenderung mal gepusht ...

Thursday, September 13th 2012, 11:33pm

  • news (vdr-plugin-graphlcd):
    • plugin.c: vdr >= 1.7.30 API-change: ConfigDirectory() -> ResourceDirectory()

Saturday, June 16th 2012, 4:54pm

  • news (graphlcd-base):
    • Image/GraphicsMagick: use much more relieable sample() instead of scale() for scaling images:
    • problems with distorted scaled icons/images or other display errors should now be history.
    • monochrome images: fix monochrome bug in imagefile.c:
      bgcolor and color should be working again for monochrome icons/symbols
    • improved relieability of eq()/ne()/gt()/lt()/ge()/le() if comparing 'mixture' of string / bool / value
    • fixed a bug which could lead to an infinite loop under rare circumstances (if a content part contains a spare # without a variable name)
    • permit and evaluate $( )$ expressions to enable direct embedding of functions in the content part of elements such as <text/>:
      eg: <text>$(add(#SomeVar,#SomeOtherVar))$</text>
      attention: $()$ is not verified (yet) when parsing the skin. if it contains syntactical errors, the unprocessed term will be displayed at runtime.
    • clang can now be used instead of g++.
      'CXX=clang make' now compiles the whole graphlcd-base using clang.
    • added support for fontconfig font name representations:
      eg.:
      attention: specifying a size term (eg. 'size=12') is mandatory!


  • news (vdr-plugin-graphlcd):
    • fixed a bug that has been introduced in a former update and rendered some services unusable

Sunday, March 25th 2012, 6:35pm [738]

  • news (vdr-plugin-graphlcd):
    • plugin kompiliert jetzt auch unter vdr 1.7.27 (das eine include war in display.c ohnedies ueberfluessig)

Sunday, March 11th 2012, 7:20pm [725]

  • news (vdr-plugin-graphlcd):
    • unterstuetzung fuer VDR >= 1.7.26 hinzugefuegt

Sunday, March 11th 2012, 2:26pm [722]

  • news (vdr-plugin-graphlcd):
    • {MenuTextScroll} sollte jetzt etwas zuverlaessiger funktionieren (noch nicht perfekt, aber zumindest brauchbar(er))

Tuesday, March 6th 2012, 9:25pm [704]

  • news (graphlcd-base):
    • serdisplib-treiber versucht jetzt flexibler, die serdisplib zu laden.

      angefangen wird bei libserdisp.so.3 (jew. ohne und mit "/usr/local/lib/") bis hinunter zu libserdisp.so.1.
      wenn dann noch nix dann ist, dasselbe spiel mit libserdisp.so (ohne major version).

Tuesday, March 6th 2012, 1:11am [695]

  • news (graphlcd-base):
    • verbessertes logging (wo wird syslog-ausgabe generiert, syslog-flooding sollte jetzt behoben sein)
    • zusaetzliches feature fuer progress bar: gradient


das gradient-feature kennt zwei optionen: gradient="total|current|vertical" und gradientcolor="<farbe>"

  • gradientcolor: die farbabstufungen werden zwischen color und gradientcolor berechnet
  • total: die farbabstufungen werden ueber die maximale groesse des progress bars berechnet
  • current: die farbabstufungen werden nur ueber den tatsaechlich angezeigten progress bar berechnet
  • vertical: die farbabstufungen werden ueber die dicke des progress bars berechnet


beispiele (geordnet nach screenshots):

 <progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
               gradient="total"    direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
 <progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
               gradient="current"  direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
 <progress ... color="0xDDC0FFC0" gradientcolor="0xFF2222FF"
               gradient="vertical" direction="0" current="{PresentProgress}" total="{PresentDuration}"/>
gradient=total
gradient=current
gradient=vertical

zu beachten:

  • gradient 'overruled' peak (dh. sobald gradient verwendet wird, ist keine peak-anzeige mehr moeglich).
  • es muss sowohl die option gradient als auch gradientcolor definiert sein damit die gradient-funktion aktiviert wird.

Tuesday, November 8th 2011, 11:57pm [679]

channellogos sind jetzt 1:1 jene vom graphlcd master branch (inkl. dateinamen und alles. auch die channels.alias ist vom master branch. sollten channel logos im touchcol branch neuer / mehr / ... gewesen sein (was ich kaum glaube), sind diese jetzt weg)


Saturday, October 29th 2011, 11:22pm [669]

  • news:
    • neue Tokens
    • neuer parameter 'evaluate' fuer <variable/>
    • verbesserte (konsistentere) logausgaben


tokens:

  • {ActualDevice}: liefert die ID des aktuell aktiven empfangsgeraetes (startend mit 1)
  • {SignalStrength}: ab VDR 1.7.19: signalstaerke, von 0 - 100
  • {SignalQuality}: ab VDR 1.7.19: signalqualitaet, von 0 - 100
  • {SupportsSignalInfo}: abfrage, ob {SignalStrength} und {SignalQuality} unterstuetzt werden

evaluate:

  • mit diesem parameter kann nun festgelegt werden, wann eine variable neu evaluiert wird (relevant fuer variable, die berechnet werden und/oder den wert von tokens bekommen.


werte fuer evaluate:

  • always: variable wird bei jedem auslesen neu berechnet. wenn diese 10x im skin verwendet wird, wird 10x neu berechnet.
  • tick: die variable wird nur einmal pro displayupdate neu berechnet, ansonsten wird der zuvor berechnete wert zurueckgeben
  • switch: die variable wird nach einem channel- oder menueupdate neu berechnet
  • once: die variable wird nur ein einziges mal berechnet (bei der ersten verwendung, ab dann wird der berechnete wert zurueckgegeben)
  • interval: ein intervall (format: interval:<interval>) kann eingestellt werden (in ms), zb: evaluate="interval:1000" -> variable wird max. 1x / sekunde neu berechnet.
  • tick ist ab jetzt die standardeinstellung (wenn nichts angegeben wird).
mit dieser massnahme kann eine ungewuenschte exzessive neuberechnung (zb. innerhalb eines updatezyklus) vermieden werden, oder, wenn wie im falle von {SignalStrength} / {SignalQuality} das auslesen dieser tokens sehr lange dauert, abfangen von performanceproblemen.

bei mir dauert das lesen von {SignalStrength} zw. 300 und 600 ms. wenn dieses token dann 3x neu gelesen wird, kommt es zu zieml. performanceproblemen (scrolling, ...) und ausserdem laufen die werte auseinander (zb. progressbar vs. label). tick alleine faengt bereits das auseinanderlaufen ab, ein interval kann darueber hinaus eine sinnvolle update-frequenz garantieren (Es ist nicht notwendig, Signalinfo alle 100ms neu auswertet zu lassen ...)


Monday, October 24th 2011, 8:13pm [658] news:

   unterstuetzung v. scaling von nicht-ImageMagick bildformaten (PBM, GLCD).
   serdisp-treibr: paranoia-checks (SetBrightness() sollte nicht mehr crashen); kapselung der touchevents (touchevents sind nicht mehr statisch in der klasse definiert, sondern nun an die jew. instanz gebunden)
   image cache: beim erfolgreichen laden eines bildes wird ins syslog eine meldung geschrieben (fuer debuggingzwecke, ...)

Friday, October 21st 2011, 1:08am [653] news:

   der graphlcd-eigene framebuffer-support ist jetzt in farbe und bunt! unterstuetzt werden die farbtiefen 8, 16, 24, 32.
   bei farbtiefe 8 wird automatisch eine RGB332-colourmap aktiviert und die farbwerte auf diese umgerechnet
   das framebuffer-device kann jetzt konfiguriert werden (zb: Device=/dev/fb1)
   damage-reporting (fuer das udlfb, aber auch ugly-damagereporting (@C-3P0: damit sollte auch das displaylink-modul jetzt funktionieren. konnte es nur mit dem udlfb testen, da ist ugly-damagereporting wirklich ugly: kleinere darstellungsfehler beim zeichnen)
   width / height kann nicht mehr angegeben werden. die nutzbare aufloesung wird, wenn zoom=1 angegeben ist, direkt aus der zur verfuegung stehenden framebuffer-aufloesung errechnet. (zb.: framebuffer: 800x600 -> zoom=1 -> nutzbare flaeche = 400x300)
   graphlcd.conf wurde entsprechend angepasst
   der graphlcd-framebuffer-support kann jetzt mehr und ist flexibler als der der serdisplib :)

Sunday, October 16th 2011, 12:38am [626] news:

   scale erlaubt jetzt auch 'auto' (die beste passende skalierung wird gewaehlt)
   images werden bei skalierungen auto/autox/autoy jetzt zentriert

Saturday, October 15th 2011, 6:53pm [622] news:

   skalieren von images ist jetzt moeglich (aber nur fuer formate, die v. image/graphicsmagick kommen (kein glcd, pbm):
   <image scale="<scale>" .../> scale=['none', 'auto', 'autox', 'autoy', 'fill'], default: 'none'. zb: <image scale="fill" .... />
   none: keine skalierung
   auto: beruecksichtigt aspect ratio, automatisch beste ausbreitung auf die nutzflaeche
   autox, autoy: beruecksichtigt aspect ratio, orientiert sich an der breite bzw. hoehe v. <image />
   fill: fuellt das ganze <image/>, aspect ratio wird nicht beruecksichtigt
   zentrierung erfolgt automatisch bei auto/autox/autoy

Thursday, October 13th 2011, 1:08pm [605] es scheint sich ein fehler in der bitorder in SetPixel() eingeschlichen zu haben. habe das jetzt bei den displays, die nicht mit pages (8 bit = 8 vertikale pixel) arbeiten behoben. davon ist nur 'image' verifiziert.

news:

   bit order fehler behoben: verifiziert: image, sed1330, ks0108

nicht verifiziert: hd61830, network, sed1520 EDIT: sed1330 und ks0108 sind jetzt auch verifiziert (ks0108 ist allerdings sehr langsam. da wuerde ich den ks0108-support v. serdisplib emfehlen)


Thursday, October 13th 2011, 10:22am [601]

-> news:

   graphlcd-eigener t6963c-treiber ist jetzt gefixt (getestet mit allen FS8/FS6 / UpsideDown=yes/no kombinationen)
   graphlcd-zeug laeuft immer noch korrekt auf einer alten FedoraCore5-schuessel mit vdr 1.4.7.

Saturday, October 8th 2011, 12:53am [591] news:

   musste die SVDRP-kommandos 'SET', 'SETEXP, 'UNSET', 'GET' aendern (logischer, ausserdem ist jetzt wieder <value> mit spaces moeglich:
   <key> kann jetzt um 'unteroptionen' erweitert werden: <key>[,display=<display>][,expire=<expire>]
   dadurch wird 'SETEXP' nicht mehr benoetigt und wurde entfernt.

die definitionen fuer 'SET', 'UNSET', 'GET' sind:

SET <key>[,display=<display>][,expire=<expire>] <value> GET <key>[,display=<display>] UNSET <key>[,display=<display>]


zb:

SET somekey,display=somedisplay,expire=30 das reh huepft hoch das reh huepft weit warum auch nicht es hat ja zeit GET somekey,display=somedisplay UNSET somekey,display=somedisplay

SET someotherkey,expire=60 in 60 sekunden ist alles aus GET someotherkey UNSET someotherkey


Saturday, October 1st 2011, 1:28pm [561] news:

   support fuer audiotrack-auswahl (+ audio channel anzeige bei der auswahl), neue tokens: 'AudioTrackItem', 'AudioTrackCurrent', 'IsAudioTrackCurrent', 'AudioChannel'.
   skins: unterstuetzung eines zusaetzlichen display-bereiches 'audio' (<display id="audio"> ... </display>)
   default.skin: unterstuetzung fuer audiotrack-auswahl + audiochannel-auswahl hinzugefuegt, bug fixes, verbesserungen

Thursday, September 29th 2011, 12:56am [560] news:

   aufwaendige ueberarbeitung des default-skins (das war vielleicht eine arbeit ...). sollte jetzt auf so ziemlich jedem (unter graphlcd sinnvoll verwendbaren) display zumindest brauchbare ergebnisse liefern und auch relativ flexibel skalieren. und auch auf nicht latin1-basierenden systemen (utf8 andere als latin1 codepages, iso-8859-1/15) sollten die fonts korrekt angezeigt werden.

anmerkungen:

   es ist ein one-for-all skin. daher wird es nicht ueberall perfekt aussehen. aber es stellt abhaengig v. aufloesung mehr oder weniger informationen dar.
   graustufen-displays sind noch nicht extra behandelt. einstweilen nur monochrom und farbdisplays (graustufen = TODO)
   auch TODO: verteilung der zwischenraeumen bei grossen displays damit die information besser auf dem display verteilt ist.
   das ganze skin ist ziemlich komplex: fehler werden hoechstwahrscheinlich nicht gerade wenige enthalten sein ... (obwohl: bei meinen tests funktioniert es ganz gut)

Thursday, September 22nd 2011, 1:14am [524]

neuigkeiten:

   das plugin unterstuetzt jetzt bis zu 4 displays gleichzeitig (contrib v. superelchi)
   cExtData kann jetzt die gespeicherten daten zu einem display ketten (wenn nicht: globaler fokus (dh. fuer alle displays gueltig)
   ein display-spezifischer eintrag hat vorrang vor einem gleichnamigen globalen
   im Makefile kann ueber PLUGIN_GRAPHLCDCONF der pfad zur graphlcd.conf festgelegt werden (wenn nicht definiert: /etc/graphlcd.conf). war, wenn ich mich richtig erinnere, ein wunsch von Keine_Ahnung
   das SVDRP-zeug ist entsprechend aufgebohrt worden.

SVDR:

   CONNECT: ohne parameter: alle zuvor angegebenen displays werden (re)connected, CONNECT displayname: das display <displayname> wird, wenn noch nicht vorhanden, zusaetzlich angehaengt, wenn bereits vorhanden: reconnect
   DISCONN: ohne parameter: alle displays werden deaktiviert
   SET, SETEXP, UNSET, GET: zusaetzlicher optionaler parameter fuer den scope (= display name). wenn nicht angegeben: globaler scope.
   die tokens {ExtDataIsAvailable:itemname} und {ExtDataItem:itemname} beziehen automatisch diesen scope mit ein

beispiel: 2 displays 'disp1', 'disp2', beide zeigen das token {ExtDataItem:test} an:

plug graphlcd set test hurra -> beide zeigen 'hurra' an

plug graphlcd set test hallo disp2 -> disp1 zeigt weiterhin 'hurra' an, disp2 zeigt 'hallo' an

plug graphlcd set test ahoi disp1 -> disp1 zeigt 'ahoi' an, disp2 immer noch 'hallo' an

plug graphlcd unset test disp2 -> disp1 zeigt 'ahoi' an, disp2 wieder 'hurra' (da nur der display-spez. eintrag geloescht worden ist)


Saturday, September 17th 2011, 10:45pm [514] hab wieder ein wenig im code herumgespielt, darum folgende neuigkeiten:

anderungen eher unter der oberflaeche:

   klassenattribute 'config', 'oldConfig' weg von den div. displayklassen in die basisklasse 'cDriver' verschoben, auch die initialisierung jetzt dort.
   dadurch kann der sowohl der name ('driver') als auch der zugehoerige config-name (= 'section name') direkt ueber die basisklasse abgefragt werden (vorbereitung fuer spaeter, stichwort multi-display)
   libglcddrivers.so benoetigt keine verlinkung mehr zu libglcdgraphics.so (die abhaengigkeit zur klasse cColor wurde aufgehoben)
   in section names duerfen keine ':' verwendet werden (nur falls jemand mal auf die idee gekommen waere: wird jetzt mit fehler abgefangen ...)

aenderungen an der oberflaeche:

   unterstuetzung fuer scrolling (bzw. blaettern) v. multitext text-objekten, neues attribute 'mlrelscroll' fuer text-objekte mit multiline (gibt eine relative aenderung der startposition innerhalb der anzuzeigenden textzeilen an und sollte nur waehrend eines Tick()'s kleiner/grosser 0 sein)
   drei neue tokens: 'IsMenuList', 'MenuText', 'MenuTextScroll'. 'IsMenuList': ist das aktuelle osd-menu eine liste?, 'MenuText': text in einem detail-menue (zb. detailansicht in einem schedule), 'MenuTextScroll': passendes token fuer das neue attribut 'mlrelscroll' (siehe oben).
   ':clean', ':rest' wird (analog wie bei text2skin) jetzt unterstuetzt fuer die tokens: 'MenuTitle', 'MenuCurrent', 'MenuText'. zb: {MenuTitle} = "bla fasel - laber bla", {MenuTitle:clean} = "bla fasel", {MenuTitle:rest} = "laber bla".
   {MenuCurrent} kann jetzt auch ausserhalb von <list/> verwendet werden. ausserhalb von </list> werden bei {MenuCurrent:clean} zusaetzlich etwaige leerzeichen + eine eventuell vorhandene nummerierung entfernt. zb: {MenuCurrent} = " 1 Bla", {MenuCurrent:clean} = "Bla"
   trans() funktioniert jetzt wie erwartet: wenn zb. eine so komische sprache wie 'Deutsch' eingestellt ist: trans('Schedule') => 'Programm'.
   cExtData ist nun eine singelton-klasse und daher nicht mehr von einem display-objekt abhaengig -> die gespeicherten daten ueberleben ein DISCONN/CONNECT:
   plug graphlcd help
   214-Plugin graphlcd v0.3.0 - Output to graphic LCD
   214-SVDRP commands:
   214-  CLS     UPD     OFF     ON      SET
   214-  SETEXP  UNSET   GET     CONNECT   DISCONN
   214 End of HELP info
   plug graphlcd get test
   900 GET test: (null)
   plug graphlcd set test bla
   900 SET ok
   plug graphlcd get test
   900 GET test: bla
   plug graphlcd connect serdisp_sdl1
   900 Display serdisp_sdl1: CONNECT ok.
   plug graphlcd get test
   900 GET test: bla


dies alles ermoeglicht jetzt ein paar nette spielereien:

   in multiline-texte kann jetzt nach oben/unten gescrollt werden. und zwar unabhaengig davon, wieviele und welche displays angehaengt sind.
   mit trans() und :clean koennen nette spielereien wie icons im hauptmenue erstellt werden (siehe bild 1 (englisch) und bild 2 (deutsch), die icons habe ich zum testen vom anthra-skin v. text2skin ausgeborgt):
    <variable id="MenuLogoPath"  value="'{ConfigPath}/logos/still/08bpp/100x119/menu'" />
    <variable id="MenuLogoW"   value="100" />
    <variable id="MenuLogoH"   value="119" />
    <variable id="ShowMenuLogo"  value="1"   condition="eq({MenuTitle:clean},'VDR')" default="0" />
    <variable id="MenuWidth"   value="sub({ScreenWidth},#MenuLogoW,4)" condition="#ShowMenuLogo"  default="{ScreenWidth}" />
    <variable id="MainMenuIcon"  value="'schedule.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Schedule')))" />
    <variable id="MainMenuIcon"  value="'channels.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Channels')))" />
    <variable id="MainMenuIcon"  value="'timers.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Timers')))" />
    <variable id="MainMenuIcon"  value="'recordings.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Recordings')))" />
    <variable id="MainMenuIcon"  value="'femon.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Signal Information')))" />
    <variable id="MainMenuIcon"  value="'setup.png'"  condition="and(#ShowMenuLogo,eq({MenuCurrent:clean},trans('Setup')))" />
    <variable id="MainMenuIcon"  value="'empty.png'" />


   <block condition="#ShowMenuLogo">
       <image x="add(#MenuWidth,2)" width="#MenuLogoW" y="add(#MenuHeaderH,3)" height="#MenuLogoH" path="#MenuLogoPath/#MainMenuIcon" />
   </block>
   mit der aufnahme von {MenuText} sollte jetzt alles angezeigt werden koennen, was auch graphlcd-0.1.x anzeigen konnte (wenn doch noch etwas fehlen sollte: mir bitte hier posten). siehe bild 3

Friday, September 9th 2011, 8:31am [494] news:

   CONNECT / DISCONN eingebaut, contrib v. superelchi (DISCONN, da DISCONNECT anscheinend zu lang ist. jdnfalls wurde es in der hilfe nicht vollstaendig angezeigt. es wird dennoch aber auch zusaetzlich 'DISCONNECT' vom plugin verstanden (nicht dokumentiert))
   zusaetzlich bei CONNECT: es kann optional auch ein anderer skin angegeben werden
   stabilitaet: beim verbinden an ein nicht angeschlossenes display sollte es jetzt keine crashes mehr geben (gemeldet v. Keine_Ahnung, von mir bei CONNECT/DISCONN-spielereien nachvollzogen. @Keine_Ahnung: das graphlcd-base ebenfalls auf den neuesten stand bringen (ansonsten bei DISCONN crash mit serdisp-treiber. bitte testen)).

Saturday, August 27th 2011, 5:52pm [453] news:

  • installation v. udev-rulesfile hinzugefuegt.

Saturday, July 30th 2011, 4:43pm [322] neu:

   unterstuetzung eines simplen includes v. (xml-)dateien. genauso als ob der enthaltene textstream direkt in der skin-definition waere. (es wird 1:1 inkludiert ohne pre-processing oder steuerung ueber ev. conditions. dh: bei einem <block condition="<cond>"><include path="<path>"/></block> wird das include-file IMMER inkludiert, egal ob die condition zieht oder nicht.
   hoch- und gleichziehen der versionstrings der 3 teilbibliotheken auf 2.1.0.
   versionsnummer des graphlcd-base paketes ist jetzt 0.3.0.
   bug fix: syslog wird nicht mehr mit 'Invalid numeric value'-meldungen zugemuellt.

beispiele zum <include/>:

<include path="somefile.inc"/> <include path="{SkinPath}/somefile.inc"/>

diese zwei angaben bewirken dasselbe (ein relativer pfad ist automatisch relativ zum skin-pfad.


Saturday, July 9th 2011, 2:02pm [321] neu:

   positions- und dimensionsparameter (x/y/x1/y1/x2/y2; width/height) werden nun zur laufzeit ausgewertet und nicht mehr wie bisher nur beim parsen
   unterstuetzung fuer plugin 'span' (siehe screenshot und beispiel-xml-fetzen dazu)

achtung: die verwendung der kombination span/music-plugins ist (zumindest bei mir) sehr instabil (bei vdr-restart oder beim wechsel von einem anderen mediaplayer (zb. xinelibout) zum music-plugin kann ein segfault auftreten. problem: ein thread, der (annahme von mir) im music-plugin gestartet wird nach beendigung eines anderen threads verwendet noch einen bereits invalidierten zeiger auf ein VDR player-object weiter. wenn dem so ist und das span-plugin dann noch daten abfraegt: BUMM. habe mit einem untergriff (abfrage, ob cControl-object gueltig ist) zumindest verhindern koennen, dass das music-plugin bei hin-und-herspringen v. musikauswahl und abspielmodus das span-plugin zum crashen bringt, aber weiter kann ich nicht eingreifen (zumindest habe ich nix weiter gefunden).

anmerkung: initialisert wird das span-plugin mit der allerersten ServiceIsAvailable-abfrage! -> zb: {ServiceIsAvailable:span,bands=20,delay=250,falloff=4} legt fest, dass 20 baender angelegt werden sollen, der delay zwischen 2 abfragen auf 250 ms und der falloff auf 4 eingestellt werden. diese auswertung der parameter erfolgt nur ein einziges mal! (performance)

beispiel:

<variable id="SpanX" value="10"/> <variable id="SpanY" value="100"/> <variable id="SpanVolY" value="sub(#SpanY,18)"/> <variable id="SpanH" value="64"/> <variable id="SpanBarGap" value="2"/> <variable id="SpanBarW" value="5"/> <variable id="SpanPadding" value="2"/> <variable id="SpanBarX" value="add(#SpanX,#SpanPadding)"/> <variable id="SpanBarY" value="add(#SpanY,#SpanPadding)"/> <variable id="SpanBarH" value="sub(#SpanH,#SpanPadding,#SpanPadding)"/> <variable id="SpanBarTotW" value="add(#SpanBarW,#SpanBarGap)"/> <variable id="SpanBarCol" value="'white'"/> <variable id="SpanPeakCol" value="'0xFF777777'"/> <variable id="SpanW" value="add(mul(#SpanBarW,{ServiceItem:span,bands}),mul(#SpanBarGap,sub({ServiceItem:span,bands},1)),#SpanPadding,#SpanPadding)"/>

<block condition="{ServiceIsAvailable:span,bands=20,delay=250,falloff=4}">

 <rectangle x="#SpanX" y="#SpanVolY" width="#SpanW" height="15" color="0x773333FF" filled="yes"/>
 <rectangle x="#SpanX" y="#SpanVolY" width="#SpanW" height="15" color="blue"/>
 <text x="add(#SpanX,3)" y="add(#SpanVolY,2)" color="white" align="left" font="FontSpanLabel">L</text>
 <text x="add(#SpanX,3)" y="add(#SpanVolY,8)" color="white" align="left" font="FontSpanLabel">R</text>
 <progress x="add(#SpanX,18)" y="add(#SpanVolY,2)" width="sub(#SpanW,14)" height="11" color="0x77777733" direction="0" current="{ServiceItem:span,volume}"  total="100"/>
 <progress x="add(#SpanX,18)" y="add(#SpanVolY,2)" width="sub(#SpanW,14)" height="5"  color="0xAA55FF55" direction="0" current="{ServiceItem:span,volumel}" total="100"/>
 <progress x="add(#SpanX,18)" y="add(#SpanVolY,8)" width="sub(#SpanW,14)" height="5"  color="0xAA55FF55" direction="0" current="{ServiceItem:span,volumer}" total="100"/>
 <rectangle x="#SpanX" y="#SpanY" width="#SpanW" height="#SpanH" color="0x773333FF" filled="yes"/>
 <rectangle x="#SpanX" y="#SpanY" width="#SpanW" height="#SpanH" color="blue" />
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,0))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,0}"  peak="{ServiceItem:span,peak,0}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,1))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,1}"  peak="{ServiceItem:span,peak,1}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,2))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,2}"  peak="{ServiceItem:span,peak,2}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,3))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,3}"  peak="{ServiceItem:span,peak,3}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,4))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,4}"  peak="{ServiceItem:span,peak,4}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,5))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,5}"  peak="{ServiceItem:span,peak,5}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,6))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,6}"  peak="{ServiceItem:span,peak,6}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,7))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,7}"  peak="{ServiceItem:span,peak,7}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,8))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,8}"  peak="{ServiceItem:span,peak,8}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,9))"  y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,9}"  peak="{ServiceItem:span,peak,9}"  peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,10))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,10}" peak="{ServiceItem:span,peak,10}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,11))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,11}" peak="{ServiceItem:span,peak,11}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,12))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,12}" peak="{ServiceItem:span,peak,12}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,13))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,13}" peak="{ServiceItem:span,peak,13}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,14))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,14}" peak="{ServiceItem:span,peak,14}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,15))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,15}" peak="{ServiceItem:span,peak,15}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,16))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,16}" peak="{ServiceItem:span,peak,16}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,17))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,17}" peak="{ServiceItem:span,peak,17}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,18))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,18}" peak="{ServiceItem:span,peak,18}" peakcolor="#SpanPeakCol" total="100"/>
 <progress x="add(#SpanBarX,mul(#SpanBarTotW,19))" y="#SpanBarY" height="#SpanBarH" width="#SpanBarW" color="#SpanBarCol" direction="3" current="{ServiceItem:span,height,19}" peak="{ServiceItem:span,peak,19}" peakcolor="#SpanPeakCol" total="100"/>

</block>


Wednesday, June 29th 2011, 10:25pm [316] neu

   treiber fuer futabaMDM166A hinzugefuegt (aus 0.1.x) und angepasst
   mem leak fix fuer image.c (aus 0.1.x) portiert
   aktuellen noritake800 aus 0.1.x genommen und angepasst

Wednesday, June 29th 2011, 1:25am [315] neu:

   crtfont und genfont sollten jetzt wieder funktionieren (div. tests waren erfolgreich, die generierten fonts (.fnt) haben funktioniert)
   cPBMFile kann jetzt korrekt speichern (Save())
   aus cBitmap wurden LoadPBM()/SavePBM() entfernt (die wurden ohnedies nur von crtfont und genfont verwendet). fuer das laden und speichern von PBMs ist jetzt ausschliesslich die klasse cPBMFile verantwortlich (auch crtfont und genfont verwenden jetzt diese klasse).

hoffe, dass ich keine nebeneffekte hineingebracht habe, waren doch einige grundlegende aenderungen. meine tests brachten aber keine auffaelligkeiten zu tage ...


Monday, June 27th 2011, 10:29pm [314] neuigkeiten:

   graphlcd-base: habe das setzen v. monochrome-flag fuer imagemagick bilder einstweilen wieder deaktiviert (das ist dann doch aufwaendiger als gedacht)
   vdr-plugin-graphlcd: paranoia mode fuer strcmp. wenn das auch nicht hilft dann muss das wohl jmd. mit rds-faehigen radiosendern debuggen (gdb, mit dem man dann auch die konkreten inhalte der structs sehen kann).

Sunday, June 26th 2011, 9:15pm [312] neu:

   bei 1bpp imagemagick bildern wird jetzt das monochrome flag gesetzt (und schwarz und weiss entsprechend aufbereitet) => 'color' und 'bgcolor' werden jetzt beruecksichtigt.

der bugfix fuer cBitmap constructor wird spaeter committed (ist gerade groessere baustelle (anpassen der div. Save*-methods() an die 32bpp internas)


Saturday, June 25th 2011, 10:17pm [310] neuigkeiten:

   alle treiber sollten jetzt mit der 32bit colour internen darstellung zusammenarbeiten (jeder treiber hat jetzt eine gueltigte SetPixel()-Methode). ABER: alle bis auf simlcd und serdisp sind ungeprueft!!
   Set8Pixels() ist nicht laenger 'virtual', sondern ab jetzt eine in der basis-klasse definierte generische methode.

Tuesday, June 21st 2011, 11:54pm [308] bug fix:

   bug(s) in WrapText() versucht zu beheben (-> mesg <langertext>)

Sunday, June 19th 2011, 1:24pm [307] neuigkeiten:

   alpha channel: texte mit font-effekten werden jetzt auch brauchbar unterstuetzt
   opacity support fuer images -> zusaetzlicher parameter fuer <image />: opacity="<value>", <value> = [0, 255], default 255

Friday, June 17th 2011, 11:20pm [303] neuigkeiten:

   support fuer alpha channel

einschraenkung: bei texten mit einem font-effect (outline, shadow) funktionierts leider nicht brauchbar (aufgrund der art und weise, wie die effekte derzeit erzeugt werden).


Tuesday, June 14th 2011, 11:16pm [299] neuigkeiten: grosses aufraeumen beim i18n-zeug

   strings, die im code verwendet werden, kontrolliert in 18n.c (vdr 1.4.x) und po/*.po auf uebereinstimmung
   zeug, das nicht verwendet wird, deaktiviert oder geloescht
   italienisch hinzugefuegt (aus HEAD) -> po/it_IT.po und auch angepasst/eingewebt in i18n.c (=vdr 1.4.x)
   getestet auch mit vdr 1.4.7

Friday, June 10th 2011, 8:22pm [291] news

   fuer die text-effekte kann jetzt der parameter radius verwendet werden ...: radius in {1,2} (default: 1), hebt bei groesseren fonts den effekt besser hervor
   bei den funktionen wurde eq() als alias fuer equal() hinzugefuegt

Thursday, June 9th 2011, 11:28pm [287] neuigkeiten:

   fuer alle objekte (die positioniert werden), koennen jetzt auch die attribute 'x' und 'y' verwendet werden ('x' und 'y' war vorher nur fuer <image/> moeglich)
   'font' ist ab jetzt fuer <text/> und <button/> verpflichtend (bis jetzt wurde einfach nichts angezeigt wenn keine font angegeben wurde - was etwas verwirrend war)

Sunday, June 5th 2011, 11:05am [258] neu:

   html-entities &#x<hexID>; und &#<decID>; werden jetzt unterstuetzt

neu2 (bug fixes):

   scrolltext laeuft nicht mehr ueber den rechten object-rand hinaus
   offset-fix wenn variablen in <text/> verwendet werden (da kam es bis jetzt zu verschiebungen, wenn nach so einer variable ein token folgte)

neu3 (bug fix):

   scrolltext bricht nicht mehr vorzeitig ab (scrollt bei 'once' jetzt fertig durch und bei 'always' ohne versatz weiter)

Saturday, June 4th 2011, 6:12pm [252] neuigkeiten:

   skins sind jetzt per definition immer UTF-8 (auch fuer !UTF-8 systeme)
   freier UTF8 text (zb. <text>das reh hüpft über...</text> wird auf !UTF-8 systemen automatisch konvertiert - der text selber muss aber UTF8 sein!
   token-inhalte beduerfen keiner konvertierung, da diese ohnehin bereits vom system in der richtigen kodierung geliefert werden
   token-, font- und variablennamen duerfen nur USASCII7-zeichen haben (wird zzt. noch nicht ueberprueft, wird aber kommen)
   zusaetzliches boolsches token {IsUTF8}: liefert, ob das system UTF8 ist oder nicht (relevant, wenn zb. UTF-8 fonts mit eigenen zeichen verwendet werden wollen, zb VDRSymbols - diese sind auf !UTF-8-systemen natuerlich nutzlos)

Tuesday, May 31st 2011, 1:05am [221] news: weil mit den texteffekten so schoen herumzuspielen ist: diese sind jetzt fixbestandteil (derzeit 2 effekte: shadow, outline) default: kein effekt (= 'none')

<text ...... effect="[none|shadow|outline]" effectcolor="[some colour]" .... >text</text>

zb: <text ...... effect="shadow" color="white" effectcolor="black">....

-> weisser text mit schwarzem schatten


Sunday, May 29th 2011, 6:05pm [211] die zwei angekuendigten tokens sind jetzt im vdr-plugin-graphlcd -> {ForegroundColor}, {BackgroundColor}

diese sollten (aus logischer sicht) ab jetzt statt {DefaultForegroundColor}/{DefaultBackgroundColor} in den skins verwendet werden


Saturday, May 28th 2011, 1:32pm [192] neue anpassungen:

   die basisklasse cDriver hat jetzt eine generische Set8Pixels()-methode. diese wird, wenn alle treiber ueberarbeitet sind, nicht mehr 'virtual' sein (dh. nicht mehr ueberlagert werden koennen - vorerst aber schon noch).
   serdisp-treiber: intern ueberarbeitung der class-members fg_colour und bg_colour: uint32_t statt long, verwenden der cColor-farben jetzt durchgehend. ausserdem wird jetzt die Set8Pixels()-methode der basisklasse verwendet (auch wenn dies zu einer merklichen verlangsamung fuehrt). aber diese methode sollte ohnehin obsolet sein (wird nur noch von 'lcdtestpattern' verwendet).

Tuesday, May 24th 2011, 9:30pm [181] finally: unterstuetzung fuer transparenz (aber nur alles oder nichts, keine alpha-channels).

   'text' und 'image' sind jetzt standardmaessig transparent, ein setzen v. bgcolor, um mit dem hintergrund zu korrespondieren ist nicht mehr notwendig
   nette effekte wie text mit schatten ist jetzt moeglich (wird ev. ein zusaetzl. attribut fuer 'text')
   bei bildern mit alpha-channel wird alles opaque >= 225 (willkuerlich derzeit) als transparent gewertet (interessant fuer PNGs)

und ganz wichtig: ein bug fix, ohne dem das plugin crashen kann (wenn ein cBitmap objekt mit width=0 allokiert wird) ist auch dabei


Thursday, May 19th 2011, 10:18am [164] der vorschlag v. Keine_Ahnung hat mir keine ruhe gelassen.

folgendes ist jetzt moeglich:

<block condition="{ExtDataIsAvailable:somemsg}">

<text x1="#W" width="90" y1="#Y" y2="-1" color="#SomeCol" font="FontInfoSignal">
 Msg: {ExtDataItem:somemsg}
</text>

</block>


   ExtDataIsAvailable:<key> prueft, ob ein wert <key> gespeichert ist
   ExtDataItem:<key> holt den wert von <key>


ueber SVDRP koennen diese werte gesetzt werden:

   SET <key> <value>: wert setzen, der ueber <key> angesprochen werden kann (value darf spaces enthalten):
   SET somemsg Das Reh huepft hoch, das Reh huepft weit, warum auch nicht, es hat ja Zeit.
   SETEXP <exp> <key> <value>: dasselbe wie oben, nur mit ablaufdatum (in sekunden):
   SETEXP 10 somemsg Ich verschwinde nach 10 Sekunden
   UNSET <key>: key loeschen
   GET <key>: <key> ueber SVDRP abfragen

Monday, May 16th 2011, 12:37am [145] object - farben (hinter/vordrgrund) werden jetzt zur laufzeit ausgewertet (hat mich einiges an herumhackerei inkl. einmal alles komplett verwerfen und neu starten gekostet. ist auch jetzt schoener (codetechnisch) als mein vorheriger versuch).

folgendes ist jetzt moeglich:

<variable id="ColFemonSigProg" value="'red'" condition="le({ServiceItem:femon,percent_signal},25)"/> <variable id="ColFemonSigProg" value="'green'" condition="gt({ServiceItem:femon,percent_signal},80)" default="'yellow'"/> <variable id="ColFemonSNRProg" value="'red'" condition="le({ServiceItem:femon,percent_snr},25)"/> <variable id="ColFemonSNRProg" value="'green'" condition="gt({ServiceItem:femon,percent_snr},80)" default="'yellow'"/>

<progress x1="#SomeX1" width="70" y1="#SomeY1" height="2" color="#ColFemonSigProg" direction="0" current="{ServiceItem:femon,signal}" total="65536"/> <progress x1="#SomeX2" width="70" y1="#SomeY2" height="2" color="#ColFemonSNRProg" direction="0" current="{ServiceItem:femon,snr}" total="65536"/>


die 2 aussteuerungsbalken fuer femon signal und snr werden abhaengig der prozentuellen staerke eingefaerbt: rot: <= 25 gruen: > 80 gelb: alles dazwischen


Thursday, May 12th 2011, 11:19pm [118]

neue updates:

  • variable koennen jetzt auch werte a la "{SomeValue}" haben. kein herumtricksen mit "add({SomeValue},0)" mehr notwendig (die aenderung dafuer war minimal, hoffentlich ist das auch stabil)
  • das display wird beim niederfahren des plugin (wenn der VDR beendet wird) jetzt geloscht

Thursday, May 12th 2011, 1:04am [107] news:

   variable, die functions enthalten (zb. <variable id="blafasel" value="add({DateTime:%S},100)" />) werden jetzt zur laufzeit evaluiert (zuvor: beim parsen einmal evaluiert und dann fix bis zum bitteren ende gespeichert).
   showpic kann jetzt auch (experimentell!) das imagemagick-zeug anzeigen (falls aktiviert).

Saturday, May 7th 2011, 11:06pm [48] der erste schnellpfusch in sachen imagemagick funktioniert bereits (noch nicht ganz brauchbar (orf-logo ist zb. gedithered obwohl es das nicht soll)), aber das logo ist zumindest schon in farbe zu sehen. gibts irgendwo animierte senderlogos fuer text2skin? die sollten eigentlich auch aus dem stand funktionieren jetzt ...


anmerkung: die bilder sind mit libsdl-ausgabe erstellt (da muss ich nicht fotografieren), aber mit derselben aufloesung (320x240) wie l4m320t.

EDIT: dithering problem war gar keines. das standard orf1-logo war schon so. das alternativlogo sieht hingegen brauchbar aus.

das zeug ist auch bereits committed. wenn man es testen will muss man im glcdgraphics/Makefile die variable IMAGELIB setzen: IMAGELIB = imagemagick

oder statt imagemagick sollte auch graphicsmagick funktionieren.


Monday, May 2nd 2011, 12:15am [1] graphlcd (base, vdr-plugin) touchcol branch

kurze zusammenfassung:

   unterstuetzung fuer farbe (urspruenglich von randy, darauf aufbauend von mir dann noch zieml. beackert)
   unterstuetzung v. touchpad (einstweilen nur l4m320t)
   anreicherung des skin-supports um weitere elemente/attribute/features
   zusammenfassung der aenderungen ist im 'HISTORY' v. graphlcd-base zu finden (bis auf das, was ich vergessen habe, aufzuzaehlen :)
   im vdr-plugin-graphlcd ist ein skin fuer das l4m320t enthalten ('touchcol'), dass fuer mich zum herumspielen dient.


benoetigte software-versionen:

   aktuelle SVN-version v. serdisplib (am besten vom 1.98-zweig)
   serdisplib muss mit ./configure --enable-experimental erstellt werden (ansonsten funktioniert der support fuer GPIs nicht (touchpad))
   sowohl v. graphlcd-base als auch von vdr-plugin-graphlcd muss der jeweilige branch 'touchcol' verwendet werden
   skin 'touchcol' wie gewohnt ins verzeichnis <path_to_vdr_stuff>/plugins/graphlcd/skin kopieren (parallel zu 'default').
   da dieses zeug sowieso nur mutige und fachkundige testen werden, erspare ich mir weitere erklaerungen zu kompilierung, installation, plugin-parameter, ...


die 2 git branches koennen geholt werden zb mit:


git clone git://projects.vdr-developer.org/graphlcd-base.git -b touchcol graphlcd-base.git.touchcol git clone git://projects.vdr-developer.org/vdr-plugin-graphlcd -b touchcol vdr-plugin-graphlcd.touchcol


aktuelle serdisplib zb mit:

svn co https://serdisplib.svn.sourceforge.net/svnroot/serdisplib/serdisplib/branches/serdisplib-1.98.x serdisplib-1.98.x_svn



das ganze dann mit dem skin touchcol aktivieren und dann sollte eigentlich schon knallbunte ausgabe am l4m320t erscheinen und dieses sogar mit herumtapserei zu bedienen sein. skin 'touchcol' ist mit focus auf das l4m320t erstellt worden und in erster linie als testskin. auf anderen displays koennte es ev. nicht gut ausschauen ;-)

aber auch ohne touchpad sollte das ganze zumindest fuer farbausgabe durchaus interessant sein (und auch schwarzweiss-displays sollten funktionieren - muss aber eingestehen, dass ich in letzter zeit nur mit farbdisplays getestet habe - da kann es unter umstaenden zu problemen kommen bei der darstellung).

werde aber in naechster zeit noch weitere skins committen (habe ein paar herumliegen, die ich aber schon lange nicht mehr angesehen habe und die einer ueberarbeitung beduerfen).

EDIT:

nicht alle treiber funktionieren derzeit.