Update: Leider hab ich's dieses Wochenende nicht mehr geschafft, und der Urlaub is auch alle - Bitte um etwas Geduld, ich bin drüber.
Beiträge von user42
-
-
Zitat
Original von Fux
Wäre super wenn das ganze in den offiziellen branch einfließen könnte.Das hoffe ich doch. Ich werde mal so schnell wie möglich ein kleines Diff fertigmachen und Dir hochstellen.
Als nächstes werde ich mir dann was überlegen müssen, wie wir dem Server die angepassten Iconlists nahebringen. Bis jetzt ist das mit nem switch/case gelöst, und das ist ja nun nicht wirklich dynamisch. Ich bin da übrigens für alle Ideen offen...
-
Fux: Falls ich das richtig verstehe, möchtest du, dass die Icons immer dem höchstprioren screen zugeordnet sind? Ich hab mir gerade den Treiber und den Christoph's mini-client mal reingezogen, und so wie es scheint, ist der Output bei den Screens und Widgets komplett aussen vor.
Hm, nicht komplett -- lcdproc hat einen seltsamen side-effect, der beim Start einige der symbole setzt, aber das gehört nicht hierher.
Schon seltsam, ich hab damals genau das umgekehrte Problem gehabt. Meine Implementation über die Icon-Widgets leistet nämlich genau das was du möchtest. Allerdings wäre da ohne ausführliche Umbauten erst mal nur Play, Pause und Record zu machen, für alle anderen icons fehlen die Konstanten im Server.
Machbar ist auch das, aber das dauert ein paar Tage, weil wenn ich das schon mache, will ich's gleich richtig machen, so dass es in das lcdproc-Projekt kommited werden kann. Die Idee dabei ist, die Definition der Icons dem Treiber zu überlassen und den Server dazu zu bringen, beim client nach einer Custom-Iconliste anzufragen.
-
Soodala, anlässlich der Tatsache, dass der LCDd bei mir nicht auf port 13666 horcht, habe ich mir die Freiheit genommen, Christoph's mdmicons mal etwas aufzumöbeln.
-
Zitat
ich verstehe nicht ganz, was Du mit dem Hack für statische Icons meinst.
Ich meine damit, die Icons nicht über Umwege,sprich über output, sondern als _Icons_ anzusprechen. Mit
in telnet zum Beispiel. Im Grunde tue ich nichts weiter, als die entspr. Aufrufe an den Treiber auf die statischen Symbole umzubiegen. Der Vorteil IMO ist, dass es über eine Schnittstelle funktioniert, die eigentlich jeder Treiber unterstützt, wenn auch die meisten nur im Textmode. Ich poste zum besseren Verständnis mal einen Ausschnitt aus meinem ShuttleVFD-Treibercode:Code
Alles anzeigenMODULE_EXPORT int shuttleVFD_icon(Driver *drvthis, int x, int y, int icon) /* x and y values are not applicable; if y is even, the symbol is set, /* else it is cleared. Volume settings count as one symbol for this purpose */ { //printf("shuttleVFD_icon called\n"); unsigned long pass; PrivateData *p = drvthis->private_data; switch(icon){ case ICON_STOP:pass=SHUTTLE_VFD_ICON_STOP;break; case ICON_PAUSE:pass=SHUTTLE_VFD_ICON_PAUSE;break; case ICON_PLAY:pass=SHUTTLE_VFD_ICON_PLAY;break; case ICON_FF: pass=SHUTTLE_VFD_ICON_FASTFORWARD;break; case ICON_FR: pass = SHUTTLE_VFD_ICON_REWIND;break; case ICON_REC: pass= SHUTTLE_VFD_ICON_RECORD;break; default: return -1; } unsigned long symbuf = p->last_icons; //printf("%d, %d\n", symbuf,pass); if(pass <= SHUTTLE_VFD_ICON_STOP){ //if we were passed a standard icon if(y % 2 == 0) //if we were told to set it symbuf |= pass; // we or it in else symbuf &= (~pass);//we and it out } else if (pass > SHUTTLE_VFD_ICON_STOP && pass <= SHUTTLE_VFD_ICON_VOL_12){//if we were passed a volume icon if(y % 2 == 0)//if we were told to set it symbuf = (symbuf & SHUTTLE_VFD_VOL_MASK) |pass;//we mask out the old one and or the new pattern in else symbuf &= SHUTTLE_VFD_VOL_MASK; //we just and the whole block to zero } p->icons = symbuf; p->last_icons = p->icons; return 0; }
Edit: Auch zu diesem:
Zitatnoch gibt es (imho) keine komfortablere Methode, Icons zu steuern, als über die Bitmasken.
Das wäre z.B. eine Methode, die unbequemen Bitmasken zu umgehen. Soweit ich mich erinnere war das mit auch ein Grund, warum ich es so gemacht habe.
Edit: Ich sehe gerade, dass da nur die grundlegendsten Icons mit drin sind, that is, das ist eindeutig nicht die neueste Version des Treibers. Tja, ich geh dann mal Träger anheuern und Proviant einkaufen für eine zweiwöchige Expedition in die unerforschten Tiefen meiner Festplatten und Backups
JA ICH HAB BACKUPS!!! Zwei Ausfälle bei nagelneuen Platten hintereinander machen sowas mit dir... -
So, jetzt muss ich hier aber auch mal meinen Mittelscharfen hinzugeben...
Zunächst mal Danke an alle, die so fleissig gehackt haben (auch wenn ihr mir den Spass verdorben habt, es selbst zu hacken)
Wichtigste Frage, haben wir schon Ergebnisse von der lcdproc-mailingliste?
Ach ja, und falls interesse besteht könnte ich noch den Hack beisteuern, den ich mal für mein Shuttle-VFD gemacht habe, um die dortigen statischen Icons anzusprechen. Das funktionierte so, dass bei einem Icon-widget einer der (in diesem falle ja sinnlosen) Positionsparameter für die Information "setzen" bzw "löschen" missbraucht wurde. Wie gesagt, wenn ihr das gerne möchtet, könnte ich den alten code bisschen abstauben und für das futaba targa umschreiben.
Wenn ich nur noch wüsste, wie weit ich damals mit dem patchen des eigentlichen LCDd gekommen war...