summaryrefslogtreecommitdiff
path: root/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'common.h')
-rw-r--r--common.h799
1 files changed, 0 insertions, 799 deletions
diff --git a/common.h b/common.h
deleted file mode 100644
index 7a19aa1..0000000
--- a/common.h
+++ /dev/null
@@ -1,799 +0,0 @@
-/*
- * File: common.h
- * Author: savop
- *
- * Created on 19. April 2009, 15:22
- */
-
-#ifndef _COMMON_H
-#define _COMMON_H
-
-#include "util.h"
-#include <libintl.h>
-#include <string.h>
-#include <vdr/tools.h>
-#include <vdr/i18n.h>
-#include <vdr/remux.h>
-
-/****************************************************
- *
- * Table of contents
- *
- * This file includes all (or at least most) constant
- * definitions for this plugin. As was growing very
- * fast, I decided to insert this table of contents
- * for faster navigations. However, you have to scroll
- * on your own.
- *
- * 0. Global constants
- * 1. VDR and the VDR subsystem
- * 1.1 Versioning
- * 1.2 Logging
- * 1.3 Plugin constants
- * 1.4 Plugin setup
- * 2. UPnP
- * 2.1 UPnP Namespaces
- * 2.2 Directory hierarchy
- * 2.3 internal Webserver
- * 2.4 Device description
- * 2.5 Connection Manager Service (CMS)
- * 2.6 Content Directory Service (CDS)
- * 2.7 UPnP AV Transport (AVT)
- * 2.8 Media classes
- * 2.9 Storage Media
- * 2.10 Known Errors
- * 2.11 Write Status
- * 2.12 DIDL Properties
- * 3. DLNA
- * 3.1 Protocol Info Fields
- * 3.2 Protocol Info Flags
- * 3.3 Media Profiles
- * 3.4 Container types
- * 3.5 Device types
- * 4. SQLite
- * 4.1 Database setup
- *
- ****************************************************/
-
-/****************************************************
- *
- * 0. Global constants
- *
- ****************************************************/
-
-#define IN
-#define OUT
-#define INOUT
-
-#define TOSTRING(s) #s
-
-#define FALSE 0
-#define TRUE 1
-
-#define bool_t uint8_t
-
-/**
- * Translation with gettext()
- */
-#ifndef _
-#define _(s) gettext(s)
-#endif
-
-#define KB(i) i*1024
-#define MB(i) i*KB(1024)
-
-#define SIZEOF_UUID_STRING 37 // 00000000-0000-0000-0000-000000000000 = 32 + 4 + 1
-
-#define strdup0(s) (s!=NULL?strdup(s):NULL)
-
-#define att(s) strchr(s,'@')!=NULL?strchr(s,'@')+1:NULL
-#define prop(s) substr(s, 0, strchr(s,'@')-s)
-
-#ifdef WITHOUT_AUDIO
- #define WITHOUT_RADIO
- #define WITHOUT_CUSTOM_AUDIO
-#endif
-
-#ifdef WITHOUT_VIDEO
- #define WITHOUT_TV
- #define WITHOUT_RECORDS
- #define WITHOUT_CUSTOM_VIDEO
-#endif
-
-void message(int level, const char* File, int Line, const char* Format, ...) __attribute__ ((format (printf, 4, 5)));
-
-/****************************************************
- *
- * 1. VDR and the VDR subsystem
- *
- ****************************************************/
-
-//#define VDR_RECORDFILE_PATTERN_PES "%s/%03d.vdr"
-//#define VDR_RECORDFILE_PATTERN_TS "%s/%05d.ts"
-#define VDR_MAX_FILES_PER_TSRECORDING 65535
-#define VDR_MAX_FILES_PER_PESRECORDING 255
-//#define VDR_FILENAME_BUFSIZE 2048
-
-/****************************************************
- *
- * 1.1 Versioning
- *
- ****************************************************/
-
-#define VERSION_INT(maj, min, mic) (maj<<16 | min<<8 | mic)
-#define VERSION_DOT(maj, min, mic) maj ##.## min ##.## mic
-#define VERSION_STR(maj, min, mic) TOSTRING(maj.min.mic)
-
-/* If any changes on the version number are commited, please change the version
- * string in the main file "upnp.c" as well to avoid errors with the makefile */
-#define PLUGIN_VERSION_MAJOR 0
-#define PLUGIN_VERSION_MINOR 0
-#define PLUGIN_VERSION_MICRO 2
-/* The plugin version as dot-separated string */
-#define PLUGIN_VERSION VERSION_STR(PLUGIN_VERSION_MAJOR, \
- PLUGIN_VERSION_MINOR, \
- PLUGIN_VERSION_MICRO)
-/* The plugin version as integer representation */
-#define PLUGIN_VERSION_INT VERSION_INT(PLUGIN_VERSION_MAJOR, \
- PLUGIN_VERSION_MINOR, \
- PLUGIN_VERSION_MICRO)
-
-/****************************************************
- *
- * 1.2 Logging
- *
- ****************************************************/
-
-/**
- * Log errors
- *
- * Errors are critical problems which cannot handled by the server and needs
- * the help by the user.
- */
-#define ERROR(s...) esyslog("UPnP server error:" s)
-/**
- * Log warnings
- *
- * Warnings indicate problems with the server which can be handled
- * by the server itself or are not critical to the servers functionality
- */
-#define WARNING(s...) isyslog("UPnP server warning: " s)
-/**
- * Log messages
- *
- * Messages are additional information about the servers behavior. This will
- * be useful for debugging.
- */
-#ifndef DEBUG
-#define MESSAGE(l,s...) message(l,__FILE__, __LINE__, "UPnP server message: " s)
-#else
-#define MESSAGE(l,s...) dsyslog("UPnP server message: " s)
-#endif
-
-
-/**
- * Define at which level the different messages will be printed
- *
- * The log levels reach from 1 to 5, where 1 is the highest log
- * priority and 5 the lowest. 0 will deactivate the logging of
- * the message. If you want to specifiy a certain level, add
- * 'v' options as many as required for the log level.
- *
- * @example
- * - \-v Show warnings
- * - \-vv Log level 1
- * - \-vvv Log level 2
- * - \-vvvv Log level 3
- * - \-vvvvv Log level 4
- * - \-vvvvvv Log level 5
- */
-#define VERBOSE_SQL 4 ///< SQL messages (open DB, close DB etc.)
-#define VERBOSE_SQL_FETCHES 0 ///< SQL fetch messages (SELECT only)
-#define VERBOSE_SQL_STATEMENTS 0 ///< all SQL statements
-#define VERBOSE_DIDL 4 ///< print DIDL related messages
-#define VERBOSE_LIVE_TV 3 ///< print live TV related messages
-#define VERBOSE_RECORDS 3 ///< print messages related to records
-#define VERBOSE_CUSTOMFILES 3 ///< print messages related to custom files and sometimes records
-#define VERBOSE_SDK 1 ///< print important messages of the program flow
-#define VERBOSE_EPG_UPDATES 3 ///< show information on EPG changes
-#define VERBOSE_WEBSERVER 2 ///< print actions done by the webserver
-#define VERBOSE_MODIFICATIONS 2 ///< show modifications to objects or anything else
-#define VERBOSE_METADATA 4 ///< print additional metadata information
-#define VERBOSE_CUSTOM_OUTPUT 5 ///< everything else...
-#define VERBOSE_PARSERS 5 ///< print the parsers output
-#define VERBOSE_BUFFERS 4 ///< print the buffer output
-#define VERBOSE_CDS 2 ///< print messages from the content directory
-#define VERBOSE_CMS 2 ///< print messages from the connection manager
-#define VERBOSE_OBJECTS 3 ///< print messages related to objects
-
-/****************************************************
- *
- * 1.3 Plugin constants
- *
- ****************************************************/
-
-/* The authors of the plugin */
-#define PLUGIN_AUTHORS "Andreas Günther, Denis Loh"
-/* The web site of the plugin */
-#define PLUGIN_WEB_PAGE "http://upnp.methodus.de"
-/* A small discription of the plugin, which is also used as the device description */
-#define PLUGIN_DESCRIPTION "UPnP/DLNA compliant Media Server functionality for VDR"
-/* The short plugin name. This is used as the main menu of VDR */
-#define PLUGIN_SHORT_NAME "DLNA/UPnP"
-/* A somewhat longer name, a.k.a device name */
-#define PLUGIN_NAME "VDR DLNA/UPnP Media Server"
-/* Where the plugin can be downloaded */
-#define PLUGIN_DOWNLOAD_PAGE PLUGIN_WEB_PAGE
-
-/****************************************************
- *
- * 1.4 Plugin setup
- *
- ****************************************************/
-
-#define SETUP_SERVER_ENABLED "Server.Enabled"
-#define SETUP_SERVER_INT "Server.Int"
-#define SETUP_SERVER_PORT "Server.Port"
-#define SETUP_SERVER_AUTO "Server.AutoDetect"
-#define SETUP_SERVER_ADDRESS "Server.Address"
-#define SETUP_WEBSERVER_DIR "Webserver.Directory"
-#define SETUP_DATABASE_DIR "Database.Directory"
-
-/* The server port range where the server interacts with clients */
-#define SERVER_MIN_PORT 49152
-#define SERVER_MAX_PORT 65535
-
-#define RECEIVER_LIVEBUFFER_SIZE MB(1)
-#define RECEIVER_OUTPUTBUFFER_SIZE MB(1)
-#define RECEIVER_RINGBUFFER_MARGIN 10*TS_SIZE
-
-/****************************************************
- *
- * 2. UPnP
- *
- ****************************************************/
-
-/*The maximum size of the device description file
- *must NOT exceed 20KB including HTTP headers
- */
-#define UPNP_DEVICE_DESCRIPTION_MAX_LEN KB(20)
-/* The maximum size of the SOAP requests */
-#define UPNP_SOAP_MAX_LEN KB(20)
-/* The max age of announcements in seconds */
-#define UPNP_ANNOUNCE_MAX_AGE 1800
-/* Max resources per object including
- * preview images and thumbnails
- */
-#define UPNP_MAX_RESOURCES_PER_OBJECT 16
-
-enum UPNP_RESOURCE_TYPES {
- UPNP_RESOURCE_CHANNEL,
- UPNP_RESOURCE_RECORDING,
- UPNP_RESOURCE_FILE,
- UPNP_RESOURCE_URL
-};
-
-/****************************************************
- *
- * 2.1 Namespaces
- *
- ****************************************************/
-
-#define UPNP_XMLNS_UPNP "urn:schemas-upnp-org:metadata-1-0/upnp/"
-#define UPNP_XMLNS_DIDL "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
-#define UPNP_XMLNS_DLNA_META "urn:schemas-dlna-org:metadata-1-0/"
-#define UPNP_XMLNS_UPNP_DEV "urn:schemas-upnp-org:device-1-0"
-#define UPNP_XMLNS_DLNA_DEV "urn:schemas-dlna-org:device-1-0"
-#define UPNP_XMLNS_DUBLINCORE "http://purl.org/dc/elements/1.1/"
-
-#define UPNP_XMLNS_PREFIX_UPNP "upnp"
-#define UPNP_XMLNS_PREFIX_DC "dc"
-#define UPNP_XMLNS_PREFIX_DIDL ""
-#define UPNP_XMLNS_PREFIX_DLNA "dlna"
-
-/****************************************************
- *
- * 2.2 Directory hierarchy
- *
- ****************************************************/
-
-#define UPNP_DIR_CONTROL "/control"
-#define UPNP_DIR_EVENT "/event"
-#define UPNP_DIR_XML "/xml"
-#define UPNP_DIR_SHARES "/shares"
-#define UPNP_DIR_PRESENTATION "/http"
-#define UPNP_DIR_ICONS "/icons"
-
-/****************************************************
- *
- * 2.3 internal webserver
- *
- ****************************************************/
-
-#define UPNP_WEB_MAX_FILE_HANDLES 512
-
-#define UPNP_WEB_PRESENTATION_URL "/index.html"
-#define UPNP_WEB_SERVER_ROOT_DIR UPNP_DIR_PRESENTATION
-
-enum UPNP_WEB_METHODS {
- UPNP_WEB_METHOD_BROWSE,
- UPNP_WEB_METHOD_SHOW,
- UPNP_WEB_METHOD_STREAM,
- UPNP_WEB_METHOD_SEARCH,
- UPNP_WEB_METHOD_DOWNLOAD
-};
-
-/****************************************************
- *
- * 2.4 Device description
- *
- ****************************************************/
-
-/*The device type of the server*/
-#define UPNP_DEVICE_TYPE "urn:schemas-upnp-org:device:MediaServer:1"
-/*Path to device description*/
-#define UPNP_DEVICE_DESCRIPTION_PATH UPNP_WEB_SERVER_ROOT_DIR "/ms_desc.xml"
-/*Values to identify device and services*/
-#define UPNP_DEVICE_UDN "uuid:b120ba52-d88d-4500-9b64-888971d83fd3"
-/* The friendly device name, human readable */
-#define UPNP_DEVICE_FRIENDLY_NAME PLUGIN_NAME
-/* The guys who wrote the crap */
-#define UPNP_DEVICE_MANUFACTURER PLUGIN_AUTHORS
-/* The website of the manufacturer, in this case the plugin website */
-#define UPNP_DEVICE_MANUFACTURER_URL PLUGIN_WEB_PAGE
-/* There is just the one and only model of the plugin, the plugin itself */
-#define UPNP_DEVICE_MODEL_DESCRIPTION PLUGIN_DESCRIPTION
-/* The plugin name... */
-#define UPNP_DEVICE_MODEL_NAME PLUGIN_NAME
-/* The plugin version */
-#define UPNP_DEVICE_MODEL_NUMBER PLUGIN_VERSION
-/* The website of the plugin, this might be different to the manufactures homepage
- * and should redirect to a download mirror where the plugin can be obtained.
- */
-#define UPNP_DEVICE_MODEL_URL PLUGIN_DOWNLOAD_PAGE
-/* The serial number of the plugin. This is the integer value of the version */
-#define UPNP_DEVICE_SERIAL_NUMBER "VDR_DLNAUPNP_" PLUGIN_VERSION
-
-#define UPNP_DEVICE_ICON_JPEG_SM UPNP_DIR_ICONS "/upnpIconSm.jpeg"
-#define UPNP_DEVICE_ICON_JPEG_LRG UPNP_DIR_ICONS "/upnpIconLrg.jpeg"
-#define UPNP_DEVICE_ICON_PNG_SM UPNP_DIR_ICONS "/upnpIconSm.png"
-#define UPNP_DEVICE_ICON_PNG_LRG UPNP_DIR_ICONS "/upnpIconLrg.png"
-
-/****************************************************
- *
- * 2.5 DIDL Properties
- *
- ****************************************************/
-
-#define UPNP_OBJECT_ITEM "item"
-#define UPNP_OBJECT_CONTAINER "container"
-
-#define UPNP_PROP_OBJECTID "@id"
-#define UPNP_PROP_PARENTID "@parentID"
-#define UPNP_PROP_TITLE "dc:title"
-#define UPNP_PROP_CREATOR "dc:creator"
-#define UPNP_PROP_RESTRICTED "@restricted"
-#define UPNP_PROP_WRITESTATUS "upnp:writeStatus"
-#define UPNP_PROP_CLASS "upnp:class"
-#define UPNP_PROP_CLASSNAME UPNP_PROP_CLASS "@name"
-#define UPNP_PROP_CREATECLASS "upnp:createClass"
-#define UPNP_PROP_SEARCHCLASS "upnp:searchClass"
-#define UPNP_PROP_SCLASSDERIVED UPNP_PROP_SEARCHCLASS "@includeDerived"
-#define UPNP_PROP_SCLASSNAME UPNP_PROP_SEARCHCLASS "@name"
-#define UPNP_PROP_CCLASSDERIVED UPNP_PROP_CREATECLASS "@includeDerived"
-#define UPNP_PROP_CCLASSNAME UPNP_PROP_CREATECLASS "@name"
-#define UPNP_PROP_REFERENCEID UPNP_OBJECT_ITEM "@refID"
-#define UPNP_PROP_SEARCHABLE UPNP_OBJECT_CONTAINER "@searchable"
-#define UPNP_PROP_CHILDCOUNT UPNP_OBJECT_CONTAINER "@childcount"
-#define UPNP_PROP_RESOURCE "res"
-#define UPNP_PROP_PROTOCOLINFO UPNP_PROP_RESOURCE "@protocolInfo"
-#define UPNP_PROP_SIZE UPNP_PROP_RESOURCE "@size"
-#define UPNP_PROP_DURATION UPNP_PROP_RESOURCE "@duration"
-#define UPNP_PROP_BITRATE UPNP_PROP_RESOURCE "@bitrate"
-#define UPNP_PROP_SAMPLEFREQUENCE UPNP_PROP_RESOURCE "@sampleFreq"
-#define UPNP_PROP_BITSPERSAMPLE UPNP_PROP_RESOURCE "@bitsPerSample"
-#define UPNP_PROP_NOAUDIOCHANNELS UPNP_PROP_RESOURCE "@nrAudioChannels"
-#define UPNP_PROP_COLORDEPTH UPNP_PROP_RESOURCE "@colorDepth"
-#define UPNP_PROP_RESOLUTION UPNP_PROP_RESOURCE "@resolution"
-#define UPNP_PROP_GENRE "upnp:genre"
-#define UPNP_PROP_LONGDESCRIPTION "upnp:longDescription"
-#define UPNP_PROP_PRODUCER "upnp:producer"
-#define UPNP_PROP_RATING "upnp:rating"
-#define UPNP_PROP_ACTOR "upnp:actor"
-#define UPNP_PROP_DIRECTOR "upnp:director"
-#define UPNP_PROP_DESCRIPTION "dc:description"
-#define UPNP_PROP_PUBLISHER "dc:publisher"
-#define UPNP_PROP_LANGUAGE "dc:language"
-#define UPNP_PROP_RELATION "dc:relation"
-#define UPNP_PROP_STORAGEMEDIUM "upnp:storageMedium"
-#define UPNP_PROP_DVDREGIONCODE "upnp:DVDRegionCode"
-#define UPNP_PROP_CHANNELNAME "upnp:channelName"
-#define UPNP_PROP_SCHEDULEDSTARTTIME "upnp:scheduledStartTime"
-#define UPNP_PROP_SCHEDULEDENDTIME "upnp:scheduledEndTime"
-#define UPNP_PROP_ICON "upnp:icon"
-#define UPNP_PROP_REGION "upnp:region"
-#define UPNP_PROP_CHANNELNR "upnp:channelNr"
-#define UPNP_PROP_RIGHTS "dc:rights"
-#define UPNP_PROP_RADIOCALLSIGN "upnp:radioCallSign"
-#define UPNP_PROP_RADIOSTATIONID "upnp:radioStationID"
-#define UPNP_PROP_RADIOBAND "upnp:radioBand"
-#define UPNP_PROP_CONTRIBUTOR "dc:contributor"
-#define UPNP_PROP_DATE "dc:date"
-#define UPNP_PROP_ALBUM "upnp:album"
-#define UPNP_PROP_ARTIST "upnp:artist"
-#define UPNP_PROP_DLNA_CONTAINERTYPE "dlna:container"
-
-#define UPNP_DIDL_SKELETON "<DIDL-Lite "\
- "xmlns=\"" UPNP_XMLNS_DIDL "\" "\
- "xmlns:dc=\"" UPNP_XMLNS_DUBLINCORE "\" "\
- "xmlns:upnp=\"" UPNP_XMLNS_UPNP "\" "\
- "xmlns:dlna=\"" UPNP_XMLNS_DLNA_META "\">"\
- "</DIDL-Lite>"
-
-/****************************************************
- *
- * 2.6 Connection Manager Service (CMS)
- *
- ****************************************************/
-
-/*Path to service description of conection manager service*/
-#define UPNP_CMS_SCPD_URL UPNP_DIR_XML "/cms_scpd.xml"
-#define UPNP_CMS_CONTROL_URL UPNP_DIR_CONTROL "/cms_control"
-#define UPNP_CMS_EVENT_URL UPNP_DIR_EVENT "/cms_event"
-#define UPNP_CMS_SERVICE_ID "urn:upnp-org:serviceId:ConnectionManager"
-#define UPNP_CMS_SERVICE_TYPE "urn:schemas-upnp-org:service:ConnectionManager:1"
-
-/* Compatibility usage only --> See DLNA Profiles */
-#define UPNP_CMS_SUPPORTED_PROTOCOLS "http-get:*:video/mpeg:*," \
- "http-get:*:audio/mpeg:*"
-
-/****************************************************
- *
- * The UPnP CMS actions
- *
- * This constant definitions represent all actions
- * compliant with UPnP ConnectionManager:1
- *
- ****************************************************/
-
-#define UPNP_CMS_ACTION_GETPROTOCOLINFO "GetProtocolInfo"
-#define UPNP_CMS_ACTION_GETCURRENTCONNECTIONIDS "GetCurrentConnectionIDs"
-#define UPNP_CMS_ACTION_GETCURRENTCONNECTIONINFO "GetCurrentConnectionInfo"
-#define UPNP_CMS_ACTION_PREPAREFORCONNECTION "PrepareForConnection"
-#define UPNP_CMS_ACTION_CONNECTIONCOMPLETE "ConnectionComplete"
-
-/****************************************************
- *
- * 2.7 Content Directory Service (CDS)
- *
- ****************************************************/
-
-/*Path to service description of content directory service*/
-#define UPNP_CDS_SCPD_URL UPNP_DIR_XML "/cds_scpd.xml"
-#define UPNP_CDS_CONTROL_URL UPNP_DIR_CONTROL "/cds_control"
-#define UPNP_CDS_EVENT_URL UPNP_DIR_EVENT "/cds_event"
-#define UPNP_CDS_SERVICE_ID "urn:upnp-org:serviceId:ContentDirectory"
-#define UPNP_CDS_SERVICE_TYPE "urn:schemas-upnp-org:service:ContentDirectory:1"
-
-#define UPNP_CDS_SEARCH_CAPABILITIES ""
-#define UPNP_CDS_SORT_CAPABILITIES UPNP_PROP_TITLE ","\
- UPNP_PROP_CREATOR ","\
- UPNP_PROP_WRITESTATUS ","\
- UPNP_PROP_DESCRIPTION ","\
- UPNP_PROP_GENRE ","\
- UPNP_PROP_LONGDESCRIPTION ","\
- UPNP_PROP_PUBLISHER
-
-#define UPNP_DURATION_FORMAT "%5d:%02d:%02d"
-#define UPNP_DURATION_FRAME_FORMAT "%5d:%02d:%02d.%03d"
-#define UPNP_MAX_METADATA_LENGTH 1024
-#define AVDETECTOR_TIME_BASE 1000
-
-/****************************************************
- *
- * The UPnP CDS actions
- *
- * This constant definitions represent all actions
- * compliant with UPnP ContentDirectory:1
- *
- ****************************************************/
-
-#define UPNP_CDS_ACTION_SEARCHCAPABILITIES "GetSearchCapabilities"
-#define UPNP_CDS_ACTION_SORTCAPABILITIES "GetSortCapabilities"
-#define UPNP_CDS_ACTION_SYSTEMUPDATEID "GetSystemUpdateID"
-#define UPNP_CDS_ACTION_BROWSE "Browse"
-#define UPNP_CDS_ACTION_SEARCH "Search"
-#define UPNP_CDS_ACTION_CREATEOBJECT "CreateObject"
-#define UPNP_CDS_ACTION_DESTROYOBJECT "DestroyObject"
-#define UPNP_CDS_ACTION_UPDATEOBJECT "UpdateObject"
-#define UPNP_CDS_ACTION_IMPORTRESOURCE "ImportResource"
-#define UPNP_CDS_ACTION_EXPORTRESOURCE "ExportResource"
-#define UPNP_CDS_ACTION_STOPTRANSFERRES "StopTransferResource"
-#define UPNP_CDS_ACTION_TRANSFERPROGRESS "GetTransferProgress"
-#define UPNP_CDS_ACTION_DELETERESOURCE "DeleteResource"
-#define UPNP_CDS_ACTION_CREATEREFERENCE "CreateReference"
-
-/****************************************************
- *
- * 2.8 UPnP AV Transport (AVT)
- *
- ****************************************************/
-
-#define UPNP_AVT_SCPD_URL UPNP_DIR_XML "/avt_scpd.xml"
-#define UPNP_AVT_CONTROL_URL UPNP_DIR_CONTROL "/avt_control"
-#define UPNP_AVT_EVENT_URL UPNP_DIR_EVENT "/avt_event"
-#define UPNP_AVT_SERVICE_ID "urn:upnp-org:serviceID:AVTransport"
-#define UPNP_AVT_SERVICE_TYPE "urn:schemas-upnp-org:service:AVTransport:1"
-
-/****************************************************
- *
- * The UPnP AVT actions
- *
- * This constant definitions represent all actions
- * compliant with UPnP AVTransport:1
- *
- ****************************************************/
-
-/****************************************************
- *
- * 2.9 Media classes
- *
- ****************************************************/
-
-#define UPNP_CLASS_OBJECT "object"
-#define UPNP_CLASS_ITEM UPNP_CLASS_OBJECT "." "item"
-#define UPNP_CLASS_CONTAINER UPNP_CLASS_OBJECT "." "container"
-#define UPNP_CLASS_IMAGE UPNP_CLASS_ITEM "." "imageItem"
-#define UPNP_CLASS_AUDIO UPNP_CLASS_ITEM "." "audioItem"
-#define UPNP_CLASS_VIDEO UPNP_CLASS_ITEM "." "videoItem"
-#define UPNP_CLASS_PLAYLIST UPNP_CLASS_ITEM "." "playlistItem"
-#define UPNP_CLASS_TEXT UPNP_CLASS_ITEM "." "textItem"
-#define UPNP_CLASS_PHOTO UPNP_CLASS_IMAGE "." "photo"
-#define UPNP_CLASS_MUSICTRACK UPNP_CLASS_AUDIO "." "musikTrack"
-#define UPNP_CLASS_AUDIOBC UPNP_CLASS_AUDIO "." "audioBroadcast"
-#define UPNP_CLASS_AUDIOBOOK UPNP_CLASS_AUDIO "." "audioBook"
-#define UPNP_CLASS_MOVIE UPNP_CLASS_VIDEO "." "movie"
-#define UPNP_CLASS_VIDEOBC UPNP_CLASS_VIDEO "." "videoBroadcast"
-#define UPNP_CLASS_MUSICVIDCLIP UPNP_CLASS_VIDEO "." "musicVideoClip"
-#define UPNP_CLASS_PERSON UPNP_CLASS_CONTAINER "." "person"
-#define UPNP_CLASS_PLAYLISTCONT UPNP_CLASS_CONTAINER "." "playlistContainer"
-#define UPNP_CLASS_ALBUM UPNP_CLASS_CONTAINER "." "album"
-#define UPNP_CLASS_GENRE UPNP_CLASS_CONTAINER "." "genre"
-#define UPNP_CLASS_STORAGESYS UPNP_CLASS_CONTAINER "." "storageSystem"
-#define UPNP_CLASS_STORAGEVOL UPNP_CLASS_CONTAINER "." "storageVolume"
-#define UPNP_CLASS_STORAGEFOLD UPNP_CLASS_CONTAINER "." "storageFolder"
-#define UPNP_CLASS_MUSICARTIST UPNP_CLASS_PERSON "." "musicArtist"
-#define UPNP_CLASS_MUSICALBUM UPNP_CLASS_ALBUM "." "musicAlbum"
-#define UPNP_CLASS_PHOTOALBUM UPNP_CLASS_ALBUM "." "photoAlbum"
-#define UPNP_CLASS_MUSICGENRE UPNP_CLASS_GENRE "." "musicGenre"
-#define UPNP_CLASS_MOVIEGENRE UPNP_CLASS_GENRE "." "movieGenre"
-
-/****************************************************
- *
- * 2.10 Storage media
- *
- ****************************************************/
-
-#define UPNP_STORAGE_UNKNOWN "UNKNOWN"
-#define UPNP_STORAGE_DV "DV"
-#define UPNP_STORAGE_MINI_DV "MINI-DV"
-#define UPNP_STORAGE_VHS "VHS"
-#define UPNP_STORAGE_W_VHS "W-VHS"
-#define UPNP_STORAGE_S_VHS "S-VHS"
-#define UPNP_STORAGE_D_VHS "D-VHS"
-#define UPNP_STORAGE_VHSC "VHSC"
-#define UPNP_STORAGE_VIDEO8 "VIDEO8"
-#define UPNP_STORAGE_HI8 "HI8"
-#define UPNP_STORAGE_CD_ROM "CD-ROM"
-#define UPNP_STORAGE_CD_DA "CD-DA"
-#define UPNP_STORAGE_CD_R "CD-R"
-#define UPNP_STORAGE_CD_RW "CD-RW"
-#define UPNP_STORAGE_VIDEO_CD "VIDEO-CD"
-#define UPNP_STORAGE_SACD "SACD"
-#define UPNP_STORAGE_MD_AUDIO "MD-AUDIO"
-#define UPNP_STORAGE_MD_PICTURE "MD-PICTURE"
-#define UPNP_STORAGE_DVD_ROM "DVD-ROM"
-#define UPNP_STORAGE_DVD_VIDEO "DVD-VIDEO"
-#define UPNP_STORAGE_DVD_R_MINUS "DVD-R"
-#define UPNP_STORAGE_DVD_RW_PLUS "DVD+RW"
-#define UPNP_STORAGE_DVD_RW_MINUS "DVD-RW"
-#define UPNP_STORAGE_DVD_RAM "DVD-RAM"
-#define UPNP_STORAGE_DVD_AUDIO "DVD-AUDIO"
-#define UPNP_STORAGE_DAT "DAT"
-#define UPNP_STORAGE_LD "LD"
-#define UPNP_STORAGE_HDD "HDD"
-#define UPNP_STORAGE_MICRO_MV "MICRO-MV"
-#define UPNP_STORAGE_NETWORK "NETWORK"
-
-/****************************************************
- *
- * 2.11 Known Errors
- *
- ****************************************************/
-
-/* Errors 401-404, 501 are already defined in
- * Intel SDK, however 403 MUST NOT USED.
- */
-
-/****** 600 Common Action Errors ******/
-
-#define UPNP_SOAP_E_ARGUMENT_INVALID 600
-#define UPNP_SOAP_E_ARGUMENT_OUT_OF_RANGE 601
-#define UPNP_SOAP_E_ACTION_NOT_IMPLEMENTED 602
-#define UPNP_SOAP_E_OUT_OF_MEMORY 603
-#define UPNP_SOAP_E_HUMAN_INTERVENTION 604
-#define UPNP_SOAP_E_STRING_TO_LONG 605
-#define UPNP_SOAP_E_NOT_AUTHORIZED 606
-#define UPNP_SOAP_E_SIGNATURE_FAILURE 607
-#define UPNP_SOAP_E_SIGNATURE_MISSING 608
-#define UPNP_SOAP_E_NOT_ENCRYPTED 609
-#define UPNP_SOAP_E_INVALID_SEQUENCE 610
-#define UPNP_SOAP_E_INVALID_CONTROL_URL 611
-#define UPNP_SOAP_E_NO_SUCH_SESSION 612
-
-/****** 700 Action specific Errors ******/
-
-#define UPNP_CDS_E_NO_SUCH_OBJECT 701
-#define UPNP_CDS_E_INVALID_CURRENT_TAG 702
-#define UPNP_CDS_E_INVALID_NEW_TAG 703
-#define UPNP_CDS_E_REQUIRED_TAG 704
-#define UPNP_CDS_E_READ_ONLY_TAG 705
-#define UPNP_CDS_E_PARAMETER_MISMATCH 706
-#define UPNP_CDS_E_INVALID_SEARCH_CRITERIA 708
-#define UPNP_CDS_E_INVALID_SORT_CRITERIA 709
-#define UPNP_CDS_E_NO_SUCH_CONTAINER 710
-#define UPNP_CDS_E_RESTRICTED_OBJECT 711
-#define UPNP_CDS_E_BAD_METADATA 712
-#define UPNP_CDS_E_RESTRICTED_PARENT 713
-#define UPNP_CDS_E_NO_SUCH_SOURCE_RESOURCE 714
-#define UPNP_CDS_E_RESOURCE_ACCESS_DENIED 715
-#define UPNP_CDS_E_TRANSFER_BUSY 716
-#define UPNP_CDS_E_NO_SUCH_FILE_TRANSFER 717
-#define UPNP_CDS_E_NO_SUCH_DESTINATION_RESOURCE 718
-#define UPNP_CDS_E_DEST_RESOURCE_ACCESS_DENIED 719
-#define UPNP_CDS_E_CANT_PROCESS_REQUEST 720
-
-#define UPNP_CMS_E_INCOMPATIBLE_PROTOCOL_INFO 701
-#define UPNP_CMS_E_INCOMPATIBLE_DIRECTIONS 702
-#define UPNP_CMS_E_INSUFFICIENT_RESOURCES 703
-#define UPNP_CMS_E_LOCAL_RESTRICTIONS 704
-#define UPNP_CMS_E_ACCESS_DENIED 705
-#define UPNP_CMS_E_INVALID_CONNECTION_REFERENCE 706
-#define UPNP_CMS_E_NOT_IN_NETWORK 707
-
-/****************************************************
- *
- * 2.12 Write Status
- *
- ****************************************************/
-
-enum UPnPWriteStatus {
- WS_UNKNOWN=0,
- WS_WRITABLE,
- WS_PROTECTED,
- WS_NOT_WRITABLE,
- WS_MIXED
-};
-
-/****************************************************
- *
- * 3. DLNA
- *
- ****************************************************/
-
-#define DLNA_PROTOCOL_VERSION_MAJOR 1
-#define DLNA_PROTOCOL_VERSION_MINOR 5
-#define DLNA_PROTOCOL_VERSION_MICRO 0
-
-#define DLNA_PROTOCOL_VERSION_INT VERSION_INT(DLNA_PROTOCOL_VERSION_MAJOR, \
- DLNA_PROTOCOL_VERSION_MINOR, \
- DLNA_PROTOCOL_VERSION_MICRO)
-
-#define DLNA_PROTOCOL_VERSION_STR VERSION_STR(DLNA_PROTOCOL_VERSION_MAJOR, \
- DLNA_PROTOCOL_VERSION_MINOR, \
- DLNA_PROTOCOL_VERSION_MICRO)
-
-/****************************************************
- *
- * 3.1 Protocol info fields
- *
- ****************************************************/
-
-/**
- * ATTENTION
- *
- * The following operation field assumes that s0 is NOT changing. Only changes to sN are permitted.
- * If s0 and/or sN changes these fields must be set to false. Use DLNA_FLAG_*_BASED_SEEK flags instead.
- */
-#define DLNA_OPERATION_NONE 00 ///< No seek operations supported
-#define DLNA_OPERATION_TIME_SEEK_RANGE 10 ///< is the server supporting time based seeks?
-#define DLNA_OPERATION_RANGE 01 ///< or byte based seeks?
-
-#define DLNA_CONVERSION_TRANSCODED 1 ///< the content was converted from one media format to another
-#define DLNA_CONVERSION_NONE 0 ///< the content is available without conversion
-
-#define DLNA_SUPPORTED_PLAYSPEEDS "2,4,8,-2,-4,-8"; ///< 1 is required, but omited in the PS parameter
-
-#define DLNA_TRANSFER_PROTOCOL_HTTP 1 ///< use http tranfer
-#define DLNA_TRANSFER_PROTOCOL_RTP 2 ///< use rtp tranfer
-
-/****************************************************
- *
- * 3.2 Protocol info flags
- *
- ****************************************************/
-
-#define DLNA_FLAG_SENDER_PACED 1 << 31 ///< is the server setting the pace (i.e. RTP)?
-#define DLNA_FLAG_TIME_BASED_SEEK 1 << 30 ///< is the server supporting time based seeks?
-#define DLNA_FLAG_BYTE_BASED_SEEK 1 << 29 ///< or byte based seeking?
-#define DLNA_FLAG_PLAY_CONTAINER 1 << 28 ///< is it possible to play all contents of a container?
-#define DLNA_FLAG_S0_INCREASE 1 << 27 ///< is the beginning changing (time shift)?
-#define DLNA_FLAG_SN_INCREASE 1 << 26 ///< is the end changing (live-TV)?
-#define DLNA_FLAG_RTSP_PAUSE 1 << 25 ///< is pausing rtp streams permitted?
-#define DLNA_FLAG_STREAMING_TRANSFER 1 << 24 ///< is the transfer a stream (Audio/AV)?
-#define DLNA_FLAG_INTERACTIVE_TRANSFER 1 << 23 ///< is the transfer interactiv (printings)?
-#define DLNA_FLAG_BACKGROUND_TRANSFER 1 << 22 ///< is the tranfer done in background (downloaded)?
-#define DLNA_FLAG_CONNECTION_STALLING 1 << 21 ///< can the connection be paused on HTTP streams?
-#define DLNA_FLAG_VERSION_1_5 1 << 20 ///< does the server complies with DLNA V1.5
-#define DLNA_FLAG_CLEARTEXT_CONTENT 1 << 16 ///< (Link Protection) currently not used
-#define DLNA_FLAG_CLEARTEXT_BYTE_FULL_SEEK 1 << 15 ///< (Link Protection) currently not used
-#define DLNA_FLAG_CLEARTEXT_LIMITED_SEEK 1 << 14 ///< (Link Protection) currently not used
-
-#define DLNA_SUPPORTED_FLAGS DLNA_FLAG_BYTE_BASED_SEEK | \
- DLNA_FLAG_SN_INCREASE | \
- DLNA_FLAG_STREAMING_TRANSFER | \
- DLNA_FLAG_BACKGROUND_TRANSFER | \
- DLNA_FLAG_CONNECTION_STALLING | \
- DLNA_FLAG_VERSION_1_5
-
-/****************************************************
- *
- * 3.3 Media profiles
- *
- ****************************************************/
-
-/** @see dlna/profiles.h */
-
-/****************************************************
- *
- * 3.4 Container types
- *
- ****************************************************/
-
-enum DLNAContainerTypes {
- TUNER_1_0
-};
-
-#define DLNA_CONTAINER_TUNER "Tuner_1_0" // The DLNA container type for a tuner
-
-/****************************************************
- *
- * 3.5 Device types
- *
- ****************************************************/
-
-#define DLNA_DEVICE_DMS_1_0 "DMS-1.00"
-#define DLNA_DEVICE_DMS_1_5 "DMS-1.50"
-
-/****************************************************
- *
- * 4. SQLite
- *
- ****************************************************/
-/****************************************************
- *
- * 4.1 Database setup
- *
- ****************************************************/
-
-#define SQLITE_DB_FILE "metadata.db"
-
-/****************************************************
- *
- * Please see database.h for further definitions,
- * SQL statements and triggers
- *
- ****************************************************/
-
-#endif /* _COMMON_H */
-