ValiantVision

ValiantVision - Projekt Logbuch

15.11.2004
  • Offizielle Einstellung des AmithlonTV Projektes.
03.12.2004
  • Erstes Zusammenstellen eines Katalogs von Treiberspezifikationen
16.01.2005
  • Erneute Überarbeitungen und Aufteilung in Bildverarbeitungs- und Hardwareseite.

    Die Chip-Treiber enthalten keinerlei Hardware oder Schnittstellen Kode. Die komplette Datenübertragung und Steuerung der Chips geschieht über eigene IO-Treiber. Dadurch kann ein und der selbe Chip-Treiber an I2C und an PCI arbeiten, ohne spezielle Anpassungen zu benötigen.

15.07.2005
  • Erstellung der Dateistrukturen und Verzeichnisse. Dazu wurde der Namen "TVInside" benutzt. Alternative Namen sind "SmartTV", "MultiTV" oder "MMTV". Weitere Ideen sind willkommen.
26.07.2005
  • Offizieller Entwicklungsstart. Erste Includes und Header Dateien mit den entsprechenden Chip Definitionen erstellt.
  • Das klingt nicht nur langweilig, sondern ist es auch. Bevor überhaupt etwas passiert müssen diverse Treiber geschrieben sein und auch noch funktionieren.

    Im einfachsten Fall müssen valiantvision.library, bt8x8.class und pci.class implementiert werden. Das wird die RoadMap der nächsten Zeit sein.

    Damit aber überhaupt was passiert, muß zumindest ein simpler Viewer geschrieben werden, der die Bilder auch anzeigen kann. Es ist leicht vorstellbar, das es nicht sehr motivierend ist, wenn man an Routinen schreibt, dessen Funktion man erst Wochen später feststellen kann.

  • Neuen Quellkode für die einfachste Implementierung von Libraries und Devices geschrieben, der die Entwicklung der einzelnen Klassentreiber massiv beschleunigt, da alle OS spezifischen Anpassungen und Routinen nicht jedesmal neu implementiert werden müssen.
  • Webseite mit allen derzeit verfügbaren Informationen aufgesetzt.
29.07.2005
  • pci.class geschrieben.
  • Weitere kleinere Details für die Treiber festgelegt.
  • Entwicklung von ValiantCreator begonnen. Diese Applikation wird später dazu Dienen mittels einer einfachen Oberfläche die Treiber zusammen zustecken und zu konfigurieren. Bis zur vollen Implementierung dient das Programm als Testplattform für die einzelnen Treiber.
30.07.2005
  • Weitere Anderungen an den Includes vorgenommen und weitere Definitionsstandards festgelegt, damit der Programmkode nachher auch übersichtlich und lesbar bleibt.
  • Weitere kleinere Details für die Treiber festgelegt.
  • Weitere Funktionen zur valiantvision.library hinzugefügt. Jetzt existieren Funktionen zum Laden und Speichern von kompletten TVCard-Konfigurationen. Außerdem wurden eine Menge Funktionen geschrieben, die die internen Strukturen und Verwaltungsdaten erstellen, initialisieren und freigeben.
31.07.2005
  • Die Bibliotheken und Klassen wurden im Zuge der neuen Standards leicht umbenannt.
  • Die FAQ Sektion wurde leicht verändert und weitere OS4 Informationen hinzugefügt.
02.08.2005
  • Locale Support zum neuen LibDev Header gefügt. Dadurch werden alle Bibliotheken und Klassen automatisch voll lokalisiert, was viel Zeit spart.
  • Die im Zuge der Änderungen auseinander gedrifteten Sourcen wurden wieder einheitlich kommentiert und zurecht gerückt. Dadurch sieht das alles gleich viel schöner aus. Diese Libs sollen für die nachfolgenden ja als Basis dienen und so bekommt man diese auch gleich ordentlich hin. Das mögen einige Leute als Zeitverschwenung ansehen, aber in Wahrheit spart das viel Zeit. Außerdem fallen beim Kommentieren und Zurechtschieben der einzelnen Blöcke immer mal wieder unschöne Fehler auf.
  • Erste Klassenansteuerungen in den ValiantCreator implementiert.
  • Die öffentlichen Strukturen wurden mit Markern versehen. Für jede Struktur wurde eine Routine geschrieben die den Inhalt auf Gültigkeit prüft. Diese Funktionen mit Fehlerausgabe wurden in die verschiedenen Routinen eingebaut. Dadurch wird verhindert, das falsche Pointer das komplette System zerlegen und zum Neustart zwingen. Fehlerhafte Strukturen werden ignoriert.

    Wieder mag dieser Schritt als unsinnige Zeitverschwendung oder gar als Schwachsinning angesehen werden. Aus eigener Erfahrung macht diese zusätzliche Sicherung viele gravierende Fehler zu Problemchen, die man sofort sieht und findet. In Verbindung mit dem normalen Resourcetracking wird die Software zur Laufzeit geprüft und überlebt nicht dreimal, weil die Werte zufällig mal paßten.

    Immerhin werden zahllose Treiber gleichzeitig mit diesen Daten arbeiten und eine verläßliche Verwaltung ist da unerläßlich.

  • Nur zur Information: Bisher wurde noch gar nichts getestet!
03.08.2005
  • 3 Stunden lang sehr viele sehr langweilige interne Routinen geschrieben, die alle später benötigt werden.

    Diese internen und externen Funktionen dienen zur Verwaltung, Ansteuerung und zur Vereinfachung externer Klassen.

04.08.2005
  • 2 weitere Stunden weitere Verbesserungen an den Routinen vorgenommen und den Debug-Output beschönigt.

  • Der ValiantCreator hat jetzt ein Fenster, das detailiert anzeigt, was der Treiber kann, wozu er da ist und wer ihn verbrochen hat.
  • Erster start des ValiantCreators zum Steigern der persönlichen Motivation. Ergebnis: BOOM - Systemcrash.
  • Fehler gesucht und nach wenigen Minuten gefunden. Da fehlt ein kleines Rufzeichen im Code. Erneuter Versuch und siehe da Das Fenster öffnet sich und lacht mir in deutscher Sprache ins Gesicht. Anwahl der einzigen Treiberklasse und ... es funktioniert. Die Klassenliste zeigt Informationen zum Treiber und das Infofenster zeigt die Eigenschaften. Bis auf Kleinigkeiten wie Gadget Anordnung und einen Fehler im Infofenster ein Erfolg. Sowohl die valiantvision.library, als auch die Klasse funktionieren soweit bereits benutzt.
  • Motivation erfolgreich gesteigert.
05.08.2005
  • Wieder 3 Stunden nur langweilige TAG-List Verwaltungen geschrieben und einige Argumente der valiantvision.library etwas abgeändert. Aber besser jetzt, als wenn ich später in dutzenden von Klassen und Programmen Änderungen machen muß.
  • Weitere Tags vordefiniert und die Header-Dateien etwas überarbeitet. Mehr Aufräumarbeiten werden in der nahen Zukunft von nöten sein, aber derzeit ist das ausreichend. Besser jetzt weniger ändern als später alles nochmal.
  • Etwas spaßigere Aufgaben durchgeführt: Weitere Implementierungen im ValiantCreators vorgenommen.

    Jetzt können schon Klassen ausgewählt und gelöscht werden. außerdem ist es bereits möglich die Schnittstellenklassen einzubinden. Unsinnige Treiberkombinationen werden automatisch vermieden. Damit sollte jeder, der die Chips auf seiner Karte kennt, diese auch zusammenstellen können.

07.08.2005
  • Offenes GUI system geschrieben, das es mit erlaubt sehr einfach die Oberflächen für die Klassen zu schreiben, ohne das ich jedes mal 70% kopieren muß. So bleibt alles sauber und ordentlich.
  • Unterstützung für diverse PCI Systeme in die PCI Klasse implementiert. Das hat leider auch sehr viel Zeit gekostet.
  • Lade- und Suchfunktion für die PCI ID Dateien geschrieben. Das ermöglicht später die Anzeige von Namen und Herstellern in der Oberfläche und den Listen.
  • PCI Klasse hat jetzt eine Konfigurationsoberfläche.
08.08.2005
  • Konfiguration der einzelnen Klassen eingebaut und die entsprechenden Funktionen der valiantvision.library überarbeitet.
  • Einige Lowlevel Funktionen mittels des ValiantCreators getestet und ggf. verbessert.
  • Neue Funktionen für Hot-Plug-Fähigkeit eingebaut. Das klingt wieder nach Zeugs, das man erst viel später braucht, aber das ist nicht so. Wenn eine Interface-Klasse keinen Kontakt zur Hardware mehr hat, dann muß sie in der Lage sein, die aufliegenden (Upstream) Treiber zu deaktivieren bis die Sache geklärt ist. Schon in der PCI Klasse werde ich das einbauen. Es ist z.B. nicht möglich on the fly das PCI system oder die PCI Karte selber zu wechseln, weil aufliegende Klassen davon ausgehen, das alles initialisiert ist. Daher werde diese abgeschaltet und nach dem Umstellen wieder aktiviert und somit neu initialisiert. Das passiert natürlich nur, wenn der Benutzer in der Oberfläche etwas ändert.

    Selbiges ist nötig, wenn man eine USB-TV Karte abziehen und später wieder anstecken würde.

  • Trotz der massiven Zeit, die ich am letzten Wochenende investiert habe, hinke ich schon 3 Tage hinter dem Zeitplan. Ich hoffe das sich die zusätzlichen Anstrengungen auf die restlichen Treiber auswirken und diese schnell, einfach und fehlerfrei implementiert werden könne.
10.08.2005
  • Die PCI Klasse ist jetzt fast fertig. Karten können gewählt werden und das PCI System kann eingestellt werden. Es werden noch einige Änderungen und Erweiterungen in der Zukunft nötig sein. Das meiste sind dabei aber kosmetische und optische Feinheiten. Daher ist erstmal der Basistreiber für Operationen mit OpenPci und PowerPci bestens geeignet.
  • Die globalen Klassen Quellkodes wurden nochmal überarbeitet, um den nächsten Schritt vorzubereiten: Die bt8x8 Klasse! Ja, ja, jaaaaaaa!
  • Es scheint so, als würde sich die intensive Implemtierung von Sicherheits- und Prüffunktionen auszahlen. Kein einziger Crash in zwei Tagen und das bei ständigem Benutzen sämtlicher Komponenten.
11.08.2005
  • Einige bekannte Fehler und ein paar Enforcerhits in der valiantvision.library entfernt.
  • Kleinere Fehler in der PCI-Klasse behoben.
  • Bt8x8 Klasse angefangen. Es hat knapp eine Minute gedauert aus der PCI Klasse ein leeres und funktionstüchtiges Klassenskelett zu basteln.
12.08.2005
  • Dank der zweiten Klasse habe ich den ValiantCreator erweitert. Die Schnittstellenauswahl wird jetzt auf die vorhandenen Schnittstellen beschränkt und die Bedienelemente werden sinnvoll abgeschaltet. Durch diese passive Intelligenz kann der Benutzer beim Zusammenstellen nichts falsch machen.
  • Fehler der Klassen werden jetzt direkt im Listview angezeigt. Dadurch ist dem Benutzer sofort ersichtlich, wo das Problem liegt.
  • Die Treiberkommunikation scheint zu funktionieren. Die BT8x8 Klasse hat nach der Konfiguration der Schnittstelle und dem Einstellen der PCI Klasse automatisch ihren BT878 Chip gefunden und Betriebsbereitschaft signalisiert.
  • Schweren Fehler im ValiantCreator entfernt, der das System beim Einladen von TVKarten-Profilen komplett zerlegt hat. Jetzt funktioniert alles tadellos und ein befürchteter Fehler in den komplizierten Verwaltungsroutinen kann erfreulicher Weise ausgeschlossen werden.
14.08.2005
  • Bild transport Mechanismus erdacht und in den bt8x8 Treiber und der valiantvision.library implementiert.
  • Programmkode zur RISC Erzeugung in die bt8x8 Klasse eingebaut und diverse Verwaltungsroutinen sowie BT8x8 Konfigurations GUI grob umrissen.
  • Einen schweren Fehler behoben, der ab und das runterfahren des GUI Tasks zum Absturz gebracht hat. Dieser Fehler hat mich Stunden gekostet. :(
21.08.2005
  • Projektname wurde geändert und die Seite entsprechend geupdatet.
  • Weitere bt8x8 interne Funktionen erzeugt.
30.08.2005
  • Nach einigen Hardwareproblemen, die in der letzten Woche zu unmotivierten Crashes des Systems führten, scheint meine Entwicklermaschine jetzt wieder stabil zu laufen.
  • Krzysztof Kurzawski hat eine eigene Yahoo Gruppe für ValiantVision und Themen rund um amiga und TV-Karten erstellt. Anmeldungen für diese Gruppe werden von ihm moderiert, was den Spamfluß reduzieren sollte.
  • Nachdem der blöde Fehler in den IO Makros gefunden war, konnte der RISC-Code des bt8x8 erfolgreich in Betrieb genommen werden.
  • Danke einer interne TV-Bild Klasse ist es jetzt möglich im Voreinsteller der bt8x8 Klasse das aktuelle Fernsehbild zu verfolgen. Sieht Cool aus. :)

    Nunja, der eigentliche Sinn ist es die Einstellungen der Konfiguration direkt kontrollieren zu können.

  • Einige Slider zur Bildqualitätssteuerung ins Fenster eingebaut.
07.09.2005
  • Der BT8x8 Programmkode wurde an einigen Stellen verbessert und bereinigt. Gleiches gilt für die GUI.
  • Mehr Konfigurationsmöglichkeiten zur BT8x8 Klasse hinzugefügt. Jetzt kann man auch die Eingänge vollständig an die TV-Karte anpassen.
  • Fehler in der Kalkulation der Bildqualitäts-Schieber behoben. Die wanderten ohne Anweisung langsam aber sicher in Richtung 100%. :)
09.09.2005
  • I2c Klasse implementiert und entsprechende i2c Funktionen in die bt8x8 Klasse eingebaut. Sowohl Hardware i2c als auch Software i2c mittels des kleinen EEProms auf der TV Karte auf Funktion geprüft.
  • Einige längst fällige Änderungen an den Includes und deren Namen vorgenommen. Dadurch wurden fast alle Dateien beeinflußt und mußten ebenfalls geändert werden. Dafür konnten die alten "Ich verweise nur auf ein andere Datei" Dateien endlich entsorgt werden und das Ganze sieht wieder viel sauberer aus.
  • Einige Funktionen wurden nicht korrekt übersetzt, wenn MOS-PPC als Ziel angegeben wurde. Jetzt laufen alle Dateien wieder ohne Fehler durch.
  • Die magischen 100 wurden erreicht. Ich habe über 100 Stunden damit verbracht diesen Kram zu erzeugen!
  • Das Bild der BT8x8 Klasse wurde geupdatet und es gibt jetzt auch ein Bild der i2c Seite.
10.09.2005
  • Kleinere Aufräumarbeiten an den Quellkodes. Ordnung muß sein, sonst wird es schnell unübersichtlich!
  • Der ValiantCreator zeigt jetzt auch den Typ der Klasse direkt an. Damit fällt eine Zuordnung leichter.
  • Fehler in der ValiantCreator Klassentypauswahl behoben. Einige Klassen wurden nicht angeboten, obwohl sie vom gewünschten Typ waren.
  • Die Tunerklasse steht in den Startlöchern. Sie meldet sich korrekt an und findet Dank der anscheinend fehlerfreien i2c Implementierung bereits ihren Baustein. Ich denke ich werde meinen alten A1200 reaktivieren um ein Antennensignal zu bekommen, da keines der derzeitigen vorhandenen Geräte so einen Ausgang hat.
13.09.2005
  • Kleinere Aufräumarbeiten an den Header-Dateien Quellkodes. Viele längst fällige Umbenennungen durchgeführt.
  • Die Tunerklasse unterstützt jetzt mehr als 40 Tuner und Dank der Oberfläche kann man jedes andere Derivat konfigurieren oder bestehende Tuner anpassen. Damit gibt es schon jetzt mehr Bausteintreiber als für AmithlonTV.
  • Ein Denkfehler in der Voreinstellungsverwaltung fordert jetzt sein Opfer. Die Routinen in den Klassen habe ich bereits an die neuen Funktionen angepaßt. Das Umstellen der valiantvision.library muß in kürze geschehen, da die alten Routinen nicht für die Switch-Klasse geeignet sind.
15.09.2005
  • Flexible und einfache Timerfunktionen in die valiantvision.library eingebaut, damit die Treibererzeugung noch einfacher wird.
  • Weitere Änderungen und Säuberungen.
  • Voreinstellungsverwaltung in der valiantvision.library umgestellt. Damit ist das alte Verfahren überflüssig und wurde aus den Klassen entfernt.
  • Die ToDo Liste, die leise und unkontrolliert anwuchs, wurde abgearbeitet. :) Nunja, 50% kleiner ist sie jetzt!
16.09.2005
  • Die bt8x8_i2c-Klasse wurde angepaßt und nutzt jetzt die neuen Timer-Funktionen der valiantvision.library.
  • Weitere Einträge der ToDo Liste bearbeitet. Nur noch 7 Punkte übrig.
  • Erster nativer MorphOS Test. Das komplette Treibersystem scheint zu funktionieren, aber beim Einbinden der einzelnen Klassen gibt es einen langen eingefrorenen Zustand. Nach langer Suche konnte ich den Fehler ausmachen. Ein TAG_DONE hat gefehlt und das Problem unter MorphOS verursacht, während es unter AOS 68K nicht auftrat. Ein gutes Beispiel dafür wie ein zweites System dabei hilft Fehler zu finden und den Kode zu verbessern. Ohne ein MorphOS System hätte ich das erst nach Wochen gefunden.

    Es läuft jetzt auch nativ ohne Probleme. Nunja, soweit ein testen ohne TV-Karte das ermöglichte.

  • Das Resourcetracking hat nicht funktioniert, da die Ausgaberoutinen nicht eingebunden waren. Daher sind die meisten Fehler und Warnungen einfach nicht erschienen. Nachdem beheben des Problems passierte auch nichts und ich mußte erst durch einen manuell eingebauten Fehler prüfen, ob es jetzt geht. Es ging und somit scheint das gesammte Treibersystem keinen Speicher und sonstigen Kram zu verlieren.
19.09.2005
  • bt8x8.class: Treiberstartkode gesäubert.
  • pci.class: Fehler im OpenPCI Teil behoben.
  • pci.class: Die Kartenliste zeigt nun Hersteller und Gerätenummern anstelle eines einfachen "Unbekannt".
  • Klassensystem: Der alte "ClassHasGUI" Tag wurde ersetzt. Jetzt wird er als "GUI ist verfügbar" behandelt, was mehr Sinn macht, weil die Verfügbarkeit sich je nach vorhandenen Resourcen ändern kann. Da der ValiantCreator als einziges Programm diesen Tag benutzt, kann damit einfach der Konfigurationsknopf ab- und eingeschaltet werden.
  • Klassensystem: Fehler behoben, der zum Knall führte, wenn man versuchte die Konfiguration ohne alle Schnittstellen zu öffnen.
  • pci.class: DMA Speicherallokierungen laufen jetzt über die valiantvision.library, wenn Amithlon benutzt wird. Dadurch kann das Resourcestracking die DMA Benutzung der einzelnen Klassen prüfen.
  • Ja, ich weiß! Wieder nichts Neues und keine neuen Funktionen. So ist das Leben. Es nützt ja auch nichts, wenn das Programm fertig ist und ich nur noch Fehlerbereinigungen machen muß, damit auch alle Funktionen komplett funktionieren.

    Damit sind alle "Ich weiß wie man das Dingen abschmieren läßt!" Stellen behoben und alles läuft wieder stabil. Genau das war das gesetzte Ziel.

19.09.2005
  • valiantvision.library: Es gab einen Stacküberlauf, durch rekursives abarbeiten des Klassenbaums beim schließen der Klassen. Bei einer Klasse, die sich selbst als Schnittstelle angegeben hatte, versuchte die Library, erst die Schnittstelle zu schließen. Die war aber wieder die Klasse und so wurde wieder versucht die Schnittstelle zu schließen und so weiter und so weiter....
20.09.2005
  • bt8x8.class: Mit der Implementierung des GPIO Treibers begonnen. Bedingt durch die komplizierten Voreinstellungen mit dynamischen Listen, wurden die einfachen Standard-Makros durch aufwendige Routinen ersetzt.
  • ValiantCreator: Multiple Schnittstellen wurden zwar unterstützt, konnten aber nicht eingestellt werden. Da die bt8x8.class aber als erste Klasse auch optional pio unterstützt, wurde dieser Fehler erst jetzt entdeckt.
27.09.2005
  • Habe mich am letzten Wochenende intensiv mit der MUI Klassen Programmierung beschäftigt. Das war langweilig und natürlich ziemlich unproduktiv, was ValiantVision betrifft, aber dafür habe ich jetzt eine kleine BitArray Klasse, die in der PIO Klasse eingesetzt werden wird.
  • Vielen Dank an Manuel Habermann für die zweite bt8x8 Karte zum Testen im Pegasos. :)
  • Es gab zwei Probleme auf dem Pegasos, die ohne Karte nicht zu testen waren. Das Öffnen der bt8x8 Klassenoberfläche für zum Einfrieren von ValiantVision. Selbiges passiert beim Hinzufügen der Tuner-Klasse. Nach einigem Probieren, bin ich auf die veraltete openpci.library gestoßen, die eine falsche Basisadresse der Karte lieferte. Nach dem Ersetzen durch eine neue Version lief der Kram wieder ohne Murren. Einzig das Bild in der bt8x8 Klasse erscheint nicht, aber das dürfte an dem nicht komplett fertigen und teilweise statischem Blitter-Kram liegen.
29.09.2005
  • bt8x8.class: Die alte Routine für die Bilddarstellung im Voreinstellungsfenster, die ich mehr oder weniger von AmithlonTV übernommen hatte, wurde entfernt und durch eine effizientere Methode ersetzt. Dadurch reduziert sich die vorher bei Cybergraphics benötigte Menge an Bilddaten um 50%. Das dürfte besonders Pegasos1 Benutzer freuen. Danke an Frank Mariak für den Tipp.
  • Weitere kleine Fehler behoben, die unter MOS Hits erzeugten.
  • Erneut einige Aufräumarbeiten. Viele Dateien wurden zusammengefaßt.
  • ValiantVision läuft jetzt perfekt unter MorphOS. Danke nochmal Manuel.
30.09.2005
  • bt8x8.class: Die Oberfläche der PIO Klasse und einige Basisfunktionen wurden implementiert.
  • Viele kleine Fehler in den Katalogen entfernt. Viele längst nicht mehr benötigte Debug-Ausgaben entfernt.
01.10.2005
  • bt8x8.class: Den PIO Standard und die restliche Implementierung vervollständigt. Nachdem ich noch einige kleine Fehler in den Routinen zum Speichern und Laden der Voreinstellungen behoben habe funktioniert das Ganze jetzt.
  • Damit wäre die Grundausstattung von ValiantVision fast komplett. Es fehlt noch der Treiber für den TDA Audiochip auf meiner Karte, aber der ist wirklich simpel. Außerdem müssen noch die Auswahl-Gadgets für die PIOs angeschlossen, bzw in die anderen Klassen eingebaut werden. Da muß ich mir aber noch was praktikables Ausdenken, da ich diese Gadgets nicht jedesmal neu schreiben, bzw. kopieren will. Wird wohl auf eine weitere MUI Custom Klasse rauslaufen.
02.10.2005
  • PopPIO MUI Klasse erstellt, damit die Klassen-Oberflächen ohne Aufwand sehr einfach eine PIO Auswahlmöglichkeit bieten können.
  • Fehlende optionale Schnittstellen, werden jetzt als Fehler im ValiantCreator angezeigt. Das macht es einfacher den Grund zu finden, warum einige Elemente der Klassen Benutzeroberfläche nicht verfügbar sind.
  • Einige kleine Korrekturen am BT8x8 Core. Außerdem wurde der neue PIO Kram in die BT8x8 unterklassen eingebaut. Es funktioniert jetzt wunderbar und ohne Probleme. Und ich habe Ton. :) Das alte AmithlonTV Tool GPIanO wurde unsichtbar in den PIO Editor integriert. Das macht die Sache einfacher und gegenüber dem Original sehr komfortabel.
  • bt8x8.class: Der TV-Tuner sendet bekanntermaßen kein korrektes Video-Signal, wenn kein Programm eingestellt ist. Das verursacht ein massives Auftreten von Interrupts, die auf dem Pegasos1 die Kiste nach ein paar Sekunden einfrieren lassen. Sieht so aus, als müßte ich mir da was einfallen lassen. Systemfreeze bei Senderausfall ist nicht so toll und macht einen Sendersuchlauf unmöglich.
  • bt8x8_pio.class: Die Klasse ist fertig für den Einsatz. Es fehlen noch einige Routinen, die z.b. für PIO Fernbedienungen benötigt werden, aber es wäre eine Zeitverschwendung diese Funktionen jetzt schon einzubauen, da ich an den tatsächlich benötigten Routinen vorbeientwickeln könnte und alles noch mal überarbeiten müßte. Dank des Treiberprinzips und der Klassen kann ich das später auch in ein paar Sekunden nachholen,
05.10.2005
  • bt8x8.class: Die Pixelformat und TV-Norm Tabellen wurden überarbeitet. Außerdem wurden diverse Routinen umbenannt und verschoben.
  • pci.class: Die Klasse erkennt jetzt wieder den Audio-Teil der BT8x8 Karten. Die Erkennung ist wohl durch Aufräumarbeiten kaputt gegangen.
07.10.2005
  • DOOOOOOOOOOHHHHHH!Smily
					  Unhappy Ich habe eben den Netzschalter des Pegasos1 gedrückt und neben einem Geräusch, das dem einer Fliege in einem dieser Blau leuchtenden Insektenvernichtern nicht unähnlich war, passierte nichts. Nachdem ich das Gehäuse geöffnet hatte konnte man das Problem im Netzteil Buchstäblich riechen. Ein Ersatznetzteil aus einem anderen Rechner brachte keine Änderung und ließ das Schlimmste vermuten. Sämtliche PCI Karten, Festplatte und das CDROM scheinen noch zu funktionieren, was ein zumindest kurzer Test im PC ergab. Aber selbst nur mit der Grafikkarte zeigt der Pegasos keine Reaktion mehr.

    Das ist genau der Grund, den ich oben gemeint habe, als ich über das Ausleihen von Hardware gesprochen habe. Und natürlich gehen nicht die Teile kaputt, die mir gehören, sondern nur das Teuerste von jemandem anders. Besten Dank auch!

    Es war geplant, dass ich den Pegasos zurück gebe, sobald die von Freescale/Genesi versprochene ODW eintrifft, da der Pegasos1 für derartig DMA lastige Projekte eh nur bedingt geeignet ist und ich gar nicht alle Teile testen können würde. Diesen Punkt habe ich auch schon mehrfach erreicht.

    Jetzt sind erstmal weitere MorphOS-Tests unmöglich und der Unterstützung für MorphOS basierte Software wurde bis auf weiteres eingestellt.

    Es ist wirklich traurig und war bestimmt keine Absicht. Ich muß jetzt erstmal sehen, wie ich das Problem mit dem Peg1 aus der Welt schaffe, bevor ich andere Dinge in Angriff nehmen kann.

10.10.2005
  • Nach einem ziemlich faulen Wochenende habe ich mich heute rangesetzt und eine Überraschung für das Amiga Meeting 2005 in Bad Bramstedt gebastelt.

    Was das ist, werde ich nicht sagen, aber es funktioniert und ist aus Amigasicht eine Weltpremiere.Smily Happy

    Wer wissen will, wovon ich rede, wird sich bis zur Mitte des Wochenendes gedulten müssen. Die Teilnehmer auf dem Meeting werden es als erstes erfahren.

    Wie auch immer ich hätte nicht gedacht den Kram so schnell zusammen bauen zu können. Es war wohl keine schlechte Idee das Wochenende an der PS2 zu verbringen um den Kopf frei zu bekommen und dank der vielen Vorbereitungen und dem Klau einiger vieler Routinen aus meinem Fundus und speziell der GUI, hat das ValiantVision Projekt wieder einen riesen Sprung nach vorne gemacht.

    Es ist noch eine Menge Feintuning nötig, aber das bekomme ich bis zum Wochenende noch hin.

12.10.2005
  • bt8x8.class: Die Einstellungen der Klasse wurden noch ein wenig umgebaut. Jetzt taucht der Tuner nicht mehr bei den Eingängen auf. Das macht mehr Sinn, außerdem ist die gesammte Funktion jetzt DAU sicher und wirklich einfach zu benutzen. Gut das ich noch keine Applikation gebastelt habe, dass hätte sonst sehr viel unnötige Arbeit bedeutet.
  • Die Funktion der Überraschung ist jetzt fast perfekt. Das Gröbste ist drin und funktioniert. Zwei oder drei Fehler sind noch zu beheben, aber im groben Ganzen ist das schon vorzeigbar.
13.10.2005
  • ValiantCreator: Hab den Fehler gefunden, der dazu führte, das von einer Klasse hinzugefügte Unterklassen automatisch in der Liste aktiviert wurden. Man hat mich das genervt.Smily Happy
  • Habe aktualisierte Webseiten erstellt, die ich am Samstag während des AmigaMeetings und nach der Präsentation hoch laden werde. Smily HappySmily Happy
15.10.2005
  • Es gibt eine neue Klasse!Smily Happy
  • saa713x.class: Der geheimnisvolle Treiber, den ich in der letzten Woche gebaut habe ist für Philips saa713x basierte TV-Karten, wie man sie heute fast ausschließlich findet. Der Philips Chip zeichnet sich besonders durch bessere Bildqualität und zwei Bildkanäle aus, die es ermöglichen ein frei skalierbares Bild (Preview) anzuzeigen, während im Hintergrund über den zweiten Kanal das Bild in voller Größe aufgezeichnet wird.

    Damit ist der Grundstein für digitales Fernsehen gelegt.

09.04.2006
  • Allen unkrenrufen zum Trotz, ist ValiantVision nicht tot.Smily Happy Es gab nur andere Dinge zu tun, wie den Peg1 durch einen Peg2 ersetzten, Endlich DSL bekommen, ...
  • Einige Aufräumarbeiten durchgeführt und das Resourcetracking für den Speicher komplett überarbeitet. Damit sollten dann auch einige seltsame Probleme und Abstürze im Debugmodus der Vergangenheit angehören.
02.05.2006
  • Das gesammte Projekt mit den aktuellen SDKs durchkompiliert und kleinere Korrekturen und Verbesserungen an den makefiles vorgenommen.
  • ValientView.mcc wurde grob umrissen. Als Basis für spätere Tests dient die TV-Applikation ValientView, die eine später eine MUI Version von TVWatch aus dem AmithlonTV Paket werden soll. Bis es so weit ist, wird es aber noch etwas dauern.
04.05.2006
  • valiantvision.library: Neue Funktionen für direkte MemoryPool Unterstützung. Diese werden die alten Funktionen ersetzen. Diese Änderung wurde dank des neuen Resourcetrackings möglich, da jetzt auch Pools überwacht und geprüft werden.
  • Alle Klassen wurden modifiziert, damit sie die neuen Pool-Funktionen benutzen.
12.05.2006
  • Vorbereitungen zur Implementierung der Applikationsseite in die bisherige API getroffen und einige Header-Dateien geschrieben und angepaßt.
13.05.2006
  • valiantvision.library: Die ersten neuen Applikationsfunktionen wurden eingebaut. Technisch bedingt sind sie aber noch nicht funktionsfähig und komplett ungetestet.
  • Heute sind die neuen TV-Karten angekommen. Neben 2 analogen Karten habe ich nun auch eine erste DVB-T Karte. Die Karten wurden kurz in mein Hardware-Testsystem gestopft und wurden alle sauber erkannt. Damit haben sich die 12,50 Euro wohl gelohnt!
  • ValientView.mcc: Die ersten der neuen Library-Funktionen werden jetzt auch von der Klasse benutzt. Damit ist auch sie nicht mehr lauffähig.Smily Happy
18.05.2006
  • Weitere Funktionen zur Frameverwaltung implementiert. Alles wie immer noch ungetestet.
22.05.2006
  • Grundlagen für die Framebearbeitung geschaffen und einige Dinge nochmal angepaßt.
23.05.2006
  • Frames können jetzt allokiert und freigegeben werden.
  • Einige Grafikfunktionen in die valiantvision.library geschoben. Diese Funktionen wurden von allen Videotreibern benutzt und so macht es Sinn diese in die Zentrale Bibliothek zu packen.
24.05.2006
  • Die neuen Bibliotheksfunktionen werden jetzt von den Klassen verwendet und wurden dort entfernt.
  • Tonnenweise FIXMEs behoben..Smily Happy
25.05.2006
  • Die neuen Frameroutinen erstmals in die bt8x8 Klasse eingebaut und getestet. Scheint zu funktionieren.Smily Happy
  • Jemand hat vergessen das automatische Laden der Kartenvoreinstellungen einzubauen. Bevor weitergemacht werden kann, muß das erstmal eingebaut werden.
  • Ich werde öfter nach neuen Bildern von ValiantVision gefragt. Nunja, es gibt keine! Das ist das Problem zwischen Anwender und Programmierer. Der Programmierer kann Monate lang programmieren und nach außen hin sieht man nichts. Am Ende kommt ein Knopf in die Oberfläche und der Anwender fragt sich "Das ist alles?". Tja, es gibt Dinge, die sind Innen komplizierter als außen. Wer es nicht glaubt kann sich ja mal in den Daumen schneiden.
26.05.2006
  • valiantvision.library: Einige fehlende Funktionen die für die Kartenverwaltung nötig sind, wurden implementiert.
  • ValiantCreator: Einstellungsmöglichkeiten für Kartenname, Hersteller und Author eingebaut.
27.05.2006
  • valiantvision.library: Automatisches Einladen der vordefinierten Kartendateien eingebaut.
31.05.2006
  • valiantvision.library: Fehler in den Kartenladefunktionen behoben.
  • ValiantCreater: Direkte Geräteauswahl eingebaut. Es sind aber noch weitere Änderungen nötig, damit der Kram wieder komplett funktioniert.
06.06.2006
  • debug: Ein neues Pattern im Debugparser erlaubt jetzt das verzögern des Programms an bestimmten stellen. Dadurch kann man den debug besser Lesen und auch ohne zweiten Rechner eine Crashposition leicht finden.
08.06.2006
  • valiantvision.library: Fehler in der Klassenverwaltung behoben. Dieser kleine Bastard hat mich Stunden gekostet und wäre ohne die neuen Debug-Routinen sehr umständlich zu finden gewesen.
  • ValiantCreater: Weitere Anpassungen vorgenommen. Das Freigeben und hinzufügen von Klassen geht jetzt wieder. Beide TV Karten werden eingebunden und können über die Einstellungen angepaßt werden.
01.09.2006
  • valiantvision.library: Weitere Routinen zur Frameverwaltung eingebaut. (Langweilig!)
02.09.2006
  • bt8x8.class: Interrupt und Frameverwaltung überarbeitet und auf den aktuellen Stand gebracht. Tonnen von kleineren Optimierenen im Kode.
03.09.2006
  • bt8x8.class: Die Klasseninterne Bildverarbeitung nutzt jetzt auch die neuen Frame-Funktionen. Ich überlege, ob ich nicht statt der internen Bilderklasse nicht gleich auf die externe MUI Klasse zugreifen soll, aber das bringt neue Probleme mit sich, weil z.B. die Klasse fehlt oder andere Resourcen nicht zur Verfügung stehen. Kann man später immer noch machen.
04.09.2006
  • bt8x8.class: Alles wieder zusammengesetzt. Bildverwaltung und Interrupt-Frame-Server arbeiten ohne Fehler. Frames werden wie gewünscht ausgegeben, aber das kann man derzeit nur in der Debugausgabe sehen. Es ist also in etwa so als würde man sich die Matix ansehen. Smily Happy
  • valiantview.mcc: Weitere Änderungen am Kern. Änderungen an der Applikationsschnittstelle nachgerüstet.
05.09.2006
  • Tja, die gute Nachricht: Die komplette Bildverwaltung funktioniert und die Daten werden an die Applikation geliefert. Es müssen zwar noch Kleinigkeiten nachgerüstet werden, aber das ist derzeit nicht wirklich wichtig.
  • Die schlechte Nachricht ist, dass ich einen schweren Fehler im Startup-Kram verbaut habe, der anscheinend aktiv wird, wenn sich die ValiantView.mcc Klasse anmeldet. Daraus resultiert, dass ich wieder kein Bild zu sehen bekomme und weiter mit frustrierenden Debugausgaben leben muß. Da ich im Startup-Teil sowieso noch Routinen und Funktionen nachrüsten muß, werde ich das heute machen. Die Chance ist groß, das ich dabei auf den Fehler stoße.Smily Unhappy
06.09.2006
  • Die kompletten Start und Beendungsroutinen wurden überarbeitet und berichtigt. Leider immer noch kein Zeichen des Speicherfehlers. Naja, wenigstens habe ich die Zeit sinnvoll genutzt.
  • Der dämliche Fehler wurde nach langem Suchen in der MUI Klasse selbst gefunden. Der Hook-Speicher wurde direkt nach dem einklinken in die valiantvision.library freigegeben, was zu einigen Problemen geführt hat. Wer hat sich das nur ausgedacht. Der noch fehlende Kram in der MUI Klasse wurde nachgerüstet und ich bekomme endlich ein Bild. Derzeit noch unskaliert (man sieht nur eine Ecke des Bildes), aber trotzdem sehr beeindruckend, wenn sich der Monitor in eine Videoleinwand mit 9 Bildschirmen verwandelt. Es gibt anscheinend noch einen Glitsch in der bt8x8 Klasse, die dazu führt, dass das Bild verfärbt und funky aussieht.Smily Happy

    Die Basisfunktionen der MUI Klasse sind nun implementiert und funktionieren. Jetzt werde ich wohl erst das neue Problem mit dem Krash-bug beheben. Derzeit muß man immer avail flush aufrufen, damit der Kram bei einem Neustart nicht explodiert. Komisch, sonst knallt es immer wenn man avail flush macht. Wie auch immer es scheint so als hätte ich das Problem heute erst eingebaut.

07.09.2006
  • Mist, Internet ist Tod! Also kein Ehrensenf, kein Seitenupdate und kein IRC. Mal sehen ob die das bis 16 Uhr hinbekommen.Smily Unhappy
  • Absturzfehler gefunden und umgangen. War in einem provisorischen Fix für den ValiantCreator und wurde tatsächlich durch die Änderungen im startup code der valiantvision.library getriggert. Eine richtige Lösung gibt es derzeit nicht, weil die dafür nötigen Funktionen noch nicht implementiert und/oder vollständig sind. Lösung des Programmierers : FIXME dranschreiben
  • Damit hier nicht gleich wieder schlechtes von mir gedacht wird, habe ich gleich drei FIXMEs nebst Workaround aus der bt8x8 Klasse entfernt, und durch deren korrekte Funktion mittels aktuellen Anpassungen hergestellt.
  • saa713x.class an die aktuellen Änderungen angepaßt. Läuft noch nicht wirklich rund. Naja, die Klasse hat auch noch nicht ganz die Qualität der bt8x8 Version. Das bekommen wir auch noch hin. Hab auch schon wieder einige Dinge gefunden, die man an der API noch ändern sollte, um sie flexibel zu halten. Aber das kann ich später auch noch machen. Derzeit gibt es ja nur zwei Videoklassen und die Sache ist überschaubar.
08.09.2006
  • Fehler beim Erzeugen der GUI-Task Prozesse behoben. Leider ist der gesuchte Fehler immer noch drin. Wo kommen die bloß alle her?
09.09.2006
  • Nachdem die Versionen seit zwei Tagen mehr Abstürzen als Funktionstüchtig sind und ich beim Beenden jedesmal mit diversen Speicherfehlern des Resourcetrackers überhäuft werde, habe ich mich dazu entschlossen auch die Start/Endroutinen der Klassen zu überarbeiten. Damit auch etwas sinnvolles dabei herum kam, habe ich mich entschlossen die immer wieder hinausgezögerte Umbenennung des Basisnamens der Klassen und der valiantvision.library durchzuführen. Die derzeit benutzten Varianten waren sehr AmithlonTV geprägt und hatten mit dem aktuellen ValiantVision nichts zu tun.

    Angefangen von den .sfd Dateien, über das Löschen der alten Headerdateien aus dem SDK (um nicht Fehler durch falsche Daten und vergessene #includes zu provozieren), bis hin zum "Find and Replace" aus dem Shell um die ganzen Quellkodes anzupassen wurde alles in einer knappen Stunde erledigt. Nach dem Beheben von ein paar Referenzen und dem Entfernen von einigen Warnungen kompilierte das ganze Dingen wieder durch.

    Es wurde wirklich jede Datei geändert. Sollte der Kram jetzt nicht mehr starten, dann würde könnte ich direkt das Backup wieder einspielen und von vorne anfangen. Ich schloss die Augen und startete den Kram. Kein Knall, kein Bumm und auch die bekannten Fehler konnte ich bisher nicht reproduzieren. Cool!Smily Happy

  • Habe den ValiantCreator überarbeitet und verbessert. Er wird aber noch etwas Zeit beanspruchen, um die restliche Fehler aus und neuen Funktionen ein zu bauen.
  • Es scheint als wäre noch ein böseer Fehler in der saa713x Klasse, da es nur mit dieser Klasse einige reproduzierbare Abstürze gibt. Mit der bt8x8 Klasse läuft alles ohne Fehler.
10.09.2006
  • ValiantCreator weiter überarbeitet. Dabei habe ich auch die Mehrkartenunterstützung vervollständigt und auch die Fehler in der Klassenverwaltung behoben, der dazu führte, dass in der Liste geschlossene Klassen der vorherigen Karte auftauchten.
  • Außerdem habe ich die saa713x Klasse repariert. Jetzt läuft das ganze erschreckend stabil. Selbst wenn man wie ein irrer auf den Knöpfen herumtrommelt, geht es.Smily Happy
11.09.2006
  • Weitere Änderungen an den externen Headerdateien vorgenommen. Etliche Dateien geteilt und umbenannt. Diverse Strukturen bekamen einen neuen Namen. Dementsprechend mußten natürlich auch die kompletten Quelldateien überarbeitet werden. Ich denke die Arbeit hat sich gelohnt. Es ist jetzt wieder alles ordentlich und sauber.
  • Neuer Header für die ValiantView.mcc geschrieben und benutzt. Erste kleine Parameter für die späteren Funktionen festgelegt und grob implementiert.
  • ValiantVision.mcc: Die Klasse öffnet jetzt mittels der neuen Funktionen korrekt einen CardHandle und zweit das laufende Bild an. Vorher ging das nur während der ValiantCreator lief. Derzeit aber immer noch unskaliert und mit dem falschen Pixelformat.
13.09.2006
  • Weitere Aufräumarbeiten an den Quellcodes.
  • valiantvision.library: Pixelformat fehler behoben. Jetzt erstrahlen die Bilder in Farbe und Bunt.
  • pci.class: Nachdem ich die Request() und Release() Funktionen von OpenPCI entfernt habe, funktioniert ValiantVision nun auch wieder unter MorphOS.Smily Happy
14.09.2006
  • Kleines Programm geschrieben, das das laufende Fernsehbild im Ambient Panel einblendet.Smily Happy
  • ValiantView.mcc: Overlay-Unterstützung eingebaut.
  • ValiantCreator: Das Geräteauswahlgadget wird jetzt bei Namensänderungen korrekt aktualisiert.
15.09.2006
  • ValiantView.mcc: Einige Routinen verbessert und den Tag-Setup berichtigt. Einige erste Funktionen verbessern auch ValiantTray, das Modul, das das Fernsehbild in das Ambient Panel einbindet. Skalierung eingebaut.
21.09.2006
  • Hab die letzten Tage wie blöd nach einem Fehler gesucht, der gar nicht in meinen Sourcen lag. Toll!
  • saa713x.class: Die Klasse ist jetzt wieder auf Höhe der Zeit und nutzt alle neuen Funktionen. Es gibt noch ein paar kleine Fehler, beim Init und beim Skalieren in den Voreinstellungen.
17.12.2006
  • Die Überarbeitung meiner clib hat die letzten Tage in Anspruch genommen. Es dauert etwa 2 Stunden, bis alle OS und Datenmodel-Versionen erzeugt sind, daher bin ich froh diesen längst fälligen Schritt jetzt hinter mir zu haben.

    Das Ganze war nötig um eine MorphOS native Version des kompletten ValiantVision Projekts möglich zu machen. Die bisherigen Versionen waren bis auf Kleinigkeiten nicht vollständig nativ.

18.12.2006
  • Der komplette Library-Programmkode wurde überarbeitet. Jetzt ist alles logischer und braucht deutlich weniger Objektdateien.
19.12.2006
  • Einige Fehler in den Schnittstellen der valiantvision.library behoben. Jetzt ist das Biest endlich komplett MorphOS nativ und funktioniert.Smily Happy
18.05.2007
  • Die Makefiles wurden bereinigt und der komplett Kram wurde an das kürzlich vorgenommene Compilerupdate angepaßt. Jetzt kompiliert es wieder rund.
19.05.2007
  • Sämliche SimpleCat Dateien wurden auf den neusten Stand gebracht, um die neuen Funktionen zu unterstützen. Außerdem wurden vom neuen SimpleCat viele Fehler in den Übersetzungen gefunden, die auch gleich mit behoben wurden.
  • ValiantCam: Mit ValiantCam ist die erste echte Applikation in Produktion. ValiantCam erlaubt es Fotoapparate oder einen Camcorder als WebCam zu nutzen, wenn diese über einen Videoausgang verfügen. Hauptgrund für dieses Tool ist aber die Implementierung der Applikationsschnittstelle in ValiantVision.
20.05.2007
  • ValiantCam: Jetzt können Texte in die von ValiantCam erzeugten bilder gerendert werden. Es gibt auch eine schöne GUI mit Preview. Das Commodity für den eigentlichen Einsatz fehlt aber noch.
  • Schon jetzt sind diverse Fehler aufgetreten, die ich in VV unbedingt noch beheben muß.
21.05.2007
  • ValiantCam: Einige Funktionen wurden bereinigt und überarbeitet. JPEG Unterstützung wurde hinzugefügt.