TMSOSDMenu & FontManagerTMS

TAPs für die SRP- und CRP-Serie
Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#21

Beitrag von FireBird » Sa 19. Dez 2009, 23:36

Mit Truncate meinst Du, dass der Text beim maxX abgeschnitten wird? bDot macht dann zusätzlich 3 Punkte.

Benutzeravatar
Gerti
Nicht mehr bei Topfield-Europe
<b>Nicht mehr bei Topfield-Europe</b>
Beiträge: 15742
Registriert: Fr 9. Dez 2005, 00:16
Receivertyp: Vu+ Uno 4k
Wohnort: Hürth
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#22

Beitrag von Gerti » Sa 19. Dez 2009, 23:49

Hi!

Das meine ich, aber wenn er abschneidet, dann soll er natürlich auch automatisch die Punkte machen.
Bei mir fängt der "überhängende Text" immer wieder vorne in der Zeile an und liegt dann über den Anfang des Textes.

Habe es jetzt so gemacht:

Code: Alles auswählen

void FM_PutString(word rgn, dword x, dword y, dword maxX, const char * str, dword fcolor, dword bcolor, tFontData *FontData, byte bDot, byte align)
{
  dword                 XEnd, YEnd;
  dword                *PixelData;
  byte                 *FontBitmap;
  dword                 i, X, Y;
  dword                 CX, CY, CW, CH;
  dword                 SaveBoxX;
  char newstr[256];

  //Ignored: fcolor, bcolor, bDot

	strcpy(newstr,str);
  XEnd = x + FM_GetStringWidth(newstr, FontData);
  if (XEnd > maxX){
  	while (XEnd > maxX) {
  		newstr[strlen(newstr)-1]= '\0';
  		XEnd = x + FM_GetStringWidth(newstr, FontData);
  	}
  	newstr[strlen(newstr)-2]= '\0';
  	TAP_SPrint(newstr,"%s...",newstr);
  }
  YEnd = y + FM_GetStringHeight(newstr, FontData);

  switch(align)
  {
    case ALIGN_LEFT:
    {
      SaveBoxX = x;
      break;
    }

    case ALIGN_CENTER:
    {
      SaveBoxX = (maxX - x - FM_GetStringWidth(str, FontData)) >> 1;
      break;
    }

    case ALIGN_RIGHT:
    {
      SaveBoxX = maxX - (XEnd - x);
      break;
    }

    default:
      SaveBoxX = x;
  }
  PixelData = (dword*)TAP_Osd_SaveBox(rgn, SaveBoxX, y, XEnd - x + 1, YEnd - y + 1);
  if(PixelData)
  {
    CX = 0;
    for(i = 0; i < strlen(newstr); i++)
    {
      FontBitmap = &FontData->pFontData[FontData->FontDef[FM_CharToIndex(newstr[i])].BitmapIndex];
      CW = FontData->FontDef[FM_CharToIndex(newstr[i])].Width;
      CH = FontData->FontDef[FM_CharToIndex(newstr[i])].Height;

      for(Y = 0; Y < CH; Y++)
      {
        CY = (XEnd - x + 1) * Y;
        for(X = 0; X < CW; X++)
        {
          if(*FontBitmap != 0x00)
          {
            if(*FontBitmap == 0xff)
            {
              PixelData[CX + X + CY] = fcolor;
            }
            else
            {
              dword     fbm;
              dword     Pixel;
              dword     A, R, G, B;

              fbm = (dword)*FontBitmap;

              //Verhalten von bcolor.A
              A = (dword)( fcolor >> 24)          * fbm;
              R = (dword)((fcolor >> 16) & 0xff)  * fbm;
              G = (dword)((fcolor >> 8) & 0xff)   * fbm;
              B = (dword)( fcolor & 0xff)         * fbm;

              Pixel = PixelData[CX + X + CY];

              A = A + (dword)( Pixel >> 24)          * (255 - fbm);
              R = R + (dword)((Pixel >> 16) & 0xff)  * (255 - fbm);
              G = G + (dword)((Pixel >> 8) & 0xff)   * (255 - fbm);
              B = B + (dword)( Pixel & 0xff)         * (255 - fbm);

              A = (dword)(A / 255);
              if(A > 255) A = 255;

              R = (dword)(R / 255);
              if(R > 255) R = 255;

              G = (dword)(G / 255);
              if(G > 255) G = 255;

              B = (dword)(B / 255);
              if(B > 255) B = 255;

              PixelData[CX + X + CY] = ARGB(A, R, G, B);
            }
          }
          FontBitmap++;

        }
      }
      CX += CW;
    }
    TAP_Osd_RestoreBox(rgn, SaveBoxX, y, XEnd - x + 1, YEnd - y + 1, PixelData);
    TAP_MemFree(PixelData);
  }
}
Gruß,
Gerti

Benutzeravatar
xyzzyx
TAPPortierer
TAP<font color=DarkRed>Portierer</font>
Beiträge: 2099
Registriert: Sa 6. Jun 2009, 18:35
Receivertyp: SRP-2100 (TMS), **** Duo²
Receiverfirmware: verschiedene
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#23

Beitrag von xyzzyx » So 20. Dez 2009, 00:09

Wenn ich es richtig verstehe, gibt es folgende Funktionen im Standard:
- maxX Wert = -1, dann wird der Text solang geschrieben wie er ist
- maxX Wert = irgendwas größer als x-Wert (also z.B. x + GetW), dann gibt es zwei Möglichkeiten:
--> bDot = TRUE, dann wird bei Erreichen von maxX der Rest des Textes am letzten vollen Buchstaben so abgeschnitten, dass auch noch drei Pünktchen (als Fortsetzungssymbolik) genau bis maxX hinpassen
--> bDot = FALSE, dann wird vermutlich ein Truncate genau bei maxX gemacht, wahrsch. auch wenn es mitten im Buchstaben ist; Oder hab ichs falsch in Erinnerung?, wenn es nicht so ist (also erst nach vollem Buchstaben), wäre es zumindest auch wünschenswert (also mitten im Buchstaben)

Dann bräuchte man nur noch was, um auch links mitten im ersten Buchstaben abschneiden zu können und schon wäre der scrollende Text nicht mehr weit. :D
MfG,
xyzzyx

Die Liste meiner portierten und meiner eigenen TAPs findet man hier

:bounce: Download: Homepage :bounce: Installieren: TAPtoDate :bounce: Beschreibungen: Topfield TAP-Seite :bounce:

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#24

Beitrag von FireBird » So 20. Dez 2009, 00:34

Update ist hochgeladen:

FontManager:
  • Added: Abschneiden bei maxX und bDot-Parameter (thx to Gerti)
TMSOSDMenu:
  • Added: OSDMenuGetCurrentItem()
  • Bugfix: OSDMenuItemModifyName() und OSDMenuItemModifyValue() wurden nicht ausgeführt

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#25

Beitrag von FireBird » So 20. Dez 2009, 00:36

xyzzyx hat geschrieben:Dann bräuchte man nur noch was, um auch links mitten im ersten Buchstaben abschneiden zu können und schon wäre der scrollende Text nicht mehr weit. :D

Das heben wir uns dann für nächstes Jahr auf. :D :

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#26

Beitrag von FireBird » So 20. Dez 2009, 11:06

Kleines FontManager-Update:
  • Nicht druckbare Zeichen werden nicht mehr durch ein Leerzeichen ersetzt, sondern vollkommen ignoriert
Dies betrifft alle Zeichen < 0x20 und 0x7f bis 0x9f.

Benutzeravatar
Gerti
Nicht mehr bei Topfield-Europe
<b>Nicht mehr bei Topfield-Europe</b>
Beiträge: 15742
Registriert: Fr 9. Dez 2005, 00:16
Receivertyp: Vu+ Uno 4k
Wohnort: Hürth
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#27

Beitrag von Gerti » So 20. Dez 2009, 11:37

Hi!

Dann kann ja mein CleanISO wieder raus :-)
Gibt es eigentlich eine Schrift, die der Systemschrift entspricht (vor allem auch in der Laufweite)?!
Ich glaube, ich werde mal in Korea nachfragen, obwohl der TMS wohl ab der nächsten Firmware sowieso eine andere Schrift bekommt...

Gruß,
Gerti

BluField62
Durfte nun endlich auch mal ein Statusanstifter sein

<div title=Der mit dem gaaanz anderen Statussymbol>Durfte nun endlich auch mal ein Statusanstifter sein</div>
Beiträge: 18273
Registriert: So 26. Okt 2008, 12:11

AW: TMSOSDMenu & FontManagerTMS

#28

Beitrag von BluField62 » So 20. Dez 2009, 11:44

:thinker:

solange sie leserlich bleibt :wink:

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#29

Beitrag von FireBird » So 20. Dez 2009, 11:55

[quote="Gerti"]Gibt es eigentlich eine Schrift, die der Systemschrift entspricht (vor allem auch in der Laufweite)?![/quote]
Ich habe bei mir keine gefunden. Ausschlaggebend waren ein paar Zeichen, wie z.B. die 3. Wenn die Koreaner einen Namen oder sogar einen TTF herausrücken, wäre das ein Vorteil. Geändert ist es dann schnell.

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#30

Beitrag von FireBird » Mo 21. Dez 2009, 19:49

Ein weiteres Update.

FontManager
  • Bugfix: zentrierte Texte wurden falsch positioniert (Thx to Gerti)
  • Bugfix: das Bitmap für das Zeichen "&" wurde vom Windows-Tool nicht erzeugt
  • Added: Eingabe eines Texts + Anzeige der Größe in Pixel im Windows-Tool

TMSOSDMenu
  • Bugfix: korrektes ExitNormal(), EnterNormal()
  • Bugfix: Debug-Code, der die Datei Savebox.bin erzeugt hat, gelöscht.
  • Left/right/up/down von der 5k-FB?
Beim letzten Punkt bin ich mir nicht sicher, da ich Blus Fehler nicht reproduzieren konnte.

Benutzeravatar
Töppi
TöppiHolic der mit dem h tanzt , Anstifter und Möchtegernstatusaufdecker
TöppiHolic der mit dem <font color=ed>h</font> tanzt <font color=#E9E9E9>,  Anstifter und Möchtegernstatusaufdecker</font>
Beiträge: 26843
Registriert: So 27. Aug 2006, 19:22
Receivertyp: 2410M
Receiverfirmware: Feb. 2014
Wohnort: Nähe Mainz

AW: TMSOSDMenu & FontManagerTMS

#31

Beitrag von Töppi » Di 22. Dez 2009, 09:01

Danke dir. :up:
Gruß
Klaus :wink:
................
:topf: SRP-2410M

:respekt:
TAP's (Autostart):
| TMSDisplay | F*Skip TMS 3.xx | SmartEPG | SmartFiler | RebuildNAV | Automove TMS | TMSRemote | Callmonitor | SmartSeriesrename | Switch2FTA |

Benutzeravatar
Erdnussnase
TAP-Guru
TAP-Guru
Beiträge: 7067
Registriert: Fr 9. Dez 2005, 12:01

AW: TMSOSDMenu & FontManagerTMS

#32

Beitrag von Erdnussnase » Do 24. Dez 2009, 14:21

xyzzyx hat geschrieben:
Dann bräuchte man nur noch was, um auch links mitten im ersten Buchstaben abschneiden zu können und schon wäre der scrollende Text nicht mehr weit. :D


Wenn Du keinen horizontalen Farbverlauf im Hintergrund hast geht es folgendermaßen:
Memory (!) Region allokieren die mind. Fonthöhe hat und so lang ist wie Du maximal unterstützen willst.
FontManager in diesen Memory Bereich malen lassen.
Dann nur noch in einer peridoisch aufrufenden Routine aus dieser Memory Region in den echten OSD kopieren und dabei bei der Quelle Startx und Stopx hochzählen.
So macht es derzeit iTiNa.
Geht natürlich auch ohne FontManager.
Zuletzt geändert von Erdnussnase am Do 24. Dez 2009, 14:29, insgesamt 1-mal geändert.
:type: ->.....
Kein Support oder Fragen zur Registrierung per PN !
http://www.iTiNa.de
?Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit,
aber bei dem Universum bin ich mir noch nicht ganz sicher.?
Albert Einstein

Benutzeravatar
Erdnussnase
TAP-Guru
TAP-Guru
Beiträge: 7067
Registriert: Fr 9. Dez 2005, 12:01

AW: TMSOSDMenu & FontManagerTMS

#33

Beitrag von Erdnussnase » Do 24. Dez 2009, 14:28

Ich möchte die Font gerne von Platte laden können. Dann hat man keine Fixen im Tap kompiliert und ist flexibel.
Dazu müßte kein c File für jeden Font erzeugt werden, sondern eine Binardatei.
Könntest Du das einbauen, oder soll ich mir dafür ein Tool schreiben das es nachträglich macht ?

Dann noch eine Frage zu dem Aufbau der Fonts:
tFontDef sagt für jedes Zeichen die Höhe, Breite und wo das in den Daten zu finden ist ?
Der Index tFontDef[Index] gibt dabei das eigentliche Zeichen an, also 0x31 für '1' ?
Zuletzt geändert von Erdnussnase am Do 24. Dez 2009, 14:37, insgesamt 3-mal geändert.
:type: ->.....
Kein Support oder Fragen zur Registrierung per PN !
http://www.iTiNa.de
?Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit,
aber bei dem Universum bin ich mir noch nicht ganz sicher.?
Albert Einstein

Benutzeravatar
Gerti
Nicht mehr bei Topfield-Europe
<b>Nicht mehr bei Topfield-Europe</b>
Beiträge: 15742
Registriert: Fr 9. Dez 2005, 00:16
Receivertyp: Vu+ Uno 4k
Wohnort: Hürth
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#34

Beitrag von Gerti » Do 24. Dez 2009, 14:47

Hi!

[quote="Erdnussnase"]Wenn Du keinen horizontalen Farbverlauf im Hintergrund hast geht es folgendermaßen:
Memory (!) Region allokieren die mind. Fonthöhe hat und so lang ist wie Du maximal unterstützen willst.
FontManager in diesen Memory Bereich malen lassen.
Dann nur noch in einer peridoisch aufrufenden Routine aus dieser Memory Region in den echten OSD kopieren und dabei bei der Quelle Startx und Stopx hochzählen.
So macht es derzeit iTiNa.
Geht natürlich auch ohne FontManager.[/quote]


Kannst Du den Teil von Deinem Source mal posten?
Ich würde sowas gerne in QuickPlay verwenden...

Gruß,
Gerti

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#35

Beitrag von FireBird » Do 24. Dez 2009, 15:49

Erdnussnase hat geschrieben:tFontDef sagt für jedes Zeichen die Höhe, Breite und wo das in den Daten zu finden ist ?

Ja.
Der Index tFontDef[Index] gibt dabei das eigentliche Zeichen an, also 0x31 für '1' ?
Nein, denn die nicht definierten Zeichen (0x00 bis inkl. 0x1f und 0x7f bis inkl. 0x9f) sind ausgespart.

Benutzeravatar
Erdnussnase
TAP-Guru
TAP-Guru
Beiträge: 7067
Registriert: Fr 9. Dez 2005, 12:01

AW: TMSOSDMenu & FontManagerTMS

#36

Beitrag von Erdnussnase » Do 24. Dez 2009, 17:03

[quote="FireBird"]Ja.

Nein, denn die nicht definierten Zeichen (0x00 bis inkl. 0x1f und 0x7f bis inkl. 0x9f) sind ausgespart.[/quote]


Ok, danke.

Was ist mit der Binärdatei ? Wäre für das Tool sehr leicht, ich müßte da erst einen (Primitiv)-Parser schreiben.
:type: ->.....
Kein Support oder Fragen zur Registrierung per PN !
http://www.iTiNa.de
?Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit,
aber bei dem Universum bin ich mir noch nicht ganz sicher.?
Albert Einstein

Benutzeravatar
Erdnussnase
TAP-Guru
TAP-Guru
Beiträge: 7067
Registriert: Fr 9. Dez 2005, 12:01

AW: TMSOSDMenu & FontManagerTMS

#37

Beitrag von Erdnussnase » Do 24. Dez 2009, 17:24

[quote="Gerti"]Hi!
Kannst Du den Teil von Deinem Source mal posten?
Ich würde sowas gerne in QuickPlay verwenden...
[/quote]


Ist anbei.
Erschreck aber nicht, ist mehr als man vermuten würde. Das liegt daran das ich Dir alle beteiligten Routinen mitgegeben habe. Da ist also noch das makieren bestimmter Wörter in einer anderen Farbe drin, die Unterstützung von mehreren gleichzeitigen Scrolltexten und alle Scrollmodi die iTiNa kann. Also auch die Zerlegung statt scrollen.
Das was Du nícht brauchst kannst Du rausschmießen. Wollte es nur nicht auf die Schnelle selbst tun, weil ich dann evtl etwas falsch gemacht hätte und das hätte Dich nur verwirrt.

Feel free to ask...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
:type: ->.....
Kein Support oder Fragen zur Registrierung per PN !
http://www.iTiNa.de
?Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit,
aber bei dem Universum bin ich mir noch nicht ganz sicher.?
Albert Einstein

Benutzeravatar
StevieC
Moderator & Design Guru
<font color=lue>Moderator</font> & <font color=
ed>Design Guru</font>
Beiträge: 13189
Registriert: Fr 9. Dez 2005, 11:24
Receivertyp: TMS SRP2100
Receiverfirmware: Immer die neueste ;-)
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#38

Beitrag von StevieC » Do 24. Dez 2009, 17:27

[quote="Gerti"]Hi!



Kannst Du den Teil von Deinem Source mal posten?
Ich würde sowas gerne in QuickPlay verwenden...

Gruß,
Gerti[/quote]


Oh, dann gibts wohl noch ne Weihnachtsüberraschung :-)

Gruss

StevieC


iTiNa TMS V0.94
CallMonitor V1.2RC
Mediaaspect V1.3
TMSDisplay V1.5

Benutzeravatar
Gerti
Nicht mehr bei Topfield-Europe
<b>Nicht mehr bei Topfield-Europe</b>
Beiträge: 15742
Registriert: Fr 9. Dez 2005, 00:16
Receivertyp: Vu+ Uno 4k
Wohnort: Hürth
Kontaktdaten:

AW: TMSOSDMenu & FontManagerTMS

#39

Beitrag von Gerti » Do 24. Dez 2009, 19:40

Hi!

Nicht mehr zu Weihnachten...vermutlich eher zwischen den Jahren (da muss ich Arbeiten) :-)

Gruß,
Gerti

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29038
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TMSOSDMenu & FontManagerTMS

#40

Beitrag von FireBird » Fr 25. Dez 2009, 10:35

[quote="Erdnussnase"]Was ist mit der Binärdatei ?[/quote]
Kein Problem, wird aber aus Zeitgründen ein wenig dauern.

Gesperrt

Zurück zu „SRP/CRP TAP-Bereich“