pr:mlib
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pr:mlib [2010/10/18 13:35] – multiuser martok | pr:mlib [2011/10/29 20:16] (aktuell) – [Medienbibliothek] martok | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Medienbibliothek/allgemeine Planung | + | ====== Medienbibliothek ====== |
(Original-Thread [[http:// | (Original-Thread [[http:// | ||
+ | |||
+ | [[pr: | ||
+ | |||
+ | [[pr: | ||
+ | |||
+ | [[pr: | ||
===== Features ===== | ===== Features ===== | ||
Zeile 42: | Zeile 48: | ||
* Thumbnails neu generieren | * Thumbnails neu generieren | ||
* mehreren Dateien ein Tag geben | * mehreren Dateien ein Tag geben | ||
+ | |||
+ | ==== Views ==== | ||
+ | * Listentypen | ||
+ | * Liste (" | ||
+ | * Miniaturen | ||
+ | * Miniaturen mit Details | ||
+ | * Galerie (Miniaturen als Coverflow oben/links) | ||
+ | * Einzelansicht (voriges/ | ||
+ | * Fenster | ||
+ | * Suchergebnisse | ||
+ | * Verzeichnis (Tree + Liste) | ||
+ | * Verzeichnis durchsuchen/ | ||
+ | * Merge neuer/ | ||
+ | * Detailansicht | ||
+ | * Tabs mit Daten, ähnlich ACDSee 5 | ||
+ | * Kann gedockt sein oder als Extrafenster | ||
===== Tech Details/ | ===== Tech Details/ | ||
- | * Flatfiles, 1 pro Datei (Shareaza) | + | * FlatDB |
- | * Key-Value-Store, | + | |
* wäre auch wiedererkennbar, | * wäre auch wiedererkennbar, | ||
- | | + | |
+ | |||
+ | ==== Organisationsstruktur ==== | ||
+ | * Archivgruppe | ||
+ | * Bibliothek | ||
+ | * Datenbank (FlatDB-Ordner) | ||
+ | * Dokumente: [[.: | ||
+ | * Bibliothek ... | ||
+ | |||
+ | ==== Klassen ==== | ||
+ | * Application | ||
+ | * Interface zur Hauptanwendung (Logger etc) | ||
+ | * MetadataExtractor | ||
+ | * Bekommt Datei, Füllt SuperObject | ||
+ | * // | ||
+ | * MetadataViewer | ||
+ | * Zeigt einen Tab in Detailansicht an | ||
+ | * // | ||
+ | * Viewer | ||
+ | * Bekommt Datei, erzeugt daraus einen Renderer passend zum Datentyp | ||
+ | * RendererStill | ||
+ | * Stellt Bildausschnitte auf einem Canvas dar (ImageViewer) | ||
+ | * RendererOther | ||
+ | * bekommt ein WindowHandle, | ||
+ | |||
+ | Global ist ein Plugin immer nur ein Objekt, dessen Methoden aufgerufen werden (also SideEffect-frei sein müssen). Es können aber beliebig viele Schnittstellen implementiert werden (Pflicht: IMediaLibraryModule) | ||
+ | |||
+ | Alle Klassen sind auch extern ladbar, aber schon an Delphi gebunden. Keine besondere CallingConvention also. | ||
+ | |||
+ | In Main: Initializatzion-> | ||
+ | |||
+ | Extern: DLL-Load-> | ||
+ | |||
+ | RegisterClass prüft, ob IMediaLibraryModule implementiert wird; Ruft IMediaLibraryModule.Init auf und übergibt IMediaLibraryApplication. |
pr/mlib.1287401759.txt.gz · Zuletzt geändert: 2010/10/18 13:35 von martok