Benutzer-Werkzeuge

Webseiten-Werkzeuge


pr:mlib

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pr:mlib [2010/12/26 18:14]
martok
pr:mlib [2011/10/29 20:16]
martok [Medienbibliothek]
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.txt · Zuletzt geändert: 2011/10/29 20:16 von martok