Mercurial > pt1.oyama
diff src/mime.c @ 125:e413158cae13
Add ushare project files.
author | naoyan@johnstown.minaminoshima.org |
---|---|
date | Sun, 03 Oct 2010 11:35:19 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mime.c Sun Oct 03 11:35:19 2010 +0900 @@ -0,0 +1,150 @@ +/* + * mime.c : GeeXboX uShare media file MIME-type association. + * Originally developped for the GeeXboX project. + * Ref : http://freedesktop.org/wiki/Standards_2fshared_2dmime_2dinfo_2dspec + * Copyright (C) 2005-2007 Benjamin Zores <ben@geexbox.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <stdlib.h> +#include <string.h> + +#include "mime.h" +#include "ushare.h" + +#define UPNP_VIDEO "object.item.videoItem" +#define UPNP_AUDIO "object.item.audioItem.musicTrack" +#define UPNP_PHOTO "object.item.imageItem.photo" +#define UPNP_PLAYLIST "object.item.playlistItem" +#define UPNP_TEXT "object.item.textItem" + +const struct mime_type_t MIME_Type_List[] = { + /* Video files */ + { "asf", UPNP_VIDEO, "http-get:*:video/x-ms-asf:"}, + { "avc", UPNP_VIDEO, "http-get:*:video/avi:"}, + { "avi", UPNP_VIDEO, "http-get:*:video/avi:"}, + { "dv", UPNP_VIDEO, "http-get:*:video/x-dv:"}, + { "divx", UPNP_VIDEO, "http-get:*:video/avi:"}, + { "wmv", UPNP_VIDEO, "http-get:*:video/x-ms-wmv:"}, + { "mjpg", UPNP_VIDEO, "http-get:*:video/x-motion-jpeg:"}, + { "mjpeg", UPNP_VIDEO, "http-get:*:video/x-motion-jpeg:"}, + { "mpeg", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "mpg", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "mpe", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "mp2p", UPNP_VIDEO, "http-get:*:video/mp2p:"}, + { "vob", UPNP_VIDEO, "http-get:*:video/mp2p:"}, + { "mp2t", UPNP_VIDEO, "http-get:*:video/mp2t:"}, + { "m1v", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "m2v", UPNP_VIDEO, "http-get:*:video/mpeg2:"}, + { "mpg2", UPNP_VIDEO, "http-get:*:video/mpeg2:"}, + { "mpeg2", UPNP_VIDEO, "http-get:*:video/mpeg2:"}, + { "m4v", UPNP_VIDEO, "http-get:*:video/mp4:"}, + { "m4p", UPNP_VIDEO, "http-get:*:video/mp4:"}, + { "mp4ps", UPNP_VIDEO, "http-get:*:video/x-nerodigital-ps:"}, + { "ts", UPNP_VIDEO, "http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO;"}, + { "ogm", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "mkv", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "rmvb", UPNP_VIDEO, "http-get:*:video/mpeg:"}, + { "mov", UPNP_VIDEO, "http-get:*:video/quicktime:"}, + { "hdmov", UPNP_VIDEO, "http-get:*:video/quicktime:"}, + { "qt", UPNP_VIDEO, "http-get:*:video/quicktime:"}, + { "bin", UPNP_VIDEO, "http-get:*:video/mpeg2:"}, + { "iso", UPNP_VIDEO, "http-get:*:video/mpeg2:"}, + + /* Audio files */ + { "3gp", UPNP_AUDIO, "http-get:*:audio/3gpp:"}, + { "aac", UPNP_AUDIO, "http-get:*:audio/x-aac:"}, + { "ac3", UPNP_AUDIO, "http-get:*:audio/x-ac3:"}, + { "aif", UPNP_AUDIO, "http-get:*:audio/aiff:"}, + { "aiff", UPNP_AUDIO, "http-get:*:audio/aiff:"}, + { "at3p", UPNP_AUDIO, "http-get:*:audio/x-atrac3:"}, + { "au", UPNP_AUDIO, "http-get:*:audio/basic:"}, + { "snd", UPNP_AUDIO, "http-get:*:audio/basic:"}, + { "dts", UPNP_AUDIO, "http-get:*:audio/x-dts:"}, + { "rmi", UPNP_AUDIO, "http-get:*:audio/midi:"}, + { "mid", UPNP_AUDIO, "http-get:*:audio/midi:"}, + { "mp1", UPNP_AUDIO, "http-get:*:audio/mp1:"}, + { "mp2", UPNP_AUDIO, "http-get:*:audio/mp2:"}, + { "mp3", UPNP_AUDIO, "http-get:*:audio/mpeg:"}, + { "mp4", UPNP_AUDIO, "http-get:*:audio/mp4:"}, + { "m4a", UPNP_AUDIO, "http-get:*:audio/mp4:"}, + { "ogg", UPNP_AUDIO, "http-get:*:audio/x-ogg:"}, + { "wav", UPNP_AUDIO, "http-get:*:audio/wav:"}, + { "pcm", UPNP_AUDIO, "http-get:*:audio/l16:"}, + { "lpcm", UPNP_AUDIO, "http-get:*:audio/l16:"}, + { "l16", UPNP_AUDIO, "http-get:*:audio/l16:"}, + { "wma", UPNP_AUDIO, "http-get:*:audio/x-ms-wma:"}, + { "mka", UPNP_AUDIO, "http-get:*:audio/mpeg:"}, + { "ra", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"}, + { "rm", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"}, + { "ram", UPNP_AUDIO, "http-get:*:audio/x-pn-realaudio:"}, + { "flac", UPNP_AUDIO, "http-get:*:audio/x-flac:"}, + + /* Images files */ + { "bmp", UPNP_PHOTO, "http-get:*:image/bmp:"}, + { "ico", UPNP_PHOTO, "http-get:*:image/x-icon:"}, + { "gif", UPNP_PHOTO, "http-get:*:image/gif:"}, + { "jpeg", UPNP_PHOTO, "http-get:*:image/jpeg:"}, + { "jpg", UPNP_PHOTO, "http-get:*:image/jpeg:"}, + { "jpe", UPNP_PHOTO, "http-get:*:image/jpeg:"}, + { "pcd", UPNP_PHOTO, "http-get:*:image/x-ms-bmp:"}, + { "png", UPNP_PHOTO, "http-get:*:image/png:"}, + { "pnm", UPNP_PHOTO, "http-get:*:image/x-portable-anymap:"}, + { "ppm", UPNP_PHOTO, "http-get:*:image/x-portable-pixmap:"}, + { "qti", UPNP_PHOTO, "http-get:*:image/x-quicktime:"}, + { "qtf", UPNP_PHOTO, "http-get:*:image/x-quicktime:"}, + { "qtif", UPNP_PHOTO, "http-get:*:image/x-quicktime:"}, + { "tif", UPNP_PHOTO, "http-get:*:image/tiff:"}, + { "tiff", UPNP_PHOTO, "http-get:*:image/tiff:"}, + + /* Playlist files */ + { "pls", UPNP_PLAYLIST, "http-get:*:audio/x-scpls:"}, + { "m3u", UPNP_PLAYLIST, "http-get:*:audio/mpegurl:"}, + { "asx", UPNP_PLAYLIST, "http-get:*:video/x-ms-asf:"}, + + /* Subtitle Text files */ + { "srt", UPNP_TEXT, "http-get:*:text/srt:"}, /* SubRip */ + { "ssa", UPNP_TEXT, "http-get:*:text/ssa:"}, /* SubStation Alpha */ + { "stl", UPNP_TEXT, "http-get:*:text/srt:"}, /* Spruce */ + { "psb", UPNP_TEXT, "http-get:*:text/psb:"}, /* PowerDivX */ + { "pjs", UPNP_TEXT, "http-get:*:text/pjs:"}, /* Phoenix Japanim */ + { "sub", UPNP_TEXT, "http-get:*:text/sub:"}, /* MicroDVD */ + { "idx", UPNP_TEXT, "http-get:*:text/idx:"}, /* VOBsub */ + { "dks", UPNP_TEXT, "http-get:*:text/dks:"}, /* DKS */ + { "scr", UPNP_TEXT, "http-get:*:text/scr:"}, /* MACsub */ + { "tts", UPNP_TEXT, "http-get:*:text/tts:"}, /* TurboTitler */ + { "vsf", UPNP_TEXT, "http-get:*:text/vsf:"}, /* ViPlay */ + { "zeg", UPNP_TEXT, "http-get:*:text/zeg:"}, /* ZeroG */ + { "mpl", UPNP_TEXT, "http-get:*:text/mpl:"}, /* MPL */ + + /* Miscellaneous text files */ + { "bup", UPNP_TEXT, "http-get:*:text/bup:"}, /* DVD backup */ + { "ifo", UPNP_TEXT, "http-get:*:text/ifo:"}, /* DVD information */ + + { NULL, NULL, NULL} +}; + +char *mime_get_protocol (struct mime_type_t *mime) +{ + char protocol[512]; + + if (!mime) + return NULL; + + sprintf (protocol, mime->mime_protocol); + //strcat (protocol, "*"); + return strdup (protocol); +}