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 19:08]
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 ====
Zeile 79: 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.
  
Zeile 88: Zeile 101:
 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, ​welche Interfaces verwendet werden und sortiert in Listen ein; Ruft IClass.Init auf mit PRecord(Anzeigename,​Version,​Application)Den füllt der Implementor und behält eine Referenz, um an IApplication ran zu kommen -> Jeder Implementor muss IClass implementieren+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