Mercurial > pt1.oyama
diff libdlna-0.2.3/src/upnp_dms.c @ 129:4f6d9621ee00
add multi session streaming & add depending librarys.
- libupnp-1.6.6
- libdlna-0.2.3
author | Naoya OYAMA <naoya.oyama@gmail.com> |
---|---|
date | Sun, 10 Oct 2010 15:33:18 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libdlna-0.2.3/src/upnp_dms.c Sun Oct 10 15:33:18 2010 +0900 @@ -0,0 +1,112 @@ +/* + * libdlna: reference DLNA standards implementation. + * Copyright (C) 2007 Benjamin Zores <ben@geexbox.org> + * + * This file is part of libdlna. + * + * libdlna is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libdlna 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libdlna; if not, write to the Free Software + * Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <stdio.h> +#include <string.h> + +#include "dlna_internals.h" + +#define UPNP_DMS_DESCRIPTION \ +"<?xml version=\"1.0\" encoding=\"utf-8\"?>" \ +"<root xmlns=\"urn:schemas-upnp-org:device-1-0\">" \ +" <specVersion>" \ +" <major>1</major>" \ +" <minor>0</minor>" \ +" </specVersion>" \ +" <device>" \ +" <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>" \ +" <friendlyName>%s: 1</friendlyName>" \ +" <manufacturer>%s</manufacturer>" \ +" <manufacturerURL>%s</manufacturerURL>" \ +" <modelDescription>%s</modelDescription>" \ +" <modelName>%s</modelName>" \ +" <modelNumber>%s</modelNumber>" \ +" <modelURL>%s</modelURL>" \ +" <serialNumber>%s</serialNumber>" \ +" <UDN>uuid:%s</UDN>" \ +" <presentationURL>%s</presentationURL>" \ +" <dlna:X_DLNADOC>DMS-1.00</dlna:X_DLNADOC>" \ +" <serviceList>" \ +" <service>" \ +" <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>" \ +" <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>" \ +" <SCPDURL>%s</SCPDURL>" \ +" <controlURL>%s</controlURL>" \ +" <eventSubURL>%s</eventSubURL>" \ +" </service>" \ +" <service>" \ +" <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>" \ +" <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>" \ +" <SCPDURL>%s</SCPDURL>" \ +" <controlURL>%s</controlURL>" \ +" <eventSubURL>%s</eventSubURL>" \ +" </service>" \ +" </serviceList>" \ +" </device>" \ +"</root>" + +char * +dlna_dms_description_get (const char *friendly_name, + const char *manufacturer, + const char *manufacturer_url, + const char *model_description, + const char *model_name, + const char *model_number, + const char *model_url, + const char *serial_number, + const char *uuid, + const char *presentation_url, + const char *cms_scpd_url, + const char *cms_control_url, + const char *cms_event_url, + const char *cds_scpd_url, + const char *cds_control_url, + const char *cds_event_url) +{ + char *desc = NULL; + size_t len; + + if (!friendly_name || !manufacturer || !manufacturer_url || + !model_description || !model_name || !model_number || + !model_url || !serial_number || !uuid || !presentation_url || + !cms_scpd_url || !cms_control_url || !cms_event_url || + !cds_scpd_url || !cds_control_url || !cds_event_url) + return NULL; + + len = strlen (UPNP_DMS_DESCRIPTION) + strlen (friendly_name) + + strlen (manufacturer) + strlen (manufacturer_url) + + strlen (model_description) + strlen (model_name) + + strlen (model_number) + strlen (model_url) + strlen (serial_number) + + strlen (uuid) + strlen (presentation_url) + strlen (cms_scpd_url) + + strlen (cms_control_url) + strlen (cms_event_url) + + strlen (cds_scpd_url) + strlen (cds_control_url) + + strlen (cds_event_url) + 1; + + desc = malloc (len); + memset (desc, 0, len); + sprintf (desc, UPNP_DMS_DESCRIPTION, friendly_name, + manufacturer, manufacturer_url, model_description, + model_name, model_number, model_url, serial_number, uuid, + presentation_url, cms_scpd_url, cms_control_url, cms_event_url, + cds_scpd_url, cds_control_url, cds_event_url); + + return desc; +}