Editing Mime Types/Category

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
-
#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Application_Development/MIME_type_mapping#New_MIME_type_with_OSSO_category_extension]]
+
== The hildon-mime-category API ==
 +
 
 +
This document describes how the hildon_mime_category_* API works in the system.
 +
 
 +
Note: This document assumes familiarity with adding MIME types to the system, using the [http://standards.freedesktop.org/shared-mime-info-spec/latest/ shared-mime-info specification].
 +
 
 +
The utility that is used when working with MIME categories is:
 +
 
 +
hildon-update-category-database
 +
 
 +
== Categories ==
 +
 
 +
The platform has a notion of file categories for the user's data files. The available categories are:
 +
 
 +
* Bookmarks
 +
* Contacts
 +
* Documents
 +
* Emails
 +
* Images
 +
* Audio
 +
* Video
 +
* Other
 +
 
 +
A mapping is setup between categories and MIME types, so that the MIME type of a file decides which category it is in. The MIME type setup is handled by the shared-mime-info infrastructure, and the category information is added to that same framework.
 +
 
 +
There is also a category API in libhildonmime that is used to get the category of a certain MIME type and a list of MIME types in a certain category.
 +
 
 +
See the API documentation for libhildonmime for more details on this.
 +
 
 +
 
 +
== Adding mappings ==
 +
 
 +
Adding a mapping between a category and a number of MIME types is done much like adding or editing the supported MIME types in the system.
 +
 
 +
Each application or library that adds a category mapping should add a file in:
 +
 
 +
  $(prefix)/share/mime/packages/
 +
 
 +
The file format is the same XML format used for MIME types, with an added tag "<osso:category>". An example follows:
 +
 
 +
 
 +
  <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"
 +
            xmlns:osso="http://nokia.com/osso/mime-categories">
 +
    <mime-type type="application/pdf">
 +
      <osso:category name="documents"/>
 +
    </mime-type>
 +
    <mime-type type="image/jpeg">
 +
      <osso:category name="images"/>
 +
    </mime-type>
 +
    <mime-type type="image/png">
 +
      <osso:category name="images"/>
 +
    </mime-type>
 +
  </mime-info>
 +
 
 +
 
 +
The example sets up three mappings, between PDF files and the Document category, and between JPEG and PNG images and the Images category.
 +
 
 +
The valid category names are: audio, bookmarks, contacts, documents, emails, images, video
 +
 
 +
MIME types that does not have a category set up automatically are treated as members in the category Other.
 +
 
 +
If the application also adds the MIME type in question, the MIME information and category information can be put in the same file:
 +
 
 +
    <mime-type type="image/png">
 +
      <comment>PNG image</comment>
 +
      <magic priority="50">
 +
        <match value="\x89PNG" type="string" offset="0"/>
 +
      </magic>
 +
      <glob pattern="*.png"/>
 +
      <osso:category name="images"/>
 +
    </mime-type>
 +
 
 +
 
 +
As when adding MIME types, a special program needs to be run to update
 +
the MIME information, for example:
 +
 
 +
  hildon-update-category-database /usr/share/mime
 +
 
 +
Like update-mime-database, this is usually done in the post-inst phase in a Debian package, in addition to "make install" in the makefile target.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)