FireBirdLib

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.
DeadBeef
TAP-Guru
TAP-Guru
Beiträge: 392
Registriert: So 25. Dez 2005, 11:27

AW: FireBirdLib

#21

Beitrag von DeadBeef » Fr 23. Feb 2007, 20:14

Den Inhalt der Funktion Shutdown() kann man wie folgt ersetzen:

Code: Alles auswählen

 
  CallBIOS (14, 1, [color=red]3[/color], 0, 0);
 

Dann spart man sich einen Suchlauf für EventDispatcherAddress.

Im allgemeinen finde ich die Suchmethode für FW-Funktionen etwas (echt-)zeitaufwendig. Daher habe ich meistens versucht, einen Einstieg über die TAP-API-Funktionen zu finden, um dann gezielt zu den gewünschten FW-Funktionen zu gelangen. Dieser Ansatz spart jede Menge Zeit beim Starten von TAPs.

Ein Beispiel:

Code: Alles auswählen

 
#define CMD_MASK 0xfc000000
#define JAL_CMD 0x0c000000
#define JR_CMD 0x03e00008
#define ABS_ADDR(x) (0x80000000 | (((dword)(x) & 0x03ffffff) << 2))
//-----------------------------------------------------------------------------
// getCallAddress() retrieves the address of the n-th function call found
// after the specified address.
dword *getCallAddress(dword *pData, int count)
{
  int i = 0, j = 0;
  dword *pAddr = NULL;
  if(count > 0)
  {
    while(pData[i] != JR_CMD)
    {
      if((pData[i] & CMD_MASK) == JAL_CMD)
      {
        j++;
        if(j == count)
        {
          // return the absolute address encoded in the opcode
          pAddr = (dword*)ABS_ADDR(pData[i]);
          break;
        }
      }
      i++;
    }
  }
  return pAddr;
}
 
//--------------------------------------------
// getCallBios(): This operation retrieves the address of the function
// queueing all I/O activities (BIOS).
dword getCallBios()
{
  // Find the FW function handling all BIOS operations
  // Follow the following call chain:
  //    TAP_ChannelSetSubtitleTrack -> 1st call -> 1st call -> ___1st call___
  dword *pCallBios = (dword*)TAP_Channel_SetSubtitleTrack;
 
  if((pCallBios = getCallAddress(pCallBios, 1)) == NULL)
    return 0;
  if((pCallBios = getCallAddress(pCallBios, 1)) == NULL)
    return 0;
 
  // the last call returns the requested address
  return (dword)getCallAddress(pCallBios, 1);
}
Grüße
DeadBeef

DeadBeef's TAP Collection

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

AW: FireBirdLib

#22

Beitrag von FireBird » Sa 24. Feb 2007, 12:43

Danke für den Input, das Shutdown werde ich so übernehmen.

Das JAL-Verfolgen hat den großen Nachteil, dass es keine Sicherheit gegenüber Veränderungen bietet. Wenn Topfield nur einen zusätzlichen Aufruf dazunimmt, biegt man einfach falsch ab, ohne das mitzubekommen. Und dann muss man für unterschiedliche Firmwareversionen eine Lookup-Table verwenden. Meine Methode ist um einiges langsamer, dafür verwende ich auch statische Variablen, damit die Suche nur ein einziges Mal durchlaufen muss.

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

AW: FireBirdLib

#23

Beitrag von DeadBeef » Sa 24. Feb 2007, 13:08

[quote=""FireBird""]Danke für den Input, das Shutdown werde ich so übernehmen.

Das JAL-Verfolgen hat den großen Nachteil, dass es keine Sicherheit gegenüber Veränderungen bietet. Wenn Topfield nur einen zusätzlichen Aufruf dazunimmt, biegt man einfach falsch ab, ohne das mitzubekommen. Und dann muss man für unterschiedliche Firmwareversionen eine Lookup-Table verwenden. Meine Methode ist um einiges langsamer, dafür verwende ich auch statische Variablen, damit die Suche nur ein einziges Mal durchlaufen muss.[/quote]
Das stimmt. Andererseits habe ich bis jetzt keine Änderungen der Aufrufketten in vielen für mich interessanten Funktionen beobachtet (März 2005 bis zu aktuellen FW-Versionen). Mann könnte auch eine hybride Suche benutzen: erst der Aufrufkette folgen und dann mit dem Fingerabdruck verifizieren.
Grüße
DeadBeef

DeadBeef's TAP Collection

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#24

Beitrag von ibbi » Sa 24. Feb 2007, 14:15

[quote=""DeadBeef""]Andererseits habe ich bis jetzt keine Änderungen der Aufrufketten in vielen für mich interessanten Funktionen beobachtet[/quote]

Was überhaupt nichts heißen will und keine Interpolation in die Zukunft gestattet. :wink:
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

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

AW: FireBirdLib

#25

Beitrag von Sigittarius-E » Sa 24. Feb 2007, 18:42

[quote=""ibbi""]Was überhaupt nichts heißen will und keine Interpolation in die Zukunft gestattet. :wink: [/quote]

ibbi, hattest du nicht mal eine Glaskugel? :wink:
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

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#26

Beitrag von ibbi » Mo 26. Feb 2007, 09:58

[quote=""Sigittarius-E""]ibbi, hattest du nicht mal eine Glaskugel? :wink: [/quote]

Und diese sagt mir, man soll keine Annahmen über die Zukunft anstellen. :wink:
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

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

AW: FireBirdLib

#27

Beitrag von DeadBeef » Mo 26. Feb 2007, 23:12

[quote=""ibbi""]Und diese sagt mir, man soll keine Annahmen über die Zukunft anstellen. :wink: [/quote]
Ohne Annahmen geht es genauso wenig wie ohne Kompromisse. Um Annahmen zu überprüfen, haben wir Betatester. :D
Grüße
DeadBeef

DeadBeef's TAP Collection

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

AW: FireBirdLib

#28

Beitrag von FireBird » Sa 3. Mär 2007, 12:49

Hi,

die Library wurde upgedatet. Neben einigen neuen Funktionen und Bugfixes besteht die wichtigste Neuerung in der Implementierung einer TAP zu TAP-Kommunikation. Dabei handelt es sich um eine erweiterte Version von asraels TAPCOM. Dank an ihn für die Bereitstellung seiner Library. Wir haben versucht, die Sache so einfach wie möglich halten. Ein HowTo gibt es in der beigepackten PDF (siehe auch Post #1). Mein Dank gilt auch meinem Qualitätsmanager ibbi und DeJe für die rege Teilnahme an der Entwicklung.

Jetzt werden nur mehr Server- und Client-TAPs benötigt. Um ein paar Leute zu motivieren, werde ich den WSSkiller demnächst auf TAPCOM umstellen. :twisted:

Eine englische Beschreibung reiche ich nach.

MfG. Alex

P.S.: [quote=""DeadBeef""]Den Inhalt der Funktion Shutdown() kann man wie folgt ersetzen:

Code: Alles auswählen

CallBIOS (14, 1, [color=red]3[/color], 0, 0);
[/quote]
Leider habe ich unvorsichtigerweise zu viel versprochen. Shutdown schaltet nicht nur den Topf ab, sondern kann auch Aufnahmen, Wiedergaben und die Audio- bzw. Videoausgabe stoppen.

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

AW: FireBirdLib

#29

Beitrag von DeadBeef » Sa 3. Mär 2007, 13:31

[quote=""FireBird""]P.S.:
Leider habe ich unvorsichtigerweise zu viel versprochen. Shutdown schaltet nicht nur den Topf ab, sondern kann auch Aufnahmen, Wiedergaben und die Audio- bzw. Videoausgabe stoppen.[/quote]Sorry, ich habe diese "kleine" Differenz zwischen den beiden Funktionen in meinem Posting nicht berücksichtigt. :oops:
Grüße
DeadBeef

DeadBeef's TAP Collection

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#30

Beitrag von ibbi » Sa 3. Mär 2007, 13:50

[quote=""FireBird""]Jetzt werden nur mehr Server- und Client-TAPs benötigt. Um ein paar Leute zu motivieren, werde ich den WSSkiller demnächst auf TAPCOM umstellen. :twisted:[/quote]

Wenn es soweit ist, stelle ich PiP natürlich darauf um. :D :
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

flechumer
Vollzeit-Guru
Vollzeit-Guru
Beiträge: 2455
Registriert: Sa 10. Dez 2005, 13:13
Wohnort: Emsland

AW: FireBirdLib

#31

Beitrag von flechumer » Sa 3. Mär 2007, 14:01

Hallo FireBird,

habe gerade mal mit dem neuen Release getestet und festgestellt, daß der Delete jetzt funktioniert. Wunderbar, danke! Beim ersten Delete bleibt allerdings eine temporäre Datei ~FireBirdLib.tmp~ zurück. Wenn ich die dann händisch lösche, bleibt beim nächsten Delete nichts zurück. Wenn Du das noch richten könntest?

Gruß

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

AW: FireBirdLib

#32

Beitrag von FireBird » Sa 3. Mär 2007, 14:03

Prüfe ich gleich.

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#33

Beitrag von ibbi » Sa 3. Mär 2007, 14:09

[quote=""flechumer""]Beim ersten Delete bleibt allerdings eine temporäre Datei ~FireBirdLib.tmp~ zurück.[/quote]

Das kann nur passieren, wenn TAP_Hdd_Rename nicht TRUE zurückliefert, aber trotzdem umbenennt.

Welchen Returncode erhältst Du in diesem Fall von TAP_Hdd_Delete?
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

Benutzeravatar
Happy
TAP-Guru
TAP-Guru
Beiträge: 5718
Registriert: Fr 9. Dez 2005, 09:32
Receivertyp: TF4000-5500-6000-TMS
Wohnort: bei Karlsruhe
Kontaktdaten:

AW: FireBirdLib

#34

Beitrag von Happy » Sa 3. Mär 2007, 14:10

Da hat jemand an meinem Code gebastelt :motz:
TAP_HDD_Rename liefert FALSE, wenn es geklappt hat :X
Das habe ich in Automove gefunden:

Code: Alles auswählen

res = !TAP_Hdd_Rename(filename,newname);  //liefert FALSE, wenns geklappt hat ???

Gruß,
Happy :wink:
:type: Meine TAPs und Tools

TF5500 PVR (Fw Jan. 2007 P)- 400GB Samsung - AC light 1.05 - Yamaha RX-V 1500
- LAN: Asus WL-500g Deluxe mit ftpd-topfield 0.7.4
TAPs: Quicktimer, Autodelete, Standby, 3PG, Automove, NiceDisplay, PowerRestore, WSS Killer, Eurostirf, Overfly
TV: Sony KDL-46W4500
TF6000 PVR (Fw Okt. 2008)- 160GB Samsung SV1604N
TAPs: iTina, Autodelete, Automove, Autoresume, NiceDisplay, WSS Killer
SRP-2100 (Fw Okt. 2009)
TAPs: SmartEPG, ChangePreview, Autodelete, Automove, BackupSettings,RescueRecs, MySkip, NiceDisplay

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#35

Beitrag von ibbi » Sa 3. Mär 2007, 14:13

[quote=""Happy""]Da hat jemand an meinem Code gebastelt :motz: [/quote]

Gebastelt würde ich es nicht nennen. Eher wasserabgedichtet. :D :
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

Benutzeravatar
Happy
TAP-Guru
TAP-Guru
Beiträge: 5718
Registriert: Fr 9. Dez 2005, 09:32
Receivertyp: TF4000-5500-6000-TMS
Wohnort: bei Karlsruhe
Kontaktdaten:

AW: FireBirdLib

#36

Beitrag von Happy » Sa 3. Mär 2007, 14:14

[quote=""ibbi""]Gebastelt würde ich es nicht nennen. Eher wasserabgedichtet. :D:[/quote]
Stimmt schon, so gehört es sich eigentlich :up:
:type: Meine TAPs und Tools

TF5500 PVR (Fw Jan. 2007 P)- 400GB Samsung - AC light 1.05 - Yamaha RX-V 1500
- LAN: Asus WL-500g Deluxe mit ftpd-topfield 0.7.4
TAPs: Quicktimer, Autodelete, Standby, 3PG, Automove, NiceDisplay, PowerRestore, WSS Killer, Eurostirf, Overfly
TV: Sony KDL-46W4500
TF6000 PVR (Fw Okt. 2008)- 160GB Samsung SV1604N
TAPs: iTina, Autodelete, Automove, Autoresume, NiceDisplay, WSS Killer
SRP-2100 (Fw Okt. 2009)
TAPs: SmartEPG, ChangePreview, Autodelete, Automove, BackupSettings,RescueRecs, MySkip, NiceDisplay

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#37

Beitrag von ibbi » Sa 3. Mär 2007, 14:18

[quote=""Happy""]TAP_HDD_Rename liefert FALSE, wenn es geklappt hat :X [/quote]

Stimmt! :shock:

Ich hoffe, es macht mir niemand zum Vorwurf, dass ich der Topfield-Doku traue und nicht so denken kann, wie ein Topfield-Entwickler. :X

Also:

Code: Alles auswählen

if ([b][color=Red]![/color][/b]TAP_Hdd_Rename(name, "~FireBirdLib.tmp~")) return real_TAP_Hdd_Delete("~FireBirdLib.tmp~");
EDIT: Würde flechumer Rückgabewerte beachten :u: , hätte es in seinem Programm eine entsprechende Fehlermeldung gegeben. :wink:
Zuletzt geändert von ibbi am Sa 3. Mär 2007, 14:22, insgesamt 1-mal geändert.
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

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

AW: FireBirdLib

#38

Beitrag von FireBird » Sa 3. Mär 2007, 14:26

Ab jetzt gibt es die Lib sogar mit ! und der Preis hat sich sensationeller Weise nicht geändert. :D :

flechumer
Vollzeit-Guru
Vollzeit-Guru
Beiträge: 2455
Registriert: Sa 10. Dez 2005, 13:13
Wohnort: Emsland

AW: FireBirdLib

#39

Beitrag von flechumer » Sa 3. Mär 2007, 14:29

[quote=""ibbi""]Welchen Returncode erhältst Du in diesem Fall von TAP_Hdd_Delete?[/quote]
65034

Benutzeravatar
ibbi
Moderierter Ignorator Bitteschöööön!
Moderierter Ignorator  <font color=#E9E9E9>Bitteschöööön!</font>
Beiträge: 7110
Registriert: Fr 9. Dez 2005, 12:49
Receivertyp: TF5000PVR • SRP-2401CI+ Eco
Receiverfirmware: Sep 2005 PHTF • Jan 2015

AW: FireBirdLib

#40

Beitrag von ibbi » Sa 3. Mär 2007, 14:29

[quote=""FireBird""]Ab jetzt gibt es die Lib sogar mit ! und der Preis hat sich sensationeller Weise nicht geändert. :D:[/quote]

Und wer ersetzt mir den Freizeit-Ausfall? Von der Aldarinsche Denk-Pauschale gar nicht zu sprechen. :D :
Power Restore 0.8 | PiP 1.2 | 1.1v | QuickTimer 1.0.3 (IB) | TF5000 Display 1.53 | dbPlay 1.2 | Auto Resume 1.30 | IdleHdd 1.0 | EPPG 2.0 | WWWW 0.1b
(Kanalarbeiter 0.9, RecRepair 0.4, ScanDisk 1.4, ScreenCapture with OSD 3.1)


Power Restore 0.8 | EasyTimer 1.0 | EPPG 2.0 | 1.1v
(telnetd 1.0, TMSRemote 4.6)

Antworten

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