epoc32/include/mm/mmcaf.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 // CAF wrapper classes for Multimedia.
    15 // 
    16 //
    17 
    18 #ifndef MMCAF_H
    19 #define MMCAF_H
    20 
    21 #include <f32file.h>
    22 #include <caf/caf.h>
    23 
    24 
    25 
    26 const TUid KUidMMFileSource = {0x101F7D3E};
    27 const TUid KUidMMFileHandleSource = {0x101F7D3F};
    28 
    29 /**
    30 @publishedAll
    31 @released
    32 
    33 Base class which provides a lightweight encapsulation of a DRM protected
    34 content source.
    35 */
    36 class TMMSource
    37 	{
    38 public:
    39 
    40 	/**
    41 	Get the universal identifier of the content source.
    42 	
    43 	@return The universal identifier of the content source.
    44 	*/
    45 	IMPORT_C TUid SourceType() const;
    46 	
    47 	/**
    48     Get the Unique Id of the source object within the DRM archive.
    49     
    50     @return A reference to a descriptor containing the Unique Id.
    51 	*/
    52 	IMPORT_C const TDesC& UniqueId() const;
    53 	/**
    54 	Get the Intent used to open the source object within the DRM archive.
    55 	
    56 	@see ContentAccess::TIntent
    57 	@return The Intent.
    58 	*/
    59 	IMPORT_C ContentAccess::TIntent Intent() const;
    60 
    61 	/**
    62 	Get the flag that indicates whether an agent's UI is enabled.
    63 	
    64 	@return A boolean flag that has the value ETrue if the UI is enabled, EFalse otherwise
    65 	*/
    66 	IMPORT_C TBool IsUIEnabled() const;
    67 	
    68 protected:
    69     /**
    70     Initialise DRM protected content source
    71     
    72     @param aSourceType The source type to differentiate
    73     @param aUniqueId Unique Id of the source object within the DRM archive
    74     @param aIntent Usage intent when opening content
    75     */
    76 	IMPORT_C TMMSource(TUid aSourceType, const TDesC& aUniqueId, ContentAccess::TIntent aIntent);
    77 
    78     /**
    79     Initialise DRM protected content source
    80     
    81     @param aSourceType The source type to differentiate
    82     @param aUniqueId Unique Id of the source object within the DRM archive
    83     @param aIntent Usage intent when opening content
    84     @param aEnableUI The agent's UI is enabled or not.
    85     */
    86 	IMPORT_C TMMSource(TUid aSourceType, const TDesC& aUniqueId, ContentAccess::TIntent aIntent, TBool aEnableUI);
    87 
    88 private:
    89 	/** A univeral identifier to differentiate between content sources. */
    90 	TUid iSourceType;
    91 	/** The Unique Id of the source object within the DRM archive. */
    92 	const TDesC& iUniqueId;
    93 	/** Intent to use when opening content. */
    94 	ContentAccess::TIntent iIntent;
    95 	/** Flag whether an agent's property to enable the UI may be set prior
    96 		to evaluating the intent.	*/
    97 	TBool iEnableUI;	
    98 	/** Reserved to avoid BC break. */
    99 	TInt iReserved1;
   100 	/** Reserved to avoid BC break. */
   101 	TInt iReserved2;
   102 	};
   103 
   104 
   105 /**
   106 @publishedAll
   107 @released
   108 
   109 Provides a file handle to DRM protected content source
   110 */
   111 class TMMFileHandleSource : public TMMSource
   112 	{
   113 public:
   114 	/**
   115 	Constructs a new TMMFileHandleSource object using a file handle. The Unique Id defaults
   116 	to an empty descriptor.  The Intent defaults to ContentAccess::EUnknown.
   117 	
   118 	@param aFile A reference to a file handle object.
   119 	*/
   120 	IMPORT_C TMMFileHandleSource(RFile& aFile);
   121 	/**
   122 	Constructs a new TMMFileHandleSource object using a file handle and the Unique Id
   123 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   124 	
   125 	@param aFile A reference to a file handle object.
   126 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   127 	*/
   128 	IMPORT_C TMMFileHandleSource(RFile& aFile, const TDesC& aUniqueId);
   129 	/**
   130 	Constructs a new TMMFileHandleSource object using a file handle and the Unique Id
   131 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   132 	
   133 	@param aFile A reference to a file handle object.
   134 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   135 	@param aIntent the Intent to use when opening the source object within the DRM archive.
   136 	*/
   137 	IMPORT_C TMMFileHandleSource(RFile& aFile, const TDesC& aUniqueId, ContentAccess::TIntent aIntent);
   138 
   139 	/**
   140 	Constructs a new TMMFileHandleSource object using a file handle and the Unique Id
   141 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   142 	
   143 	@param aFile A reference to a file handle object.
   144 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   145 	@param aIntent the Intent to use when opening the source object within the DRM archive.
   146 	@param aEnableUI a flag to enable the agent's UI.
   147 	*/
   148 	IMPORT_C TMMFileHandleSource(RFile& aFile, const TDesC& aUniqueId, ContentAccess::TIntent aIntent, TBool aEnableUI);
   149 
   150 	/**
   151     Get the file handle of the source object within the DRM archive.
   152     
   153     @return A reference to the file handle.
   154 	*/
   155 	IMPORT_C RFile& Handle() const;
   156 
   157 private:
   158 	/** The file handle to use when opening content. */
   159 	RFile& iFile;
   160 	};
   161 
   162 
   163 /**
   164 @publishedAll
   165 @released
   166 
   167 A class that provides a consistent interface between filename based and file handle based API's.
   168 In particular this API:
   169 
   170 - provides support for container files with embedded content
   171 - allows enabling/disabling of Agent provided user interface features (AgentUI)
   172 - allows a client to take explicit responsibility for the execution of intent
   173 */
   174 class TMMFileSource : public TMMSource
   175 	{
   176 public:
   177 	/**
   178 	Constructs a new TMMFileSource object using a filename. The Unique Id defaults
   179 	to an empty descriptor.  The Intent defaults to ContentAccess::EUnknown.
   180 	
   181 	@param aName A reference to a filename descriptor.
   182 	*/
   183 	IMPORT_C TMMFileSource(const TDesC& aName);
   184 	/**
   185 	Constructs a new TMMFileSource object using a filename and the Unique Id
   186 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   187 	
   188 	@param aName A reference to a filename descriptor.
   189 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   190 	*/
   191 	IMPORT_C TMMFileSource(const TDesC& aName, const TDesC& aUniqueId);
   192 	/**
   193 	Constructs a new TMMFileSource object using a filename and the Unique Id
   194 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   195 	
   196 	@param aName A reference to a filename descriptor.
   197 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   198 	@param aIntent the Intent to use when opening the source object within the DRM archive.
   199 	*/
   200 	IMPORT_C TMMFileSource(const TDesC& aName, const TDesC& aUniqueId, ContentAccess::TIntent aIntent);
   201 	
   202 	/**
   203 	Constructs a new TMMFileHandleSource object using a file handle and the Unique Id
   204 	of the source object within the DRM archive.  The Intent defaults to ContentAccess::EUnknown.
   205 	
   206 	@param aName A reference to a filename descriptor.
   207 	@param aUniqueId A reference to a descriptor containing the Unique Id.
   208 	@param aIntent the Intent to use when opening the source object within the DRM archive.
   209 	@param aEnableUI a flag to enable the agent's UI.
   210 	*/
   211 	IMPORT_C TMMFileSource(const TDesC& aName, const TDesC& aUniqueId, ContentAccess::TIntent aIntent, TBool aEnableUI);
   212 
   213 	IMPORT_C const TDesC& Name() const;
   214 	
   215 private:
   216 	/** The filename to use when opening content. */
   217 	const TDesC& iName;
   218 	};
   219 
   220 	
   221 #endif // MMCAF_H