Version 1.0.61
Neue SYS-Befehle:
GETAUDIOOUTPUTLIST - listet alle verfügbaren Audio-Ausgabegeräte mit Namen auf
GETAUDIOOUTPUT - liefert das aktuelle Ausgabegerät
SETAUDIOOUTPUT={Name} - schaltet auf Ausgabegerät {Name} um
Außerdem:
- der Webserver versteht jetzt auch PNG-Grafiken. Der HTTP-Aufruf kann jetzt neben .jpg auch die Endung .png haben.
- in der SCRIPTLOAD-Klasse werden die SYSVars nicht mehr ersetzt
- die Befehle in der HS-Klasse warten nicht mehr auf eine Antwort vom HS
- Testweise: Parser-Filter abgeschaltet: Die '"' sind in Kommandosequenzen nicht mehr notwendig, um Leerzeichen zu erzwingen (schaden aber auch nicht)
- Bei der Installation sollte eine evtl. laufende Instanz der GUI sicher beendet werden
Änderungen in der 1.0.62:
- Das Keyfile-Handling ist jetzt etwas weniger aggressiv. Vielleicht behebt das das "Invalid License"-Problem.
- die HS-Funktionen sind jetzt von der BAOS-Lizenz abhängig
- der csv_handler supported jetzt auch Umlaute.
- Webserver: iTunes- und TV-Grafiken werden wieder dargestellt
Neuer Befehl:
DVD - GETVOL - liefert die Lautstärke der DVD-Applikation im Bereich 0...100
Änderungen in der 1.0.63:
- Bugfix Webserver: leere oder unbekannte Dateinamen führen nicht mehr zum Absturz
- Feature Webserver: Bei Aufrufen mit '/' im Dateinamen wird der '/' durch ein blank ersetzt
- Feature Webserver: Kommt im TV-Programmnamen ein '/' vor, wird er durch ein blank ersetzt
- Bugfix iViewer: das NOCACHE-Setting matchte auf alle Einträge, behoben.
- Feature iViewer: Analoge Joins lassen sich jetzt dynamisch skalieren: statt des Skalierungs-Wertes einfach eine Match-Sequenz eintragen:
1;#;GETCTIME=\*|;<ITUNES><SETPTIME=\#></ITUNES>;GETPTIME=\*|
Version 1.0.64 mit iViewer-Erweiterungen und Formatieroptionen für alle Kommandos:
- Übergabe- und Rückgabewerte formatieren (bisher nur Stunden,Minuten,Sekunden), die Option wird an den Befehl oder das Argument in {} eingefasst angehängt.
Formatieroptionen:
%h - rechnet den Wert in volle Stunden um
%m - rechnet den Wert in volle Minuten um
%s - stellt den Wert 1:1 dar.
Zusätzlich lassen sich in den Formatierstring beliebige Zeichen einfügen.
Wenn mehrere Formatieroptionen in einen Formatierstring eingebaut werden, erfolgt die korrekte Berechnung der jeweiligen (Rest-)Werte.
Zusätzlich für alle drei Optionen:
- Erzwingen von Stellen:
%3m- erzwingt mindestens 3 Stellen und stellt blanks voran
- Erzwingen und Auffüllen von führenden Nullen:
%04s - erzwingt mindestens 4 Stellen und füllt mit führenden Nullen auf
Rückgabewerte formatieren (bisher nur für Standard-Kommandos möglich, nicht für Commandserver-Replys)
Beispiel GETCTIME:
- der normale GETCTIME-Aufruf liefert z.B. 521 Sekunden zurück
- der Aufruf <GETCTIME{%02m:%02s}> liefert: GETCTIME=08:41|OK
es werden erst Minuten und Sekunden berechnet. Dann werden die Minuten 2-stellig mit führender Null dargestellt, ein ":" als Trenner eingebaut und anschließend die Sekunden 2-stellig angefügt
Dementsprechend liefert der Aufruf <GETCTIME{%02h:%02m:%02s}>: GETCTIME=00:08:41|OK
Will man nur führende Nullen für einen Wert erzwingen, trägt man nur den "Sekunden"-Formatierer ein:
<GETCTIME{%07s}> -> GETCTIME=0000521|OK
-Argumente formatieren (prinzipiell genau wie oben, nur kommt der Formatstring hinten an das Argument:
<SETVOL=87{%06s}> wird intern zu: <SETVOL=000087>
iViewer:
Als weitere Spalte (hinter NOCACHE) läßt sich jetzt für jeden Join eine sogenannte "localaction" (als Befehlskette oder Script) definieren, die ausgeführt wird, wenn das Action-Event gültig war.
Beispiel:
3;;;|GETALBUM=\*|;;<SYS><SETSERIALJOIN=4,http://192.168.1.51:8080/itunes_current.jpg></SYS>
Ein serieller Join, der sich synchronisiert, wenn sich der Wert von GETALBUM ändert. zusätzlich wird jedoch die Befehlssequenz ausgeführt, die manuell den 4. Join beschreibt.
Bevor wer meckert: Bei der Anzeige der aktuellen Spielzeit im iViewer kommt es zu Aussetzern von bis zu einigen Sekunden. Woher das kommt, wird noch erforscht.
Version 1.0.65:
- TCP- und UDP-Kommandoparser multithreaded
- Commandserver parallelisiert (=performanter), bitte wenn möglich mal mit mehreren Geräten gleichzeitig ausprobieren
- Broadcast-Engine optimiert
- iViewer-Absturz bei iTunes-Betrieb behoben
Version 1.0.66:
Bugfixes:
- der iViewer matcht jetzt auf das, was tatsächlich über den Broadcast gesendet wird. es gibt also keine "versteckten" Matches mehr
- Umlaute in der Buttonleiste funktionieren jetzt
- Performance der iViewer-Actions verbessert (bitte ausgiebig testen!)
- das automatische CR+LF in der Antwort des Parsers ist in dieser Version abgeschaltet. Bitte mal testen, ob sich das mit Deinem Client verträgt.
Erweiterte sysvars:
dynamische Systemvariablen:
SYSTEM_IP - aktuelle IP
SCREEN_X - aktuelle x-Auflösung des Bildschirms
SCREEN_Y - aktuelle y-Auflösung des Bildschirms
BUTTON_SIZE - aktuelle Höhe der Buttonleiste
Sämtliche Variablen können überschrieben werden, d.h. eine manuelle Definition geht vor.
Der Befehl GETALLVARS liefert immer alle Variablen zurück, d.h. wenn z.b. SYSTEM_IP in der .csv definiert ist, kommt die Variable zweimal in der Antwortsequenz vor.
Neue Klasse TIMER:
Befehle:
START={Name} - startet den Timer {Name}
STOP={Name} - stoppt den Timer {Name}
LIST - listet alle aktiven Timer auf
Konfiguration:
im misc-Ordner eine Datei timer.csv anlegen:
[CONFIG];
ACTIVE;YES
DEBUG;NO
DEBUG;YES erzeugt einen Logeintrag, wenn ein Timer feuert. Sonst werden nur Start bzw. Stopp eines Timers geloggt.
[TIMERS];
{Name};{Typ};{Wert};{Action};{Optionen}
{Name} - Bezeichnung des Timers
{Typ} - Typ des Timers, z. Zt. nur "INTERVAL"
{Wert} - Konfiguration des Timerwertes, für INTERVAL-Timer: Intervall in Sekunden ( max. 86400 (= 1Tag) möglich)
{Action} - auszuführende mmh-Sequenz bzw. mmh-Scriptname
{Optionen}- weitere Optionen zur Timerkonfiguration, z.Zt. möglich: AUTOSTART - startet den Timer beim Start von mmh automatisch
Beispiel:
[CONFIG];
ACTIVE;YES
DEBUG;NO
[TIMERS];
IVT;INTERVAL;1;<ITUNES><GETPTIME><GETPTIME{%02m:%0 2s}><GETCTIME><GETCTIME{%02m:%02s}><GETREPEAT><GET SHUFFLE></ITUNES>;AUTOSTART
Startet den Timer IVT automatisch und führt die Itunes-Befehle im Ein-Sekunden-Takt aus.
Es sind maximal 256 Timer möglich.
Viel Spass...
Neue SYS-Befehle:
GETAUDIOOUTPUTLIST - listet alle verfügbaren Audio-Ausgabegeräte mit Namen auf
GETAUDIOOUTPUT - liefert das aktuelle Ausgabegerät
SETAUDIOOUTPUT={Name} - schaltet auf Ausgabegerät {Name} um
Außerdem:
- der Webserver versteht jetzt auch PNG-Grafiken. Der HTTP-Aufruf kann jetzt neben .jpg auch die Endung .png haben.
- in der SCRIPTLOAD-Klasse werden die SYSVars nicht mehr ersetzt
- die Befehle in der HS-Klasse warten nicht mehr auf eine Antwort vom HS
- Testweise: Parser-Filter abgeschaltet: Die '"' sind in Kommandosequenzen nicht mehr notwendig, um Leerzeichen zu erzwingen (schaden aber auch nicht)
- Bei der Installation sollte eine evtl. laufende Instanz der GUI sicher beendet werden
Änderungen in der 1.0.62:
- Das Keyfile-Handling ist jetzt etwas weniger aggressiv. Vielleicht behebt das das "Invalid License"-Problem.
- die HS-Funktionen sind jetzt von der BAOS-Lizenz abhängig
- der csv_handler supported jetzt auch Umlaute.
- Webserver: iTunes- und TV-Grafiken werden wieder dargestellt
Neuer Befehl:
DVD - GETVOL - liefert die Lautstärke der DVD-Applikation im Bereich 0...100
Änderungen in der 1.0.63:
- Bugfix Webserver: leere oder unbekannte Dateinamen führen nicht mehr zum Absturz
- Feature Webserver: Bei Aufrufen mit '/' im Dateinamen wird der '/' durch ein blank ersetzt
- Feature Webserver: Kommt im TV-Programmnamen ein '/' vor, wird er durch ein blank ersetzt
- Bugfix iViewer: das NOCACHE-Setting matchte auf alle Einträge, behoben.
- Feature iViewer: Analoge Joins lassen sich jetzt dynamisch skalieren: statt des Skalierungs-Wertes einfach eine Match-Sequenz eintragen:
1;#;GETCTIME=\*|;<ITUNES><SETPTIME=\#></ITUNES>;GETPTIME=\*|
Version 1.0.64 mit iViewer-Erweiterungen und Formatieroptionen für alle Kommandos:
- Übergabe- und Rückgabewerte formatieren (bisher nur Stunden,Minuten,Sekunden), die Option wird an den Befehl oder das Argument in {} eingefasst angehängt.
Formatieroptionen:
%h - rechnet den Wert in volle Stunden um
%m - rechnet den Wert in volle Minuten um
%s - stellt den Wert 1:1 dar.
Zusätzlich lassen sich in den Formatierstring beliebige Zeichen einfügen.
Wenn mehrere Formatieroptionen in einen Formatierstring eingebaut werden, erfolgt die korrekte Berechnung der jeweiligen (Rest-)Werte.
Zusätzlich für alle drei Optionen:
- Erzwingen von Stellen:
%3m- erzwingt mindestens 3 Stellen und stellt blanks voran
- Erzwingen und Auffüllen von führenden Nullen:
%04s - erzwingt mindestens 4 Stellen und füllt mit führenden Nullen auf
Rückgabewerte formatieren (bisher nur für Standard-Kommandos möglich, nicht für Commandserver-Replys)
Beispiel GETCTIME:
- der normale GETCTIME-Aufruf liefert z.B. 521 Sekunden zurück
- der Aufruf <GETCTIME{%02m:%02s}> liefert: GETCTIME=08:41|OK
es werden erst Minuten und Sekunden berechnet. Dann werden die Minuten 2-stellig mit führender Null dargestellt, ein ":" als Trenner eingebaut und anschließend die Sekunden 2-stellig angefügt
Dementsprechend liefert der Aufruf <GETCTIME{%02h:%02m:%02s}>: GETCTIME=00:08:41|OK
Will man nur führende Nullen für einen Wert erzwingen, trägt man nur den "Sekunden"-Formatierer ein:
<GETCTIME{%07s}> -> GETCTIME=0000521|OK
-Argumente formatieren (prinzipiell genau wie oben, nur kommt der Formatstring hinten an das Argument:
<SETVOL=87{%06s}> wird intern zu: <SETVOL=000087>
iViewer:
Als weitere Spalte (hinter NOCACHE) läßt sich jetzt für jeden Join eine sogenannte "localaction" (als Befehlskette oder Script) definieren, die ausgeführt wird, wenn das Action-Event gültig war.
Beispiel:
3;;;|GETALBUM=\*|;;<SYS><SETSERIALJOIN=4,http://192.168.1.51:8080/itunes_current.jpg></SYS>
Ein serieller Join, der sich synchronisiert, wenn sich der Wert von GETALBUM ändert. zusätzlich wird jedoch die Befehlssequenz ausgeführt, die manuell den 4. Join beschreibt.
Bevor wer meckert: Bei der Anzeige der aktuellen Spielzeit im iViewer kommt es zu Aussetzern von bis zu einigen Sekunden. Woher das kommt, wird noch erforscht.
Version 1.0.65:
- TCP- und UDP-Kommandoparser multithreaded
- Commandserver parallelisiert (=performanter), bitte wenn möglich mal mit mehreren Geräten gleichzeitig ausprobieren
- Broadcast-Engine optimiert
- iViewer-Absturz bei iTunes-Betrieb behoben
Version 1.0.66:
Bugfixes:
- der iViewer matcht jetzt auf das, was tatsächlich über den Broadcast gesendet wird. es gibt also keine "versteckten" Matches mehr
- Umlaute in der Buttonleiste funktionieren jetzt
- Performance der iViewer-Actions verbessert (bitte ausgiebig testen!)
- das automatische CR+LF in der Antwort des Parsers ist in dieser Version abgeschaltet. Bitte mal testen, ob sich das mit Deinem Client verträgt.
Erweiterte sysvars:
dynamische Systemvariablen:
SYSTEM_IP - aktuelle IP
SCREEN_X - aktuelle x-Auflösung des Bildschirms
SCREEN_Y - aktuelle y-Auflösung des Bildschirms
BUTTON_SIZE - aktuelle Höhe der Buttonleiste
Sämtliche Variablen können überschrieben werden, d.h. eine manuelle Definition geht vor.
Der Befehl GETALLVARS liefert immer alle Variablen zurück, d.h. wenn z.b. SYSTEM_IP in der .csv definiert ist, kommt die Variable zweimal in der Antwortsequenz vor.
Neue Klasse TIMER:
Befehle:
START={Name} - startet den Timer {Name}
STOP={Name} - stoppt den Timer {Name}
LIST - listet alle aktiven Timer auf
Konfiguration:
im misc-Ordner eine Datei timer.csv anlegen:
[CONFIG];
ACTIVE;YES
DEBUG;NO
DEBUG;YES erzeugt einen Logeintrag, wenn ein Timer feuert. Sonst werden nur Start bzw. Stopp eines Timers geloggt.
[TIMERS];
{Name};{Typ};{Wert};{Action};{Optionen}
{Name} - Bezeichnung des Timers
{Typ} - Typ des Timers, z. Zt. nur "INTERVAL"
{Wert} - Konfiguration des Timerwertes, für INTERVAL-Timer: Intervall in Sekunden ( max. 86400 (= 1Tag) möglich)
{Action} - auszuführende mmh-Sequenz bzw. mmh-Scriptname
{Optionen}- weitere Optionen zur Timerkonfiguration, z.Zt. möglich: AUTOSTART - startet den Timer beim Start von mmh automatisch
Beispiel:
[CONFIG];
ACTIVE;YES
DEBUG;NO
[TIMERS];
IVT;INTERVAL;1;<ITUNES><GETPTIME><GETPTIME{%02m:%0 2s}><GETCTIME><GETCTIME{%02m:%02s}><GETREPEAT><GET SHUFFLE></ITUNES>;AUTOSTART
Startet den Timer IVT automatisch und führt die Itunes-Befehle im Ein-Sekunden-Takt aus.
Es sind maximal 256 Timer möglich.
Viel Spass...
Kommentar