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
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
pr:mlib [2010/10/18 12:52]
martok mehr ideen
pr:mlib [2011/05/12 23:45]
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]])
 +
 +Bilder: [[pr:​mlib:​Bilder|Bilderseite]]
 +
 +[[pr:​mlib:​Todo|To-Do Liste]]
  
 ===== Features ===== ===== Features =====
Zeile 14: Zeile 18:
   * Automatischer Import, Tagging (EXIF auslesen)   * Automatischer Import, Tagging (EXIF auslesen)
   * Thumbnails für Video selber auswählbar,​ also "nimm Frame 42 als TN"   * Thumbnails für Video selber auswählbar,​ also "nimm Frame 42 als TN"
 +  * Multi-User fähig: gleichzeitig von mehren Rechnern/​Prozessen zugreifen
  
 ===== Systemanforderungen ===== ===== Systemanforderungen =====
Zeile 41: Zeile 46:
     * Thumbnails neu generieren     * Thumbnails neu generieren
     * mehreren Dateien ein Tag geben     * mehreren Dateien ein Tag geben
 +
 +==== Views ====
 +  * Listentypen
 +    * Liste ("​besseres dir")
 +    * Miniaturen
 +    * Miniaturen mit Details
 +    * Galerie (Miniaturen als Coverflow oben/links)
 +    * Einzelansicht (voriges/​nächstes links/​rechts klein)
 +  * Fenster
 +    * Suchergebnisse
 +    * Verzeichnis (Tree + Liste)
 +      * Verzeichnis durchsuchen/​aktualisieren
 +        * Merge neuer/​vorhandener Daten, basierend auf "​file"​-Tupel
 +  * Detailansicht
 +    * Tabs mit Daten, ähnlich ACDSee 5
 +    * Kann gedockt sein oder als Extrafenster
  
 ===== Tech Details/​Implementationsideen ===== ===== Tech Details/​Implementationsideen =====
-  * Flatfiles, 1 pro Datei (Shareaza) +  * FlatDB ​Key-Value-Store,​ Dateien ​indiziert ​über (Name, Pfad, ÄnderungsDatum,​ ErstellDatum,​ Größe, InhaltsHash)
-  * Key-Value-Store,​ Dateien ​indizier ​ü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)
-  ​Datenbankdatei ​(Achtungsiehe Datensicherheit!)+    ​<​code>​{"​file":​{"​name":​ "​abc.jpg","​path":"​foo\\bar\\baz","​mdate":"​1234567890","​cdate":"​1234567000","​size":"​555123","​sha1":"​abcdef12abcdef12abcdef12abcdef12"​}}</​code>​ 
 + 
 +==== Organisationsstruktur ==== 
 +  * Archivgruppe 
 +    * Bibliothek ​(enthält auch Voreinstellungen) ​ [[.:​mlib:​library.json]] 
 +      * Datenbank (FlatDB-Ordner) 
 +        * Dokumente: [[.:​mlib:​Metadaten]] 
 +    * Bibliothek ... 
 + 
 +==== Klassen ==== 
 +  * Application 
 +    * Interface zur Hauptanwendung (Logger etc) 
 +  * MetadataExtractor 
 +    * Bekommt DateiFüllt SuperObject 
 +    * //​Beispiele//:​ ExifReader, Thumbnail, VideoThumbnail,​ Geotagger 
 +  * MetadataViewer 
 +    * Zeigt einen Tab in Detailansicht an 
 +    * //​Beispiele//:​ ExifViewer, VideoThumbnailSetter,​ Geotagger 
 +  * Viewer 
 +    * Bekommt Datei und ein Handle, Malt ein Bild, erstellt Video-Player 
 +    * //​Beispiele//:​ ImageViewer,​ VideoPlayer 
 +Global immer nur ein Objekt, dessen Methoden aufgerufen werden (also SideEffect-frei sein müssen)
 +Alle Klassen sind auch extern ladbar, aber schon an Delphi gebunden. Keine besondere CallingConvention also. 
 + 
 +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) 
 + 
 +RegisterClass prüft, ob IMLibModule implementiert wird; Ruft IMLibModule.Init auf und übergibt IMLibApplication.
pr/mlib.txt · Zuletzt geändert: 2011/10/29 20:16 von martok