diff --git a/docs/ThumbnailersCacheFormat.txt b/docs/ThumbnailersCacheFormat.txt deleted file mode 100644 index e72cecc079b66a67ad2f9b0262f40b61ebf6f072..0000000000000000000000000000000000000000 --- a/docs/ThumbnailersCacheFormat.txt +++ /dev/null @@ -1,111 +0,0 @@ -The Thumbnailers Cache Format -============================= - -Date: 2006-08-08 -Author: Benedikt Meurer <benny@xfce.org> -Revision: $Rev$ - - -Motivation ----------- - -In order to avoid a dependency of libthunar-vfs-1.so on GConf and in order to -stay flexible wrt thumbnailers w/o adding more overhead to libthunar-vfs-1.so -(and thereby to all applications using the library), the available thumbnailers -for the ThunarVfsThumbFactory are determined by a separate utility program, -named thunar-vfs-update-thumbnailers-cache-1, which is installed to the -$(libexecdir). - -This program generates a thumbnailers.cache file in the users home directory, -in $XDG_CACHE_HOME/Thunar/ (usually ~/.cache/Thunar/), which is a binary file -that lists all mime types for a thumbnailer is available. For each thumbnailer -the command required to run it is specified, where the command can contain -various special parameters that are substituted when the command is run. - -This thumbnailers.cache is generated initially when the thumbnail factory is -loaded and no cache file is present, and afterwards the utility is run every -5 minutes to check if new thumbnailers are available (or existing thumbnailers -have been removed). - - -Special Thumbnailer Parameters ------------------------------- - -The following special parameters are supported in thumbnailer commands and -will be substituted when ThunarVfsThumbFactory runs the command: - - %u The URL of the input file for which to create a thumbnail. - %i The absolute path to the input file. - %o The absolute path to the output file where to save the generated - thumbnail to (as PNG image). - %s The desired size of the thumbnail in pixel (usually 128 or 256). - %% Will be substituted with a single '%'. - - -The thunar-vfs-update-thumbnailers-cache-1 Utility --------------------------------------------------- - -When compiled with support for GConf, the utility will first query all available -thumbnailers that have been registered with GConf. Otherwise, the utility checks -for several well-known thumbnailers (i.e. evince-thumbnailer, ...) and adds them -if the programs were found on the system. - -Afterwards the available gdk-pixbuf formats will be queried and for each of the -returned mime types, the thunar-vfs-pixbuf-thumbnailer-1 will be registered. If -any such mime type was already registered by a thumbnailer queried from the -GConf database, the pixbuf thumbnailer will overwrite the previously registered -one. - -The last step is to add all internal thumbnails (again overwriting previously -registered thumbnailers). - - -The thumbnailers.cache File Format ----------------------------------- - -The thumbnailers.cache file is a binary file, that maps mime types to thumbnai- -ler commands. The file format is designed to be mmap()ed into processes using -the thumbnailers.cache. All numbers are 32bit integers in big endian. All -strings are zero-terminated ASCII strings. - -The current version of the file format is 1.0. Newer versions will either be -backward compatible with the current format or use a new file name. - -The file starts with a header that contains the file format version, the number -of mime types stored in the file and the offset of the thumbnailers table: - - Bits Meaning - ---- ------- - - 32 FORMAT MAJOR VERSION (currently 1) - 32 FORMAT MINOR VERSION (currently 0) - 32 NUMER OF MIME TYPES (and thereby NUMBER OF THUMBNAILERS) - 32 OFFSET OF THE THUMBNAILERS TABLE - -Next comes the table of mime types, where each entry contains the length of the -mime type in bytes (excluding the trailing zero) and the offset (relative to the -cache file start) where the name of the mime type is stored. The mime types are -sorted by strlen() and strcmp(), which means that binary search can be used to -find a mime type, trying the length first (so string comparisons are reduced to -a minimum to make the search cache-friendly) and performing a string comparison -when the lengths are equal (see thunar_vfs_thumb_factory_cache_lookup() for an -example implementation of the search). - - Bits Meaning - ---- ------- - - 32 LENGTH OF MIME TYPE STRING - 32 OFFSET OF MIME TYPE STRING - -Once you successfully detected a mime type, you can use the index of the mime -type in the table above to locate the thumbnailer command for this mime type. -Therefore determine the OFFSET OF THE THUMBNAILERS TABLE (at offset 12 in the -cache) and look at that offset plus the index * 4 for the offset of the thumb- -nailer command string. - - Bits Meaning - ---- ------- - 32 OFFSET OF THUMBNAILER STRING - -Afterwards substitute the special parameters as mentioned in "Special Thumbnai- -ler Parameters" above.