Seite 1 von 1
Wer hilft beim TAP: 'Keine Status-Kreise beim Zappen'
Verfasst: Mi 14. Dez 2005, 15:15
von kiss_me
Seit einigen Firmware-Versionen ist die einfache Status-Anzeige (Aufnahme/Widergabe über grüne und rote Kreise in der rechten oberen Ecke) erweitert worden, da sieht man jetzt in langgestreckten roten und grünen Feldern weitere Informationen, Sendungsnamen etc.. (Das ist kein TAP, sondern die original Topfield Firmware)
Beim Start/Ende von Aufnahmen und Widergabe ist das Klasse, da sieht man, was los ist. Beim Zappen nervt mich das aber gewaltig.
Ich würde gerne ein TAP schreiben, welches dazu führt, dass beim Zappen (einstellbar) nur die einfache Status-Anzeige (Kreise) oder gar keine Status-Anzeige erscheint.
Da ich keine TAP-Erfahrung habe, wäre ich für jeden Hinweis (Machbarkeit, Prinzipien, nützliche Befehle) dankbar.
Verfasst: Mi 14. Dez 2005, 17:18
von emarzinkowski
Herzlich Willkommen hier.
Ich habe mir das gestern auch nochmal angeschaut, da wir es ja schon im alten Board davon hatten
Ich hab Improbox drauf und nutze die PVR Infos aus diesem TAP.
Die Originalen sind unterdrückt. Beim Zappen erscheinen diese Infos dann nicht.
Also Improbox tut schon das, was du möchtest. (und natürlich noch viel mehr
)
Verfasst: Mi 14. Dez 2005, 17:32
von kiss_me
Wie gesagt, die Improbox entspricht leider nicht meinem persönlichen Geschmacksempfinden.
Dennoch danke für den Tip: Die Frage der Machbarkeit meines TAPs ist damit wohl positiv beantwortet.
Kann mir jemand weiterhelfen ?
Verfasst: Mi 14. Dez 2005, 20:12
von mc2
Hi!
Versuch es mal mit der API-Funktion:
Code: Alles auswählen
TAP_SysOsdControl
void TAP_SysOsdControl(TYPE_TapSysOsdld osdld, bool ctrl )
It controls the system OSD such as infobox, volume bar, PVR info bar and service status bar.
osdld : ID number of the specific system OSD object.
0 : SYSOSD_InfoBox Information Box
1 : SYSOSD_PvrInfo PVR Information Bar
2 : SYSOSD_VolumeBar Volume Bar
3 : SYSOSD_ServiceStatus Service Status Bar
ctrl : TRUE = show, FALSE = hide
Damit kannst Du die Anzeigen durch die Firmware ausblenden. Den Rest mußt Du halt dann noch dazubaun nach Bedarf.
Gruß
mc2
Verfasst: Do 15. Dez 2005, 13:15
von kiss_me
Hey, das ist aber nett
, das klingt gut. Weitere Details konnte ich so spontan nicht finden, ich vermute aber, dass ich mit
die Anzeige der Status-Kreise unterdrücken kann ?
Nun fehlt mir noch ein Konzept zur Erkennung, wann sie angezeigt werden sollen und wann nicht. Ich könnte natürlich auf Tastendrücke abfragen, aber die Tastenfunktionen ändern sich ja in Menüs etc.. Ich vermute, ich muss irgendwie anders ermitteln, ob gerade gezappt wurde, um nur dann die Darstellung der Kreise temporär auszuschalten. Irgendeine Idee ?
Verfasst: Do 15. Dez 2005, 14:34
von Gerti
Hi!
Abschalten kannst Du die Infos mit:
TAP_SysOsdControl( SYSOSD_PvrInfo, FALSE );
Aktivieren mit:
TAP_SysOsdControl( SYSOSD_PvrInfo, TRUE );
Ob gezappt wurde kannst Du herausbekommen, wenn Du das aktuelle Programm / Service speicherst und immer die gespeicherten Werte mit den aktuellen vergleichst...
Gruß,
Gerti
Verfasst: Do 15. Dez 2005, 14:42
von mega
Gerti hat geschrieben:Hi!
Abschalten kannst Du die Infos mit:
TAP_SysOsdControl( SYSOSD_PvrInfo, FALSE );
Aktivieren mit:
TAP_SysOsdControl( SYSOSD_PvrInfo, TRUE );
Wäre es damit nicht auch möglich, die Kreise immer sehen zu können?
Oder Erlaubt true nur die Anzeige, macht dies aber nicht selbst an?
Verfasst: Do 15. Dez 2005, 14:47
von eber
Grob müßte das etwa so aussehen:
#include "tap.h"
#define ID_ZAPCHECK 0x80004112
TAP_ID( ID_ZAPCHECK);
TAP_PROGRAM_NAME("Zapper");
TAP_AUTHOR_NAME("kiss_me");
TAP_DESCRIPTION("bla bla");
TAP_ETCINFO(__DATE__);
static int oldSvcType;
static int oldSvcNum;
static dword lastZapTime;
static void ZapCheck(){
int svcType;
int svcNum;
TAP_Channel_GetCurrent(&svcType,&svcNum);
if ((svcType!=oldSvcType) || (svcNum!=oldSvcNum)){
//Es wurde gezappt
svcType=oldSvcType;
svcNum=oldSvcNum;
lastZapTime=TAP_GetTick();
TAP_SysOsdControl( SYSOSD_PvrInfo, FALSE ); //OSD abschalten
} else {
if (TAP_GetTick()>lastZapTime+500){
//Letzter Zap ist ein Weilchen her (5sek), daher OSD wieder einschalten
TAP_SysOsdControl( SYSOSD_PvrInfo, TRUE );
}
}
}
extern dword TAP_EventHandler( word event, dword param1, dword param2 ){
if (event==EVT_IDLE){
ZapCheck();
}
return param1;
}
extern int TAP_Main(){
return 1;
}
Verfasst: So 18. Dez 2005, 16:46
von kiss_me
Wow, danke, ein TAP !
Ich wollte das gerade compilieren, habe Gertis Super-Anleitung gefunden und bin zu
http://www.topfield.co.kr/data/product/ ... or_tap.zip
bzw.
http://topfield.abock.de/tap/TF5000/tap5000.html
vorgedrungen, aber dort steht, dass das Compiler Environment wegen GPL-Verletzung nicht mehr angeboten werden darf.
Kann mir jemand sagen, ob "gcc_for_tap.zip" irgendwo gespiegelt existiert ?
Oder ist jemand so nett, ebers TAP für mich zu compilieren ?
Verfasst: So 18. Dez 2005, 17:49
von dvdbommel
gcc_for_tap.zip (ca. 25 MB )
Gruß
Verfasst: So 18. Dez 2005, 18:54
von eber
kiss_me hat geschrieben:Wow, danke, ein TAP !
...
Ich habe das zwar mal schnell entworfen aber nie getestet und noch nicht mal durch den Compiler gelassen. Wahrscheinlich muß im Detail noch korrigiert werden aber die grobe Struktur müßte passen.
Grüße
Eber
P.S:
Seit Du Dein Problem hier geschildert hast nervt mich die Einblendung inzwischen auch. Vorher war noch alles okay
Verfasst: So 18. Dez 2005, 19:14
von harbad
dvdbommel hat geschrieben:Hab dirs mal hochgeladen:
gcc_for_tap.zip (ca. 25 MB )
Gruß
ob das direkte verlinken eine so gute idee ist? immerhin hat sich der boardbetreiber etwas dabei gedacht dieses programm nicht mehr anzubieten.
Verfasst: So 18. Dez 2005, 19:42
von kiss_me
hab's runtergeladen, vielen Dank.
Verfasst: Fr 23. Dez 2005, 17:49
von kiss_me
Erst habe ich (oder der Compiler) TAP_SysOsdControl nicht gefunden, ich bin streng nach Gertis Anleitung vorgegangen, aber mit der aktuellen TAP.H ging's, download TAP API Version 1.21 unter:
http://topfield.co.kr/product_e/pr_firm ... all&seq=33
Verfasst: Sa 24. Dez 2005, 09:47
von kiss_me
Ergebnis:
- Quelltext ohne Änderung compilierbar.
- Status-Kreise werden konsequent unterdrückt. Immer.
Das ist mir sogar ganz angenehm. Auch beim Überblättern von Werbeblöcken will ich die Kreise gar nicht sehen. Bei Start und Ende einer Aufnahme vermisse ich sie etwas, aber was soll's, ist OK so. Danke Eber!
Verfasst: Sa 24. Dez 2005, 11:11
von mega
kiss_me hat geschrieben:Ergebnis:
- Quelltext ohne Änderung compilierbar.
- Status-Kreise werden konsequent unterdrückt. Immer.
Das ist mir sogar ganz angenehm. Auch beim Überblättern von Werbeblöcken will ich die Kreise gar nicht sehen. Bei Start und Ende einer Aufnahme vermisse ich sie etwas, aber was soll's, ist OK so. Danke Eber!
Hast du mal probiert, ob die Kreise mit
TAP_SysOsdControl( SYSOSD_PvrInfo, TRUE );
dauerhaft anbleiben?
Verfasst: Sa 24. Dez 2005, 13:08
von Gerti
Hi!
Kann ich beantworten: Das bleiben sie nicht...damit wird nur deren "normaler" Status wieder hergestellt.
Gruß,
Gerti