Erledigt: Zeilenumbrüche in erweiterten Infos

Zusatz-Programme für Receiver der 5000er und 6000er Serie.

Hier geht's um alles, was mit den TAP Anwendungen für den PVR5x00/6000 zu tun hat.
Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

Erledigt: Zeilenumbrüche in erweiterten Infos

#1

Beitrag von Elle4u » Sa 20. Mai 2006, 12:55

Hallo zusammen,

ich möchte mich nochmal dem "Problem" der Zeilenumbrüche bei den erweiterten Infos widmen.

Derzeit ist es so, daß ich darauf checke:

Code: Alles auswählen

*pNext != 0x0A
Aber nun bekomme ich manche Sachen nicht so schön umgebrochen wie es JAG inzwischen macht :hello: .



Weiß jemand auf welche Hex-Codes ich alles prüfen muß (evtl. kann ja JAG dazu einen Tipp geben)?

P.S. ImproBox zeigt es auch noch so an wie ich :wink:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Elle4u am Fr 28. Jul 2006, 12:30, insgesamt 1-mal geändert.
Gruß,
Elle4u

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#2

Beitrag von Elle4u » So 21. Mai 2006, 09:15

Kann mir hierzu keiner weiter helfen?
Gruß,
Elle4u

Philipswalther
Endstations-Guru
Endstations-Guru
Beiträge: 4784
Registriert: Fr 9. Dez 2005, 15:16

#3

Beitrag von Philipswalther » So 21. Mai 2006, 09:30

Hallo Elle4u

Schreibe doch mal eine PN an Jag die liest er vielleicht eher.

:thinker: Er hat bestimmt dieses Thema übersehen.

Jag war nehmlich gestern Nachmittag aktiv.

Gruß,
Jens

Benutzeravatar
SPACEart
Quelle des Wissens
Quelle des Wissens
Beiträge: 1360
Registriert: Di 2. Mai 2006, 15:35
Receivertyp: TF 5200 PVRc
Receiverfirmware: TF-NCPCd 3.93
Wohnort: Münster NRW | Unitymedia
Kontaktdaten:

#4

Beitrag von SPACEart » So 21. Mai 2006, 09:35

Elle4u hat geschrieben:Kann mir hierzu keiner weiter helfen?
Schon wieder dran am Programmieren?
Auch Frühaufsteher, was?
Dann gibts ja bestimmt schon bald die Beta20, so wie ich Dich kenne :)

Aber noch was anderes:
Ich habe mir gerade mal die Sache mit der Anzeige oben rechts im Filer angeschaut.
Also ich meine, da wo die Dateien (und Verzeichnisse) gezählt werden.

Eine Möglichkeit, mir anzeigen zu lassen, wie viele Dateien in einem Verzeichnis drin sind, wenn ich dessen Ordner nur selektiere, habe ich nicht, oder?
Also ich muss den Ordner auf tatsächlich öffnen, um zu sehen, wie viele Dateien da drin sind, richtig?
Wäre es nicht vielleicht eine Idee, noch eine drotte Anzeige einzublenden, die anzeigt, wie viele Dateien sich in einem Ordner befinden, wenn man diesen selektiert?

Und doch noch was:
Wenn man nun mit der roten Taste ein neues Verzeichn is anlegt, ist da ja als Vor-Eintrag immer "neues Verzeichnis" eingetragen.
Und mann muss dann immer mit dem Curser ganz nach rechts wandern und dann so lange die Löschen-Taste drücken, bis ales wech ist und man eben seinen eigenen Verzeichnisnamen eintragen kann.
Könnte man da nicht vielleicht statt "neues Verzeichnis" etwas kürzeres als Vor-Eintrag hinmachen, z.B. "Neu", oder vielleicht sogar einfach garnichts, so dass man sofort mit seinem eigenen Verzeichnisnamen lostoppen kann?

Und weiter gehts:
Ich hatte ein Verzeichnis mit dem Namen "Dokus / Magazine" angelegt.
Und als ich dann eine Sendung darein verschieben wollte, hat er gemeldet "Datei schon vorhanden" oder so.
Als ich dann den Schrägstrich auch dem Verzeichnisnamen gegen ein "und" getauscht habe, gings.
Ist das vielleicht noch ein kleiner Bug?

So, nun gibs erstmal lecker Frühstück :d rink:
Gruß
Ingo


Nachtrag:
Oh sorry, ich befinde mich ja hier im falschen Thread.
Kann das vielleicht einer von den Moderatoten in den Filler19-Thread verschieben?
SPACEart » Film- und Erotikmodelle: http://spaceart.de
Receiver: TF 5200 PVRc | TAPs: iTiNa

DeadBeef
TAP-Guru
TAP-Guru
Beiträge: 392
Registriert: So 25. Dez 2005, 11:27

#5

Beitrag von DeadBeef » So 21. Mai 2006, 09:43

Elle4u hat geschrieben:Kann mir hierzu keiner weiter helfen?
Mir fällt auf, daß in JAG's Darstellung die Sternchen durch "." ersetzt wurden. Vielleicht wird das als Zeilenumbruch interpretiert. Ansonsten mach mal einen Dump der erweiterten Infos auf die Platte und schau sie Dir im Hexeditor an. Beziehungsweise könnte man die Strings als Hexcodes auf die serielle Schnittstelle ausgeben.
Grüße
DeadBeef

DeadBeef's TAP Collection

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#6

Beitrag von Elle4u » So 21. Mai 2006, 10:06

DeadBeef hat geschrieben:Beziehungsweise könnte man die Strings als Hexcodes auf die serielle Schnittstelle ausgeben.
Das hatte ich gestern mal versucht.

Wie kann ich denn einen String (oder ein Zeichen) in Hex umwandeln? :oops:
Gruß,
Elle4u

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#7

Beitrag von Elle4u » So 21. Mai 2006, 10:09

Philipswalther hat geschrieben:Hallo Elle4u

Schreibe doch mal eine PN an Jag die liest er vielleicht eher.
Hab ich gemacht :wink:
Gruß,
Elle4u

DeadBeef
TAP-Guru
TAP-Guru
Beiträge: 392
Registriert: So 25. Dez 2005, 11:27

#8

Beitrag von DeadBeef » So 21. Mai 2006, 11:31

Elle4u hat geschrieben:Das hatte ich gestern mal versucht.

Wie kann ich denn einen String (oder ein Zeichen) in Hex umwandeln? :oops:
Versuch's mal damit:

Code: Alles auswählen

 
#include "string.h"
char string[] = "hello world!\r\n";
int length = strlen(string);
int i;
for(i = 0; i < length; i++)
{
  TAP_Print("%02x ", string[i]);
}
 
TAP_Print("\n");
Grüße
DeadBeef

DeadBeef's TAP Collection

Philipswalther
Endstations-Guru
Endstations-Guru
Beiträge: 4784
Registriert: Fr 9. Dez 2005, 15:16

#9

Beitrag von Philipswalther » So 21. Mai 2006, 11:39

Elle4u hat geschrieben:Hab ich gemacht :wink:
Viel Erfolg :wink:

Gruß,
Jens

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

#10

Beitrag von FireBird » So 21. Mai 2006, 12:00

Du musst auch auf 0x8a prüfen.

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#11

Beitrag von Elle4u » So 21. Mai 2006, 12:16

FireBird hat geschrieben:Du musst auch auf 0x8a prüfen.
Hm.

Sobald ich das schreibe:

Code: Alles auswählen

while( *pNext && !isspace(*pNext) && *pNext != 0x8A ) {
meldet der Compiler:

Code: Alles auswählen

warning: comparison is always true due to limited range of data type
Wenn ich wieder 0x0A nehme funktioniert es wieder...
Gruß,
Elle4u

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

#12

Beitrag von FireBird » So 21. Mai 2006, 12:22

Ist pNext ein "unsigned char"?

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#13

Beitrag von Elle4u » So 21. Mai 2006, 12:47

Code: Alles auswählen

	char *pNext = NULL;
Was das alle sso bedeutet verstehe ich nicht immer. :oops:
Diese Funktion z.B. ist von DeJe. :wink:
Gruß,
Elle4u

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#14

Beitrag von Elle4u » So 21. Mai 2006, 12:49

Hier mal komplett:

Code: Alles auswählen

void FileInfo_Init(void) {
	TYPE_File *openedFile;
	word extdescLength;
	int dwSize;
	char *pStart = NULL;
	char *pEnd = NULL;
	char *pNext = NULL;
	char InfoBuffer[10000];
	char cTemp;

	if (FileInfoShow == FALSE) {
		FileInfoShow = TRUE;
		if (!FileInfoTempRgn) {
			FileInfoTempRgn = TAP_Osd_Create(0, 0, FileInfo_W, FileInfo_H, 0, OSD_Flag_MemRgn);
		}
	}

	//Texte aufbereiten und einblenden
	memset( InfoBuffer, 0, sizeof(InfoBuffer) );

	openedFile = TAP_Hdd_Fopen(ItemList[ItemSelected[TempMode] - 1].File.name);
	switch(FilerMode)	{
		case Show_FileInfo_Info:
			TAP_Hdd_Fseek(openedFile, 362 + HeaderOffset, SEEK_SET);
			TAP_Hdd_Fread(&extdescLength, sizeof(extdescLength), 1, openedFile);
			extdescLength = min( extdescLength, 10000 );
			TAP_Hdd_Fseek(openedFile, 368 + HeaderOffset, SEEK_SET);
			TAP_Hdd_Fread(&InfoBuffer[1], extdescLength, 1, openedFile);
			break;
		case Show_FileInfo_Text:
			TAP_Hdd_Fread(&InfoBuffer[1], sizeof(InfoBuffer), 1, openedFile);
			break;
	}
	TAP_Hdd_Fclose(openedFile);

	pEnd = &InfoBuffer[10000];
	pStart = &InfoBuffer[1];
	while( *pStart && pStart < pEnd ){
		pNext = pStart;
		do{
			while( *pNext && !isspace(*pNext) && *pNext != 0x0A ) {
				pNext++;
			}
			cTemp = *pNext;
			*pNext = 0;
			if (!options.ExtInfoFontSize) {
				dwSize = TAP_Osd_GetW(pStart, 0, FNT_Size_1622); 
			} else {
				dwSize = TAP_Osd_GetW(pStart, 0, FNT_Size_1926); 
			}
			*pNext = cTemp;
			if( dwSize > (FileInfo_W-40) ) {
				pNext--;
				while( *pNext && !isspace(*pNext) ) {
					pNext--;
				}
				break;
			}
			if( dwSize == (FileInfo_W-40) ) {
				break;
			}
			if( *pNext == 0x0A || !*pNext ) {
				break;
			}
			pNext++;
		} while( TRUE );

		*pNext = 0;
		// insert a new text line to our list at the end
		if( !lInsert( pStart, strlen(pStart)+1, &pInfoList, PosLast ) ) {
			// Panik!
			FileInfo_Hide();
			FileInfo_Delete();
			return;
		}
		pStart = pNext+1;
	};
	// we start schowing info from the top
	pInfoTop = pInfoList;
	FileInfo_Show();
}
Gruß,
Elle4u

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

#15

Beitrag von FireBird » So 21. Mai 2006, 12:50

Das ist ein Pointer des Typs char. char ist aber Vorzeichenbehaftet und läuft von -128 bis 127. Damit funktioniert der Vergleich mit vorzeichenlosen Bytes größer 127 nicht. Wenn Du aber

Code: Alles auswählen

 unsigned char *pNext = NULL;
nimmst, dann liefert der Pointer Werte von 0 bis 255.

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#16

Beitrag von Elle4u » So 21. Mai 2006, 12:57

FireBird hat geschrieben:Das ist ein Pointer des Typs char. char ist aber Vorzeichenbehaftet und läuft von -128 bis 127. Damit funktioniert der Vergleich mit vorzeichenlosen Bytes größer 127 nicht. Wenn Du aber

Code: Alles auswählen

 unsigned char *pNext = NULL;
nimmst, dann liefert der Pointer Werte von 0 bis 255.
Cool!!!

Das war es :wink:

Du bist mein Held :D

:hello:
Gruß,
Elle4u

Benutzeravatar
Sigittarius-E
FIQMDTSSOOLUETSNAK
<span title=ForuminformationsquellemitdauertimeshiftschaltungoutingOberlehrerUndErfahrenerTratscherStatusNichtAussprechenKönner>FIQMDTSSOOLUETSNAK</span>
Beiträge: 8216
Registriert: Fr 9. Dez 2005, 18:49
Receivertyp: TF5kPVR/TF3kCIpro
Receiverfirmware: 13.9.'05 SHUFGmUx/19.4.'04
Wohnort: Österreich, NÖrdl.d.Donau

#17

Beitrag von Sigittarius-E » So 21. Mai 2006, 17:27

@ Elle4u:

JAG hat ja seine 2 Textviewer als Open Source in seinem JAG SDK Kit drinnen. Da findest du sicher genug Infos
Grüsse
Sigittarius-E
S-VHS ist nicht S-Video. So schreibt man: Standard, Satellit, wäre. TABs sind was für die Dritten.

TF5000PVR
HD:SP2514N
CAM:irdeto CW v3.15 ORF
Lüfter:Noiseblocker USF S1+Poti.
Verb.:[/b]Silex SX2kU2
TV:Toshiba 42"
Auto Start-Reihenf.: GMTTimerBug WA2|QT|IB Prem|StopExit|WSSKiller|JagEPG|Matrix Screensaver|PiP|DisplayTAP|wwww|reccopy|
TSBProtector v0.9.0|CheckAndCreate_EPGTimer v1.1
Manuell: SimpleCharEditor v3.09b,SetCryptFlag v0.3,exie v0.3,EBM v0.01

Jag
TAP-Guru
TAP-Guru
Beiträge: 212
Registriert: Mo 12. Dez 2005, 00:20

#18

Beitrag von Jag » Mo 22. Mai 2006, 19:40

Hi,

PN ist angekommen ;)
ich teste als Zeilenumbrüche auf '\n' (= 0x0a) und 0x8a
DeadBeef hat geschrieben:Mir fällt auf, daß in JAG's Darstellung die Sternchen durch "." ersetzt wurden. Vielleicht wird das als Zeilenumbruch interpretiert.
Die Sternchen werden nur durch "." ersetzt, wenn meine Textkompression aktiviert wird, da ich hier einen eigenen reduzierten Zeichensatz verwende!


Gruß
Jag

Benutzeravatar
Elle4u
TAP-Chirurg

<div title=Selbsternannter Allesknutscher>TAP-Chirurg</div>
Beiträge: 11971
Registriert: Fr 9. Dez 2005, 16:48
Receivertyp: SRP-2410 (2 TB)
Receiverfirmware: TF-BCPCE 1.11.00 (19.12.2013)
Wohnort: Osburg
Kontaktdaten:

#19

Beitrag von Elle4u » Mo 22. Mai 2006, 19:43

Jag hat geschrieben:Hi,

PN ist angekommen ;)
ich teste als Zeilenumbrüche auf '\n' (= 0x0a) und 0x8a
Ja, danke. Inzwischen funzt es einwandfrei :wink:

Jag hat geschrieben:Die Sternchen werden nur durch "." ersetzt, wenn meine Textkompression aktiviert wird, da ich hier einen eigenen reduzierten Zeichensatz verwende!
Ach so. Danke für die Erklärung :up:
Gruß,
Elle4u

Antworten

Zurück zu „TF 5x00/6000 PVR TAP“