
Screenshot MOVIEMAT.EXE
Als Programmierumgebung habe ich das C++ Visual Studio 6.0 benutzt.
Visual C-Projekt / Sourcen als ZIP
EXE-File als ZIP
Klassen
CMemDC Klasse für flickerfree drawing von Keith Rule, siehe codeproject
CMatrixEdit Die Pixeleditor-Fläche
CHexFormats Schreiben von Intel-Hex-Dateien
CMMFormat Lesen/Schreiben von Moviematrix-Dateien (mit X- und Y-Grössenangabe, Framezahl etc.)
CMovieMatDlg Die Dialog-Oberfläche... und damit die Funktionalität
CMoviematApp Die Basis der MFC-Dialog-Applikation
CEinstellungen Der Einstellungen-Dialog (Höhe, Breite, etc.)
Limits
- 1024 Frames maximal per define
Todo bzw. Bugs
- Die gröbsten Fehler werden schon abgefangen, aber da ist sicher noch mehr möglich, insbesondere beim Datei Laden/Speichern
- Ein Resize der MatrixEdit-Fläche wäre toll, so daß das Seitenverhältnis der Pixel immer gleich bleibt, wenn man die Seitenlängen ändert.
- ...
Edit-Kontrolle
Edit-Fläche Linke Maustatste Bit setzen/LED an bzw. Helligkeit toggeln, rechte Maustaste Bit zurücksetzen / LED aus
U, D, <, > Shiften des Bitmusters up, down, links, rechts
COPY Kopiert den Inhalt des aktuellen Frames in einen Puffer
PASTE Fügt den Inhalt des Puffers in den aktuellen Frame ein
Frame-Kontrolle
|<- und ->| Sprung zum ersten / letzen Frame
< und > Einen Frame vor/zurück
New Fügt einen leeren Frame hinter dem aktuellen Frame ein
Del Löscht den aktuellen Frame
Play Startet die Wiedergabe der aktuellen Frame-Liste
Stop Stoppt die Wiedergabe
Buttons
Laden Laden von MMF-Dateien
Speichern Speichern aller Frames und der Einstellungen in einer MMF-Datei
Einstellungen Einstellen von Höhe, Breite, Bits/Pixel, etc
Export Export aller Frames als INTEL-HEX-Datei, 8 Byte pro Zeile
Beenden Moviemat beenden
Interna
Die Frame-Inhalte werden in dynamisch allokierten Speicherblöcken abgelegt. Die Pointer auf diese Speicherblöcke
werden in der Liste m_aFrameList verwaltet. m_LastEntry enthält den Index des letzten Frames, m_ActFrame den Index
des aktuell angezeigten. Die Struktu m_stInfo enthaelt alle Daten, die mit dem Film gespeichert werden.
Die Methoden der Klassen sind eigentlich selbsterklärend, nur das Speicher-Layout der CMatrixedit-Klasse ist
erklärungsbedürftig:

Versionsliste:
- Version 1.0
Erstausgabe
- Version 1.01
-Framekontroll-Buttons de/aktivieren je nach Frameposition
-Dateinamen in Fenstertitel zeigen
-Mehr Kontrollen beim Dateilesen
|