Benutzer-Werkzeuge

Webseiten-Werkzeuge


pr:mlib

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pr:mlib [2010/12/26 18:14] martokpr:mlib [2011/10/29 20:16] (aktuell) – [Medienbibliothek] martok
Zeile 1: Zeile 1:
-====== Medienbibliothek/allgemeine Planung ======+====== Medienbibliothek ======
 (Original-Thread [[http://branch.delphi-forum.de/topic_MedienIndizierungsSoftware_101096.html|im DF]]) (Original-Thread [[http://branch.delphi-forum.de/topic_MedienIndizierungsSoftware_101096.html|im DF]])
 +
 +[[pr:mlib:Bilder|Bilderseite]]
 +
 +[[pr:mlib:HowTo|Wie mache ich... / Dokumentation]]
 +
 +[[pr:mlib:Todo|To-Do Liste]]
  
 ===== Features ===== ===== Features =====
Zeile 62: Zeile 68:
   * FlatDB Key-Value-Store, Dateien indiziert über (Name, Pfad, ÄnderungsDatum, ErstellDatum, Größe, InhaltsHash)   * FlatDB Key-Value-Store, Dateien indiziert über (Name, Pfad, ÄnderungsDatum, ErstellDatum, Größe, InhaltsHash)
     * wäre auch wiedererkennbar, wenn extern verändert (closest match)     * wäre auch wiedererkennbar, wenn extern verändert (closest match)
-    * <code>{"file":{"name": "abc.jpg","path":"foo\bar\baz","mdate":"1234567890","cdate":"1234567000","size":"555123","sha1":"abcdef12abcdef12abcdef12abcdef12"}}</code>+    * <code>{"file":{"name": "abc.jpg","path":"foo\\bar\\baz","mdate":"1234567890","cdate":"1234567000","size":"555123","sha1":"abcdef12abcdef12abcdef12abcdef12"}}</code>
  
 ==== Organisationsstruktur ==== ==== Organisationsstruktur ====
-  * Bibliothek (enthält auch Voreinstellungen)  //library.json// +  * Archivgruppe 
-    Programmeinstellungen (unabhängig von Daten//config.json// +    * Bibliothek (enthält auch Voreinstellungen)  [[.:mlib:library.json]] 
-    * Datenbank (FlatDB-Ordner, Name aus library.json)+      Datenbank (FlatDB-Ordner) 
 +        * Dokumente: [[.:mlib:Metadaten]] 
 +    * Bibliothek ...
  
 ==== Klassen ==== ==== Klassen ====
 +  * Application
 +    * Interface zur Hauptanwendung (Logger etc)
   * MetadataExtractor   * MetadataExtractor
     * Bekommt Datei, Füllt SuperObject     * Bekommt Datei, Füllt SuperObject
Zeile 77: Zeile 87:
     * //Beispiele//: ExifViewer, VideoThumbnailSetter, Geotagger     * //Beispiele//: ExifViewer, VideoThumbnailSetter, Geotagger
   * Viewer   * Viewer
-    * Bekommt Datei und ein Handle, Malt ein Bilderstellt Video-Player +    * Bekommt Datei, erzeugt daraus einen Renderer passend zum Datentyp 
-    * //Beispiele//: ImageViewer, VideoPlayer +    * RendererStill 
-Global immer nur ein Objekt, dessen Methoden aufgerufen werden (also SideEffect-frei sein müssen).+      * Stellt Bildausschnitte auf einem Canvas dar (ImageViewer
 +    * RendererOther 
 +      * bekommt ein WindowHandlekann darauf passende Controls erstellen (VideoPlayer
 + 
 +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. Alle Klassen sind auch extern ladbar, aber schon an Delphi gebunden. Keine besondere CallingConvention also.
-In Main: Initializatzion-> RegisterClass(TImplementor.Create) -> wird auf Interfaces geprüft und in passende Listen einsortiert.+ 
 +In Main: Initializatzion-> RegisterClass(TImplementor.Create) 
 Extern: DLL-Load-> DLL.Register(@RegisterFunction), DLL ruft RegisterFunction mit Instanzen von dem was sie hat auf. (BPL, nur besser) Extern: DLL-Load-> DLL.Register(@RegisterFunction), DLL ruft RegisterFunction mit Instanzen von dem was sie hat auf. (BPL, nur besser)
  
 +RegisterClass prüft, ob IMediaLibraryModule implementiert wird; Ruft IMediaLibraryModule.Init auf und übergibt IMediaLibraryApplication.
pr/mlib.1293383650.txt.gz · Zuletzt geändert: 2010/12/26 18:14 von martok