diff -r 000000000000 -r 7f85d04be362 upnpavcontroller/upnpavcontrollerhelper/inc/upnpconstantdefs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontroller/upnpavcontrollerhelper/inc/upnpconstantdefs.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,321 @@ +/* +* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: UPnP Object-related constant definitions +* +*/ + + + + + + +// System includes +#include + +// *************************************************** +// * Upnp interface is full of constants that come +// * directly from upnp specifications. This file +// * contains some most commonly used definitions +// * for your comfort. +// *************************************************** + + + +// *************************************************** +// * Classes +// * +// * Note: when comparing object class, the class +// * constant MUST be found in beginning: +// * +// * if ( object.ObjectClass().Find( KClassContainer ) == 0 ) +// * { ... +// * +// * +// *************************************************** + +// item. This means the object represents something +// rather than containing child objects +_LIT8( KClassItem, "object.item" ); + +// the item represents an image media +_LIT8( KClassImage, "object.item.imageItem" ); + +// the item represents a video media +_LIT8( KClassVideo, "object.item.videoItem" ); + +// the item represents an audio media +_LIT8( KClassAudio, "object.item.audioItem" ); + +// the item represents a music track +_LIT8( KClassAudioMusicTrack, "object.item.audioItem.musicTrack" ); + +// the object is a container that can contain child objects +_LIT8( KClassContainer, "object.container" ); + +// container that represents a playlist +_LIT8( KClassPlaylist, "object.container.playlistContainer" ); + +// container that represents an album of music tracks +_LIT8( KClassAlbum, "object.container.album.musicAlbum" ); + +// container that represents a generic media storage +_LIT8( KClassStorage, "object.container.storageFolder" ); + + + +// *************************************************** +// * Elements +// * +// * Use these when finding an apropriate element +// * within an object. Useful with 2 helper utility +// * functions: +// * +// * const CUpnpElement* e = UPnPCommonUtils:: +// * FindElementByName( object, KElementDate ); +// * if ( e ) { +// * const TDesC& d = e->Value(); +// * ... +// * +// * const TDesC8& d = UPnPCommonUtils:: +// * FindElementByNameL( object, KElementDate ).Value(); +// * +// * The former is useful if we are not sure if the +// * element exists, the latter if the element MUST +// * exist to proceed. +// * +// *************************************************** + +// The title. Mandatory for all objects. +_LIT8( KElementTitle, "dc:title" ); + +// The class. Mandatory for all objects. +_LIT8( KElementClass, "upnp:class" ); + +// media timestamp. In DLNA mandatory for images and videos +_LIT8( KElementDate, "dc:date" ); + +// Creator of the media. In DLNA mandatory for music tracks and albums +_LIT8( KElementCreator, "dc:creator" ); + +// The artist. De facto standard in upnp, but not mandatory. +// could be understood as an alias to dc:creator +_LIT8( KElementArtist, "upnp:artist"); + +// Album this media belongs to. in DLNA mandatory for audio tracks +_LIT8( KElementAlbum, "upnp:album"); + +// Genre. in DLNA mandatory for audio and video +_LIT8( KElementGenre, "upnp:genre"); + +// The res element. Defines the resource of the item. +_LIT8( KElementRes, "res"); + +// The SortCriteria, Search by default +_LIT8( KSortCriteria, "+dc:title"); + +// The albumArtURI +_LIT8( KElementAlbumArtUri, "upnp:albumArtURI"); + +// Song track number +_LIT8( KElementTrackNumber, "upnp:originalTrackNumber"); + + +// *************************************************** +// * Element attributes +// * +// * Use these when finding an attribute within an +// * element. +// * +// * const CUpnpElement& resource = UPnPCommonUtils +// * ::ResourceFromItemL( object ); +// * const TDesC8& size = UPnPCommonUtils +// * ::FindAttributeByNameL( resource, KAttributeSize ) +// * .Value(); +// * const TDesC8& duration = UPnPCommonUtils +// * ::FindAttributeByNameL( resource, KAttributeDuration ) +// * .Value(); +// * +// *************************************************** + +// attribute of RES element +// media size in bytes. Used for all media. +_LIT8( KAttributeSize, "size" ); + +// attribute of RES element +// image resolution: "x", example "1024x768" +// used for images and video. +_LIT8( KAttributeResolution, "resolution" ); + +// attribute of RES element +// song duration, "hh:mm:ss.yyy", example "00:03:15.000" +// used for audio and video +_LIT8( KAttributeDuration, "duration" ); + +// attribute of RES element +// UPNP and DLNA specific technical data +_LIT8( KAttributeProtocolInfo, "protocolInfo" ); + +// attribute of RES element +// bitrate. used in +_LIT8( KAttributeBitrate, "bitrate" ); + + + +// *************************************************** +// * Filters and sorting +// * +// * Pre-defined constants for browse or search. +// * The filters determine which elements the remote +// * server is adding into the response. Querying +// * only the required elements will speed up the +// * application. +// * +// * Sort criteria defines the order of returned +// * elements. +// * +// * iBs->BrowseL( _L("0"), KFilterFull, +// * MUPnPAVBrowsingSession::EDirectChildren, +// * 0, 100, KSortNone ); +// * +// *************************************************** + +// full filter, returns everything +_LIT8( KFilterFull, "*" ); + +// filter only minimum data (object id) +_LIT8( KFilterMin, "" ); + +// filter only object key data and title +_LIT8( KFilterTitle, "dc:title" ); + +// Filter most commonly used and mandatory DLNA field +_LIT8( KFilterCommon, "dc:title,dc:date,dc:creator," + "upnp:originalTrackNumber," + "upnp:album,upnp:artist,upnp:genre,upnp:albumArtURI," + "res,res@size,res@duration" ); + +// sort criteria: let server decide +_LIT8( KSortNone, "" ); + +// sort criteria: sort by object title +_LIT8( KSortTitle, "dc:title" ); + + + + +// *************************************************** +// * Constant container ID's +// * +// * Some container ID's are defined as constants +// * and have special meaning. +// * +// * Root container: the container that recursively +// * contains all other containers. This container +// * is not contained in any other container. +// * +// * Any container: used when addressing a remote +// * container. Lets the remote mediaserver decide +// * an apropriate container. +// * +// *************************************************** + +// the root container +_LIT8( KContainerIdRoot, "0" ); + +// Anycontainer +_LIT8( KContainerIdAny, "DLNA.ORG_AnyContainer" ); + + + +// *************************************************** +// * Constructing search criteria +// * +// * Some useful constants that are used in generating +// * search criteria fields +// * +// * Please see UPnP specifications for more details +// * +// *************************************************** + +// searches for elements that contain given partial string +_LIT8( KCriteriaContains, "contains" ); + +// searches for classes or any child classes of given class +_LIT8( KCriteriaDerivedFrom, "derivedfrom" ); + +// searches for classes where an element exists +_LIT8( KCriteriaExists, "exists" ); + +// negates the boolean operator +_LIT8( KCriteriaFalse, "false" ); + +// logical AND +_LIT8( KCriteriaAnd, "and" ); + +// logical OR +_LIT8( KCriteriaOr, "or" ); + +// logical comparision +_LIT8( KCriteriaEQ, "=" ); +_LIT8( KCriteriaNEQ, "!=" ); +_LIT8( KCriteriaGT, ">" ); +_LIT8( KCriteriaLT, "<" ); +_LIT8( KCriteriaGTE, ">=" ); +_LIT8( KCriteriaLTE, "<=" ); +_LIT8( KCriteriaOB, "(" ); +_LIT8( KCriteriaCB, ")" ); + +// other useful for filling up the strings +_LIT8( KCriteriaQuot, "\"" ); +_LIT8( KCriteriaSpace, " " ); + + + +// *************************************************** +// * DLNA Transfer modes +// * +// * Please see DLNA specifications for more details +// *************************************************** +_LIT8( KTransferMode, "transferMode.dlna.org" ); +_LIT8( KBackgroundMode, "Background" ); +_LIT8( KStreamingMode, "Streaming" ); +_LIT8( KInteractiveMode, "Interactive" ); + + +// *************************************************** +// * DLNA Content headers +// * +// * Please see DLNA specifications for more details +// *************************************************** +_LIT8( KContentType, "Content-Type" ); +_LIT8( KContentFeatures, "contentFeatures.dlna.org" ); + + +// *************************************************** +// * DLNA headers misc. +// * +// * Please see DLNA specifications for more details +// *************************************************** +_LIT8( KExpectHeader, "Expect" ); +_LIT8( K100Continue, "100-continue" ); + + +// *************************************************** +// * Misc +// * +// *************************************************** + +// attribute value - not implemented or not supported +_LIT8( KValueNotImplemented, "NOT_IMPLEMENTED" ); +