Mercurial > pt1.oyama
view src/ushare.h @ 126:5dcaf3785ebe
fix process terminate problem.
add dynamic Content-Length header.
author | Naoya OYAMA <naoya.oyama@gmail.com> |
---|---|
date | Sun, 03 Oct 2010 21:55:37 +0900 |
parents | e413158cae13 |
children | 20442921bff5 |
line wrap: on
line source
/* * ushare.h : GeeXboX uShare UPnP Media Server header. * Originally developped for the GeeXboX project. * Parts of the code are originated from GMediaServer from Oskar Liljeblad. * 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. */ #ifndef _USHARE_H_ #define _USHARE_H_ #include <upnp/upnp.h> #include <upnp/upnptools.h> #include <stdbool.h> #include <pthread.h> #ifdef HAVE_DLNA #include <dlna.h> #endif /* HAVE_DLNA */ #include "content.h" #include "buffer.h" #include "redblack.h" #define VIRTUAL_DIR "/web" #define XBOX_MODEL_NAME "Windows Media Connect Compatible" #define DEFAULT_UUID "898f9738-d930-4db4-a3cf" #define STREAM_FILE_NAME "stream.ts" #define STREAM_LOCATION VIRTUAL_DIR "/" STREAM_FILE_NAME #define UPNP_MAX_CONTENT_LENGTH 4096 #define STARTING_ENTRY_ID_DEFAULT 0 #define STARTING_ENTRY_ID_XBOX360 100000 #define UPNP_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>GeeXboX Team</manufacturer>" \ " <manufacturerURL>http://ushare.geexbox.org/</manufacturerURL>" \ " <modelDescription>GeeXboX uShare : UPnP Media Server</modelDescription>" \ " <modelName>%s</modelName>" \ " <modelNumber>001</modelNumber>" \ " <modelURL>http://ushare.geexbox.org/</modelURL>" \ " <serialNumber>GEEXBOX-USHARE-01</serialNumber>" \ " <UDN>uuid:%s</UDN>" \ " <serviceList>" \ " <service>" \ " <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>" \ " <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>" \ " <SCPDURL>/web/cms.xml</SCPDURL>" \ " <controlURL>/web/cms_control</controlURL>" \ " <eventSubURL>/web/cms_event</eventSubURL>" \ " </service>" \ " <service>" \ " <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>" \ " <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>" \ " <SCPDURL>/web/cds.xml</SCPDURL>" \ " <controlURL>/web/cds_control</controlURL>" \ " <eventSubURL>/web/cds_event</eventSubURL>" \ " </service>" \ " <service>" \ " <serviceType>urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1</serviceType>\n" \ " <serviceId>urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar</serviceId>\n" \ " <SCPDURL>/web/msr.xml</SCPDURL>" \ " <controlURL>/web/msr_control</controlURL>" \ " <eventSubURL>/web/msr_event</eventSubURL>" \ " </service>\n" \ " </serviceList>" \ " <presentationURL>/web/ushare.html</presentationURL>" \ " </device>" \ "</root>" struct ushare_t { char *name; char *interface; char *model_name; content_list *contentlist; struct rbtree *rb; struct upnp_entry_t *root_entry; int nr_entries; int starting_id; int init; UpnpDevice_Handle dev; char *udn; char *ip; unsigned short port; unsigned short telnet_port; struct buffer_t *presentation; bool use_presentation; bool use_telnet; #ifdef HAVE_DLNA bool dlna_enabled; dlna_t *dlna; dlna_org_flags_t dlna_flags; #endif /* HAVE_DLNA */ bool xbox360; bool verbose; bool daemon; bool override_iconv_err; char *cfg_file; pthread_mutex_t termination_mutex; pthread_cond_t termination_cond; }; struct action_event_t { struct Upnp_Action_Request *request; bool status; struct service_t *service; }; inline void display_headers (void); void * dlna_startup(void *p); void UPnPBreak (int s __attribute__ ((unused))); #endif /* _USHARE_H_ */