williamr@2
|
1 |
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@4
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@4
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@2
|
14 |
// mmf\common\mmfcontrollerpluginresolver.h
|
williamr@2
|
15 |
//
|
williamr@2
|
16 |
//
|
williamr@2
|
17 |
|
williamr@2
|
18 |
#ifndef MMF_COMMON_MMFCONTROLLERPLUGINRESOLVER_H
|
williamr@2
|
19 |
#define MMF_COMMON_MMFCONTROLLERPLUGINRESOLVER_H
|
williamr@2
|
20 |
|
williamr@2
|
21 |
#include <ecom/ecom.h>
|
williamr@2
|
22 |
#include <e32base.h>
|
williamr@2
|
23 |
#include <apmstd.h>
|
williamr@2
|
24 |
|
williamr@2
|
25 |
/**
|
williamr@2
|
26 |
@publishedAll
|
williamr@2
|
27 |
@released
|
williamr@2
|
28 |
|
williamr@2
|
29 |
Default heap size for the controller thread
|
williamr@2
|
30 |
*/
|
williamr@2
|
31 |
const TUint KMMFDefaultControllerThreadHeapSize = 0x100000; //1MB
|
williamr@2
|
32 |
|
williamr@2
|
33 |
|
williamr@2
|
34 |
class CMMFFormatImplementationInformation;
|
williamr@2
|
35 |
|
williamr@2
|
36 |
/**
|
williamr@2
|
37 |
@publishedAll
|
williamr@2
|
38 |
@released
|
williamr@2
|
39 |
|
williamr@2
|
40 |
Array of CMMFFormatImplementationInformation
|
williamr@2
|
41 |
*/
|
williamr@2
|
42 |
typedef RPointerArray<CMMFFormatImplementationInformation> RMMFFormatImplInfoArray;
|
williamr@2
|
43 |
|
williamr@2
|
44 |
class CMMFControllerImplementationInformation;
|
williamr@2
|
45 |
|
williamr@2
|
46 |
/**
|
williamr@2
|
47 |
@publishedAll
|
williamr@2
|
48 |
@released
|
williamr@2
|
49 |
|
williamr@2
|
50 |
Array of CMMFControllerImplementationInformation
|
williamr@2
|
51 |
*/
|
williamr@2
|
52 |
typedef RPointerArray<CMMFControllerImplementationInformation> RMMFControllerImplInfoArray;
|
williamr@2
|
53 |
|
williamr@2
|
54 |
class CMatchData;
|
williamr@2
|
55 |
|
williamr@2
|
56 |
class CDesC8Array;
|
williamr@2
|
57 |
|
williamr@2
|
58 |
/**
|
williamr@2
|
59 |
@publishedAll
|
williamr@2
|
60 |
|
williamr@2
|
61 |
Abstract class that contains basic information about ECom Multimedia plugins.
|
williamr@2
|
62 |
|
williamr@2
|
63 |
@released
|
williamr@2
|
64 |
@since 7.0s
|
williamr@2
|
65 |
*/
|
williamr@2
|
66 |
class CMMFPluginImplementationInformation : public CBase
|
williamr@2
|
67 |
{
|
williamr@2
|
68 |
public:
|
williamr@2
|
69 |
|
williamr@2
|
70 |
/**
|
williamr@2
|
71 |
Returns the uid of this particular plugin implementation.
|
williamr@2
|
72 |
This is the UID used to instantiate this multimedia plugin.
|
williamr@2
|
73 |
|
williamr@2
|
74 |
@return The implementation uid.
|
williamr@2
|
75 |
|
williamr@2
|
76 |
@since 7.0s
|
williamr@2
|
77 |
*/
|
williamr@2
|
78 |
IMPORT_C TUid Uid() const;
|
williamr@2
|
79 |
|
williamr@2
|
80 |
/**
|
williamr@2
|
81 |
Returns the display name of this plugin implementation.
|
williamr@2
|
82 |
|
williamr@2
|
83 |
@return The display name.
|
williamr@2
|
84 |
|
williamr@2
|
85 |
@since 7.0s
|
williamr@2
|
86 |
*/
|
williamr@2
|
87 |
IMPORT_C const TDesC& DisplayName() const;
|
williamr@2
|
88 |
|
williamr@2
|
89 |
/**
|
williamr@2
|
90 |
Returns the name of the supplier of this plugin implementation, e.g. "Symbian".
|
williamr@2
|
91 |
|
williamr@2
|
92 |
@return The plugin supplier.
|
williamr@2
|
93 |
|
williamr@2
|
94 |
@since 7.0s
|
williamr@2
|
95 |
*/
|
williamr@2
|
96 |
IMPORT_C const TDesC& Supplier() const;
|
williamr@2
|
97 |
|
williamr@2
|
98 |
/**
|
williamr@2
|
99 |
Returns the version number of this plugin.
|
williamr@2
|
100 |
|
williamr@2
|
101 |
@return The version number.
|
williamr@2
|
102 |
|
williamr@2
|
103 |
@since 7.0s
|
williamr@2
|
104 |
*/
|
williamr@2
|
105 |
IMPORT_C TInt Version() const;
|
williamr@2
|
106 |
|
williamr@2
|
107 |
/**
|
williamr@2
|
108 |
Returns the array of media IDs supported by this plugin.
|
williamr@2
|
109 |
|
williamr@2
|
110 |
The media ID can be used by clients to determine whether the plugin supports audio or
|
williamr@2
|
111 |
video data (or both). A UID is used for the media ID to provide future extensibility.
|
williamr@2
|
112 |
|
williamr@2
|
113 |
@return The array of media IDs.
|
williamr@2
|
114 |
|
williamr@2
|
115 |
@since 7.0s
|
williamr@2
|
116 |
*/
|
williamr@2
|
117 |
IMPORT_C const RArray<TUid>& SupportedMediaIds() const;
|
williamr@2
|
118 |
|
williamr@2
|
119 |
/**
|
williamr@2
|
120 |
Tests whether this plugin was supplied by aSupplier.
|
williamr@2
|
121 |
|
williamr@2
|
122 |
@param aSupplier
|
williamr@2
|
123 |
The required supplier.
|
williamr@2
|
124 |
|
williamr@2
|
125 |
@return A boolean indicating if this plugin was supplied by aSupplier. ETrue if this plugin was supplied
|
williamr@2
|
126 |
by aSupplier, EFalse if not.
|
williamr@2
|
127 |
|
williamr@2
|
128 |
@since 7.0s
|
williamr@2
|
129 |
*/
|
williamr@2
|
130 |
IMPORT_C TBool SupportsSupplier(const TDesC& aSupplier) const;
|
williamr@2
|
131 |
|
williamr@2
|
132 |
/**
|
williamr@2
|
133 |
Tests whether this plugin supports aMediaId.
|
williamr@2
|
134 |
|
williamr@2
|
135 |
@param aMediaId
|
williamr@2
|
136 |
The required media id.
|
williamr@2
|
137 |
|
williamr@2
|
138 |
@return A boolean indicating if the plugin supports aMediaId. ETrue if this plugin supports aMediaId, EFalse if not.
|
williamr@2
|
139 |
|
williamr@2
|
140 |
@since 7.0s
|
williamr@2
|
141 |
*/
|
williamr@2
|
142 |
IMPORT_C TBool SupportsMediaId(TUid aMediaId) const;
|
williamr@2
|
143 |
|
williamr@2
|
144 |
/**
|
williamr@2
|
145 |
Destructor.
|
williamr@2
|
146 |
*/
|
williamr@2
|
147 |
virtual ~CMMFPluginImplementationInformation();
|
williamr@2
|
148 |
|
williamr@2
|
149 |
protected:
|
williamr@2
|
150 |
|
williamr@2
|
151 |
/**
|
williamr@2
|
152 |
Constructor.
|
williamr@2
|
153 |
*/
|
williamr@2
|
154 |
CMMFPluginImplementationInformation();
|
williamr@2
|
155 |
|
williamr@2
|
156 |
/**
|
williamr@2
|
157 |
Sets the supplier. Takes a copy of aData.
|
williamr@2
|
158 |
*/
|
williamr@2
|
159 |
void SetSupplierL(const TDesC8& aData);
|
williamr@2
|
160 |
|
williamr@2
|
161 |
/**
|
williamr@2
|
162 |
Adds a media id. aData is parsed to find the uid of the media id to be added.
|
williamr@2
|
163 |
*/
|
williamr@2
|
164 |
void AddMediaIdL(const TDesC8& aData);
|
williamr@2
|
165 |
|
williamr@2
|
166 |
protected:
|
williamr@2
|
167 |
|
williamr@2
|
168 |
/**
|
williamr@2
|
169 |
The UID of this plugin.
|
williamr@2
|
170 |
*/
|
williamr@2
|
171 |
TUid iUid;
|
williamr@2
|
172 |
|
williamr@2
|
173 |
/**
|
williamr@2
|
174 |
The display name of this plugin.
|
williamr@2
|
175 |
*/
|
williamr@2
|
176 |
HBufC* iDisplayName;
|
williamr@2
|
177 |
|
williamr@2
|
178 |
/**
|
williamr@2
|
179 |
The supplier of this plugin.
|
williamr@2
|
180 |
*/
|
williamr@2
|
181 |
HBufC* iSupplier;
|
williamr@2
|
182 |
|
williamr@2
|
183 |
/**
|
williamr@2
|
184 |
The version number of this plugin.
|
williamr@2
|
185 |
*/
|
williamr@2
|
186 |
TInt iVersion;
|
williamr@2
|
187 |
|
williamr@2
|
188 |
/**
|
williamr@2
|
189 |
The media ids supported by this plugin.
|
williamr@2
|
190 |
*/
|
williamr@2
|
191 |
RArray<TUid> iMediaIds;
|
williamr@2
|
192 |
};
|
williamr@2
|
193 |
|
williamr@4
|
194 |
#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
|
williamr@4
|
195 |
#include <mmf/common/taggeddataparser.h>
|
williamr@4
|
196 |
#endif
|
williamr@4
|
197 |
|
williamr@4
|
198 |
/**
|
williamr@4
|
199 |
@publishedAll
|
williamr@4
|
200 |
|
williamr@4
|
201 |
Interface to be implemented by customers of the class TaggedDataParser.
|
williamr@4
|
202 |
*/
|
williamr@4
|
203 |
class MTaggedDataParserClient
|
williamr@4
|
204 |
{
|
williamr@4
|
205 |
public:
|
williamr@4
|
206 |
virtual void ProcessTaggedDataL(const TDesC8& aTag, const TDesC8& aData) = 0;
|
williamr@4
|
207 |
};
|
williamr@4
|
208 |
|
williamr@2
|
209 |
/**
|
williamr@2
|
210 |
@publishedAll
|
williamr@2
|
211 |
@released
|
williamr@2
|
212 |
|
williamr@2
|
213 |
Contains format support information retrieved from the ECom registry.
|
williamr@2
|
214 |
|
williamr@2
|
215 |
An object of this type may describe either a concrete format plugin (ie a CMMFFormatEncode or a
|
williamr@2
|
216 |
CMMFFormatDecode implementation) or a format supported by a controller plugin.
|
williamr@2
|
217 |
|
williamr@2
|
218 |
The object is created using a CImplementationInformation object retrieved from the ECom registry.
|
williamr@2
|
219 |
All relevant data is copied out of the CImplementationInformation object, and its opaque data is
|
williamr@2
|
220 |
parsed to provide the supplier, supported media ids, supported mime types, supported file extensions,
|
williamr@2
|
221 |
and supported header data matches.
|
williamr@2
|
222 |
|
williamr@2
|
223 |
Notes for Format Plugin developers:
|
williamr@2
|
224 |
@code
|
williamr@2
|
225 |
The opaque data section of the ECom plugin resource file must be in the format:
|
williamr@2
|
226 |
|
williamr@2
|
227 |
opaque_data = "<?>Data 1<?>Data 2<?>Data 3<?>Data 4[...]<?>Data N";
|
williamr@2
|
228 |
|
williamr@2
|
229 |
The <?> preceding the data determines the meaning of the data. The following are the possible tags:
|
williamr@2
|
230 |
|
williamr@2
|
231 |
<s> - Supplier
|
williamr@2
|
232 |
<i> - Media Id
|
williamr@2
|
233 |
<m> - Mime Type
|
williamr@2
|
234 |
<e> - File Extension
|
williamr@2
|
235 |
<h> - Header Data
|
williamr@2
|
236 |
<c> - Custom Interfaces
|
williamr@2
|
237 |
|
williamr@2
|
238 |
UIDs must always be in hex in the format '0x12345678', must include the '0x' and be 10 characters long
|
williamr@2
|
239 |
@endcode
|
williamr@2
|
240 |
|
williamr@2
|
241 |
@since 7.0s
|
williamr@2
|
242 |
*/
|
williamr@2
|
243 |
class CMMFFormatImplementationInformation : public CMMFPluginImplementationInformation, MTaggedDataParserClient
|
williamr@2
|
244 |
{
|
williamr@2
|
245 |
public:
|
williamr@2
|
246 |
/**
|
williamr@2
|
247 |
Constructs a new format implementation information object.
|
williamr@2
|
248 |
|
williamr@2
|
249 |
@param aImplInfo
|
williamr@2
|
250 |
The ECOM implementation information
|
williamr@2
|
251 |
|
williamr@2
|
252 |
@return The new object created.
|
williamr@2
|
253 |
|
williamr@2
|
254 |
@since 7.0s
|
williamr@2
|
255 |
*/
|
williamr@2
|
256 |
static CMMFFormatImplementationInformation* NewL(const CImplementationInformation& aImplInfo);
|
williamr@2
|
257 |
|
williamr@2
|
258 |
/**
|
williamr@2
|
259 |
Constructs a new format implementation information object.
|
williamr@2
|
260 |
|
williamr@2
|
261 |
@param aImplInfo
|
williamr@2
|
262 |
The ECOM implementation information
|
williamr@2
|
263 |
|
williamr@2
|
264 |
@return The new object created. Note that this will be on the cleanup stack.
|
williamr@2
|
265 |
|
williamr@2
|
266 |
@since 7.0s
|
williamr@2
|
267 |
*/
|
williamr@2
|
268 |
static CMMFFormatImplementationInformation* NewLC(const CImplementationInformation& aImplInfo);
|
williamr@2
|
269 |
|
williamr@2
|
270 |
/**
|
williamr@2
|
271 |
Destructor
|
williamr@2
|
272 |
*/
|
williamr@2
|
273 |
virtual ~CMMFFormatImplementationInformation();
|
williamr@2
|
274 |
|
williamr@2
|
275 |
/**
|
williamr@2
|
276 |
Returns the array of supported file extensions.
|
williamr@2
|
277 |
|
williamr@2
|
278 |
@return The array of file extensions.
|
williamr@2
|
279 |
@since 7.0s
|
williamr@2
|
280 |
*/
|
williamr@2
|
281 |
IMPORT_C const CDesC8Array& SupportedFileExtensions() const;
|
williamr@2
|
282 |
|
williamr@2
|
283 |
/**
|
williamr@2
|
284 |
Returns the array of supported mime types.
|
williamr@2
|
285 |
|
williamr@2
|
286 |
@return The array of mime types.
|
williamr@2
|
287 |
|
williamr@2
|
288 |
@since 7.0s
|
williamr@2
|
289 |
*/
|
williamr@2
|
290 |
IMPORT_C const CDesC8Array& SupportedMimeTypes() const;
|
williamr@2
|
291 |
|
williamr@2
|
292 |
/**
|
williamr@2
|
293 |
Returns the array of supported header data matches.
|
williamr@2
|
294 |
|
williamr@2
|
295 |
@return The array of header data.
|
williamr@2
|
296 |
@since 7.0s
|
williamr@2
|
297 |
*/
|
williamr@2
|
298 |
IMPORT_C const CDesC8Array& SupportedHeaderData() const;
|
williamr@2
|
299 |
|
williamr@2
|
300 |
/**
|
williamr@2
|
301 |
Tests whether this format provides support for the specified file extension, aFileExtension.
|
williamr@2
|
302 |
|
williamr@2
|
303 |
@param aFileExtension
|
williamr@2
|
304 |
The requested file extension. Must be the extension only, and contain the dot '.'
|
williamr@2
|
305 |
|
williamr@2
|
306 |
@return A boolean indicating if the specified file extension is supported. ETrue if this format provides
|
williamr@2
|
307 |
the required support, EFalse if it does not.
|
williamr@2
|
308 |
|
williamr@2
|
309 |
@since 7.0s
|
williamr@2
|
310 |
*/
|
williamr@2
|
311 |
IMPORT_C TBool SupportsFileExtension(const TDesC8& aFileExtension) const;
|
williamr@2
|
312 |
|
williamr@2
|
313 |
/**
|
williamr@2
|
314 |
Tests whether this format provides support for aMimeType.
|
williamr@2
|
315 |
|
williamr@2
|
316 |
@param aMimeType
|
williamr@2
|
317 |
The requested mime type.
|
williamr@2
|
318 |
|
williamr@2
|
319 |
@return A boolean indicating if the format is supported. ETrue if this format provides the required support, EFalse if not.
|
williamr@2
|
320 |
|
williamr@2
|
321 |
@since 7.0s
|
williamr@2
|
322 |
*/
|
williamr@2
|
323 |
IMPORT_C TBool SupportsMimeType(const TDesC8& aMimeType) const;
|
williamr@2
|
324 |
|
williamr@2
|
325 |
/**
|
williamr@2
|
326 |
Tests whether this format provides support for aHeaderData.
|
williamr@2
|
327 |
aHeaderData is searched for each chunk supported by this format.
|
williamr@2
|
328 |
|
williamr@2
|
329 |
@param aHeaderData
|
williamr@2
|
330 |
The requested header data.
|
williamr@2
|
331 |
|
williamr@2
|
332 |
@return A boolean indicating if aHeaderData is supported. ETrue if this format provides the required support, EFalse if not.
|
williamr@2
|
333 |
|
williamr@2
|
334 |
@since 7.0s
|
williamr@2
|
335 |
*/
|
williamr@2
|
336 |
IMPORT_C TBool SupportsHeaderDataL(const TDesC8& aHeaderData) const;
|
williamr@2
|
337 |
|
williamr@2
|
338 |
/**
|
williamr@2
|
339 |
Tests whether this format provides support for Custom Interfaces.
|
williamr@2
|
340 |
|
williamr@2
|
341 |
@return A boolean indicating if Custom Interfaces are supported. ETrue if this format provides the required support, EFalse if not.
|
williamr@2
|
342 |
*/
|
williamr@2
|
343 |
IMPORT_C TBool SupportsCustomInterfaces() const;
|
williamr@2
|
344 |
|
williamr@2
|
345 |
protected:
|
williamr@2
|
346 |
|
williamr@2
|
347 |
/**
|
williamr@2
|
348 |
Constructor
|
williamr@2
|
349 |
*/
|
williamr@2
|
350 |
CMMFFormatImplementationInformation();
|
williamr@2
|
351 |
|
williamr@2
|
352 |
/**
|
williamr@2
|
353 |
2nd phase constructor
|
williamr@2
|
354 |
*/
|
williamr@2
|
355 |
void ConstructL(const CImplementationInformation& aImplInfo);
|
williamr@2
|
356 |
|
williamr@2
|
357 |
/**
|
williamr@2
|
358 |
Adds a file extension to the array of extensions supported by this format.
|
williamr@2
|
359 |
*/
|
williamr@2
|
360 |
void AddFileExtensionL(const TDesC8& aData);
|
williamr@2
|
361 |
|
williamr@2
|
362 |
/**
|
williamr@2
|
363 |
Adds a mime type to the array of types supported by this format.
|
williamr@2
|
364 |
*/
|
williamr@2
|
365 |
void AddMimeTypeL(const TDesC8& aData);
|
williamr@2
|
366 |
|
williamr@2
|
367 |
/**
|
williamr@2
|
368 |
Adds a chunk of header data to the array of chunks supported by this format.
|
williamr@2
|
369 |
*/
|
williamr@2
|
370 |
void AddHeaderDataL(const TDesC8& aData);
|
williamr@2
|
371 |
|
williamr@2
|
372 |
/**
|
williamr@2
|
373 |
from MTaggedDataParserClient
|
williamr@2
|
374 |
*/
|
williamr@2
|
375 |
void ProcessTaggedDataL(const TDesC8& aTag, const TDesC8& aData);
|
williamr@2
|
376 |
|
williamr@2
|
377 |
private:
|
williamr@2
|
378 |
class CBody;
|
williamr@2
|
379 |
/**
|
williamr@2
|
380 |
CMMFFormatImplementationInformation body
|
williamr@2
|
381 |
*/
|
williamr@2
|
382 |
CBody* iBody;
|
williamr@2
|
383 |
};
|
williamr@2
|
384 |
|
williamr@2
|
385 |
|
williamr@2
|
386 |
/**
|
williamr@2
|
387 |
@publishedAll
|
williamr@2
|
388 |
@released
|
williamr@2
|
389 |
|
williamr@2
|
390 |
Contains controller plugin information retrieved from the ECom registry.
|
williamr@2
|
391 |
|
williamr@2
|
392 |
The object is created using a CImplementationInformation object retrieved from the ECom registry.
|
williamr@2
|
393 |
All relevant data is copied out of the CImplementationInformation object, and its opaque data is
|
williamr@2
|
394 |
parsed to provide the supplier, supported media IDs.
|
williamr@2
|
395 |
|
williamr@2
|
396 |
Notes for Format Plugin developers:
|
williamr@2
|
397 |
The exact formats supported by the controller plugin are calculated by:
|
williamr@2
|
398 |
|
williamr@2
|
399 |
1. The formats supported by the controller plugin itself must be declared in separate entries in the
|
williamr@2
|
400 |
controller plugin resource file. Two interface UIDs should be defined by the plugin writer - one
|
williamr@2
|
401 |
for the play formats supported, the other for the record formats supported. The play formats are
|
williamr@2
|
402 |
then listed as implementations of the play format interface uid, and likewise the record formats.
|
williamr@2
|
403 |
|
williamr@2
|
404 |
2. Format plugins (CMMFFormatEncode and CMMFFormatDecode) declare which controller plugin they
|
williamr@2
|
405 |
extend. ECom is search for the format plugins that extend the controller plugin, and they
|
williamr@2
|
406 |
are added to the list.
|
williamr@2
|
407 |
|
williamr@2
|
408 |
The opaque data section of the ECom plugin resource file must be in the format:
|
williamr@2
|
409 |
@code
|
williamr@2
|
410 |
|
williamr@2
|
411 |
opaque_data = "<?>Data 1<?>Data 2<?>Data 3<?>Data 4[...]<?>Data N";
|
williamr@2
|
412 |
|
williamr@2
|
413 |
The <?> preceding the data determines the meaning of the data. The following are the possible tags:
|
williamr@2
|
414 |
|
williamr@2
|
415 |
<s> - Supplier - must be only one
|
williamr@2
|
416 |
<i> - Media Id
|
williamr@2
|
417 |
<p> - UID of play format 'interface' - must be only one
|
williamr@2
|
418 |
<r> - UID of record format 'interface' - must be only one
|
williamr@2
|
419 |
|
williamr@2
|
420 |
UIDs must always be in hex in the format '0x12345678', must include the '0x' and be 10 characters long.
|
williamr@2
|
421 |
@endcode
|
williamr@2
|
422 |
|
williamr@2
|
423 |
@since 7.0s
|
williamr@2
|
424 |
*/
|
williamr@2
|
425 |
class CMMFControllerImplementationInformation : public CMMFPluginImplementationInformation, MTaggedDataParserClient
|
williamr@2
|
426 |
{
|
williamr@2
|
427 |
public:
|
williamr@2
|
428 |
|
williamr@2
|
429 |
/**
|
williamr@2
|
430 |
Constructs a new controller implementation information object.
|
williamr@2
|
431 |
|
williamr@2
|
432 |
@param aImplInfo
|
williamr@2
|
433 |
The ECOM implementation information.
|
williamr@2
|
434 |
|
williamr@2
|
435 |
@return The new object created.
|
williamr@2
|
436 |
|
williamr@2
|
437 |
@internalTechnology
|
williamr@2
|
438 |
|
williamr@2
|
439 |
@since 7.0s
|
williamr@2
|
440 |
*/
|
williamr@2
|
441 |
static CMMFControllerImplementationInformation* NewL(const CImplementationInformation& aImplInfo);
|
williamr@2
|
442 |
|
williamr@2
|
443 |
/**
|
williamr@2
|
444 |
Constructs a new controller implementation information object.
|
williamr@2
|
445 |
|
williamr@2
|
446 |
Note:
|
williamr@2
|
447 |
The new object will be on the cleanup stack.
|
williamr@2
|
448 |
|
williamr@2
|
449 |
@param aImplInfo
|
williamr@2
|
450 |
The ECOM implementation information
|
williamr@2
|
451 |
|
williamr@2
|
452 |
@return The new object created.
|
williamr@2
|
453 |
|
williamr@2
|
454 |
@internalTechnology
|
williamr@2
|
455 |
|
williamr@2
|
456 |
@since 7.0s
|
williamr@2
|
457 |
*/
|
williamr@2
|
458 |
static CMMFControllerImplementationInformation* NewLC(const CImplementationInformation& aImplInfo);
|
williamr@2
|
459 |
|
williamr@2
|
460 |
/**
|
williamr@2
|
461 |
Constructs a new controller implementation information object.
|
williamr@2
|
462 |
|
williamr@2
|
463 |
@param aUid
|
williamr@2
|
464 |
The Uid of the controller to obtain controller implementation information
|
williamr@2
|
465 |
|
williamr@2
|
466 |
@return The new object created.
|
williamr@2
|
467 |
|
williamr@2
|
468 |
@since 7.0s
|
williamr@2
|
469 |
*/
|
williamr@2
|
470 |
IMPORT_C static CMMFControllerImplementationInformation* NewL(TUid aUid);
|
williamr@2
|
471 |
|
williamr@2
|
472 |
/**
|
williamr@2
|
473 |
Destructor.
|
williamr@2
|
474 |
|
williamr@2
|
475 |
@internalTechnology
|
williamr@2
|
476 |
*/
|
williamr@2
|
477 |
~CMMFControllerImplementationInformation();
|
williamr@2
|
478 |
|
williamr@2
|
479 |
/**
|
williamr@2
|
480 |
Returns the array of play formats supported by this controller.
|
williamr@2
|
481 |
|
williamr@2
|
482 |
@return The play formats supported.
|
williamr@2
|
483 |
|
williamr@2
|
484 |
@since 7.0s
|
williamr@2
|
485 |
*/
|
williamr@2
|
486 |
IMPORT_C const RMMFFormatImplInfoArray& PlayFormats() const;
|
williamr@2
|
487 |
|
williamr@2
|
488 |
/**
|
williamr@2
|
489 |
Returns the array of record formats supported by this controller.
|
williamr@2
|
490 |
|
williamr@2
|
491 |
@return The record formats supported.
|
williamr@2
|
492 |
|
williamr@2
|
493 |
@since 7.0s
|
williamr@2
|
494 |
*/
|
williamr@2
|
495 |
IMPORT_C const RMMFFormatImplInfoArray& RecordFormats() const;
|
williamr@2
|
496 |
|
williamr@2
|
497 |
/**
|
williamr@2
|
498 |
Returns the heap space required by this controller.
|
williamr@2
|
499 |
|
williamr@2
|
500 |
@return The heap space required.
|
williamr@2
|
501 |
|
williamr@2
|
502 |
@since 7.0s
|
williamr@2
|
503 |
*/
|
williamr@2
|
504 |
IMPORT_C TUint HeapSpaceRequired() const;
|
williamr@4
|
505 |
|
williamr@2
|
506 |
/**
|
williamr@2
|
507 |
Queries the ECom registry for the play formats supported.
|
williamr@2
|
508 |
|
williamr@2
|
509 |
@internalTechnology
|
williamr@2
|
510 |
*/
|
williamr@2
|
511 |
void GetPlayFormatsL();
|
williamr@2
|
512 |
|
williamr@2
|
513 |
/**
|
williamr@2
|
514 |
Queries the ECom registry for the record formats supported.
|
williamr@2
|
515 |
|
williamr@2
|
516 |
@internalTechnology
|
williamr@2
|
517 |
*/
|
williamr@2
|
518 |
void GetRecordFormatsL();
|
williamr@2
|
519 |
|
williamr@2
|
520 |
/**
|
williamr@2
|
521 |
Returns the uri schemes of this plugin.
|
williamr@2
|
522 |
|
williamr@2
|
523 |
@return The array of uri schemes.
|
williamr@2
|
524 |
|
williamr@2
|
525 |
@internalTechnology
|
williamr@2
|
526 |
*/
|
williamr@2
|
527 |
IMPORT_C const CDesC8Array& SupportedUriSchemes() const;
|
williamr@2
|
528 |
|
williamr@2
|
529 |
/**
|
williamr@2
|
530 |
Tests whether the plugin supports aUriScheme.
|
williamr@2
|
531 |
|
williamr@2
|
532 |
@param aUriScheme
|
williamr@2
|
533 |
The required Uri Scheme.
|
williamr@2
|
534 |
|
williamr@2
|
535 |
@return A boolean indicating if the plugin supports aUriScheme. ETrue if this plugin supports aUriScheme, EFalse if not.
|
williamr@2
|
536 |
|
williamr@2
|
537 |
@internalTechnology
|
williamr@2
|
538 |
*/
|
williamr@2
|
539 |
IMPORT_C TBool SupportsUriScheme(const TDesC8& aUriScheme) const;
|
williamr@2
|
540 |
|
williamr@2
|
541 |
/**
|
williamr@2
|
542 |
Tests whether the controller plugin supports url
|
williamr@2
|
543 |
|
williamr@2
|
544 |
@return A boolean indicating if the plugin supports url. ETrue for uri supporting controller, EFalse if not.
|
williamr@2
|
545 |
|
williamr@2
|
546 |
@internalTechnology
|
williamr@2
|
547 |
*/
|
williamr@2
|
548 |
IMPORT_C TBool SupportsNetworkCapability() const;
|
williamr@2
|
549 |
|
williamr@2
|
550 |
/**
|
williamr@2
|
551 |
Sets the uri priority of this controller
|
williamr@2
|
552 |
|
williamr@2
|
553 |
@param aUriPriority
|
williamr@2
|
554 |
The Uri priority to be assigned.
|
williamr@2
|
555 |
|
williamr@2
|
556 |
@internalTechnology
|
williamr@2
|
557 |
*/
|
williamr@2
|
558 |
IMPORT_C void SetUriPriority(TInt aUriPriority);
|
williamr@2
|
559 |
|
williamr@2
|
560 |
/**
|
williamr@2
|
561 |
Retrieves the uri priority of this controller.
|
williamr@2
|
562 |
Higher priority implies greater number. ie UriPriority() returning 3
|
williamr@2
|
563 |
has higher prioirty than UriPriority() returning 1.
|
williamr@2
|
564 |
|
williamr@2
|
565 |
@return The assigned Uri priority.
|
williamr@2
|
566 |
|
williamr@2
|
567 |
@internalTechnology
|
williamr@2
|
568 |
*/
|
williamr@2
|
569 |
IMPORT_C TInt UriPriority() const;
|
williamr@2
|
570 |
|
williamr@2
|
571 |
/**
|
williamr@2
|
572 |
Check whether the controller plugin supports secure DRM process mode
|
williamr@2
|
573 |
|
williamr@2
|
574 |
@return A boolean indicating if the plugin supports secure DRM process mode.
|
williamr@2
|
575 |
ETrue for secure DRM process mode supporting controller, EFalse if not.
|
williamr@2
|
576 |
|
williamr@2
|
577 |
@internalTechnology
|
williamr@2
|
578 |
*/
|
williamr@2
|
579 |
IMPORT_C TBool SupportsSecureDRMProcessMode() const;
|
williamr@4
|
580 |
|
williamr@4
|
581 |
/**
|
williamr@4
|
582 |
Returns the stack space required by this controller.
|
williamr@4
|
583 |
|
williamr@4
|
584 |
@return The stack space required.
|
williamr@4
|
585 |
|
williamr@4
|
586 |
@internalTechnology
|
williamr@4
|
587 |
*/
|
williamr@4
|
588 |
IMPORT_C TUint StackSize() const;
|
williamr@2
|
589 |
|
williamr@2
|
590 |
protected:
|
williamr@2
|
591 |
|
williamr@2
|
592 |
/**
|
williamr@2
|
593 |
Constructor.
|
williamr@2
|
594 |
|
williamr@2
|
595 |
@internalTechnology
|
williamr@2
|
596 |
*/
|
williamr@2
|
597 |
CMMFControllerImplementationInformation();
|
williamr@2
|
598 |
|
williamr@2
|
599 |
/**
|
williamr@2
|
600 |
2nd phase constructor.
|
williamr@2
|
601 |
|
williamr@2
|
602 |
@internalTechnology
|
williamr@2
|
603 |
*/
|
williamr@2
|
604 |
void ConstructL(const CImplementationInformation& aImplInfo);
|
williamr@2
|
605 |
|
williamr@2
|
606 |
/**
|
williamr@2
|
607 |
Parses aData to get the collection UID of the play formats supported by this controller.
|
williamr@2
|
608 |
|
williamr@2
|
609 |
@internalTechnology
|
williamr@2
|
610 |
*/
|
williamr@2
|
611 |
void SetPlayFormatCollectionUidL(const TDesC8& aData);
|
williamr@2
|
612 |
|
williamr@2
|
613 |
/**
|
williamr@2
|
614 |
Parses aData to get the collection UID of the record formats supported by this controller.
|
williamr@2
|
615 |
|
williamr@2
|
616 |
@internalTechnology
|
williamr@2
|
617 |
*/
|
williamr@2
|
618 |
void SetRecordFormatCollectionUidL(const TDesC8& aData);
|
williamr@2
|
619 |
|
williamr@2
|
620 |
/**
|
williamr@2
|
621 |
Parses aData to get the size of the stack the controller requires.
|
williamr@2
|
622 |
|
williamr@2
|
623 |
@internalTechnology
|
williamr@2
|
624 |
*/
|
williamr@2
|
625 |
void SetHeapSizeL(const TDesC8& aData);
|
williamr@2
|
626 |
|
williamr@2
|
627 |
/**
|
williamr@2
|
628 |
From MTaggedDataParserClient.
|
williamr@2
|
629 |
*/
|
williamr@2
|
630 |
void ProcessTaggedDataL(const TDesC8& aTag, const TDesC8& aData);
|
williamr@2
|
631 |
|
williamr@2
|
632 |
/**
|
williamr@2
|
633 |
Queries the ECom registry for:
|
williamr@2
|
634 |
- all registry entries with an interface UID of aFormatCollectionUid
|
williamr@2
|
635 |
- all format plugins with an interface UID of aFormatPluginCollectionUid (ie CMMFFormatEncode
|
williamr@2
|
636 |
or CMMFFormatDecode) that have the UID of this controller plugin in the default_data field
|
williamr@2
|
637 |
of their ECom resource file.
|
williamr@2
|
638 |
|
williamr@2
|
639 |
CMMFFormatImplementationInformation objects are created for each entry returned, and appended to
|
williamr@2
|
640 |
aFormatArray.
|
williamr@2
|
641 |
|
williamr@2
|
642 |
@param aFormatCollectionUid
|
williamr@2
|
643 |
See above.
|
williamr@2
|
644 |
@param aFormatPluginCollectionUid
|
williamr@2
|
645 |
See above.
|
williamr@2
|
646 |
@param aFormatArray
|
williamr@2
|
647 |
See above.
|
williamr@2
|
648 |
|
williamr@2
|
649 |
@internalTechnology
|
williamr@2
|
650 |
|
williamr@2
|
651 |
@since 7.0s
|
williamr@2
|
652 |
*/
|
williamr@2
|
653 |
void GetFormatsL(TUid aFormatCollectionUid, TUid aFormatPluginCollectionUid, RMMFFormatImplInfoArray& aFormatArray);
|
williamr@2
|
654 |
|
williamr@2
|
655 |
/**
|
williamr@2
|
656 |
Creates CMMFFormatImplementationInformation objects for all CImplementationInformation objects
|
williamr@2
|
657 |
in aEcomArray. Any corrupt objects are ignored. The objects created are added to aFormatArray.
|
williamr@2
|
658 |
|
williamr@2
|
659 |
@param aEcomArray
|
williamr@2
|
660 |
See above.
|
williamr@2
|
661 |
@param aFormatArray
|
williamr@2
|
662 |
See above.
|
williamr@2
|
663 |
|
williamr@2
|
664 |
@internalTechnology
|
williamr@2
|
665 |
|
williamr@2
|
666 |
@since 7.0s
|
williamr@2
|
667 |
*/
|
williamr@2
|
668 |
void AddFormatsSwallowCorruptL(RImplInfoPtrArray& aEcomArray, RMMFFormatImplInfoArray& aFormatArray);
|
williamr@2
|
669 |
|
williamr@2
|
670 |
/**
|
williamr@2
|
671 |
Sets the Uri Scheme found in opaque data
|
williamr@2
|
672 |
|
williamr@2
|
673 |
@param aUriScheme
|
williamr@2
|
674 |
Gives the uri scheme supported by the controller
|
williamr@2
|
675 |
|
williamr@2
|
676 |
@internalTechnology
|
williamr@2
|
677 |
*/
|
williamr@2
|
678 |
void SetUriSchemeL(const TDesC8& aUriScheme);
|
williamr@2
|
679 |
|
williamr@2
|
680 |
/**
|
williamr@2
|
681 |
Sets the Network capability found in opaque data
|
williamr@2
|
682 |
|
williamr@2
|
683 |
@param aNetworkCapable
|
williamr@2
|
684 |
Declares the incapability to support uri if matches to 'yes'.
|
williamr@2
|
685 |
If this is the case, iIsNetworkCtrl is set to EFalse
|
williamr@2
|
686 |
|
williamr@2
|
687 |
@internalTechnology
|
williamr@2
|
688 |
*/
|
williamr@2
|
689 |
void SetNetworkCapabilityL(const TDesC8& aNetworkCapable);
|
williamr@2
|
690 |
|
williamr@4
|
691 |
/**
|
williamr@4
|
692 |
Parses aData to get the size of the stack the controller requires.
|
williamr@4
|
693 |
|
williamr@4
|
694 |
@internalTechnology
|
williamr@4
|
695 |
*/
|
williamr@4
|
696 |
void SetStackSizeL(const TDesC8& aData);
|
williamr@4
|
697 |
|
williamr@4
|
698 |
|
williamr@2
|
699 |
private:
|
williamr@2
|
700 |
|
williamr@2
|
701 |
/**
|
williamr@2
|
702 |
The play formats supported by this controller.
|
williamr@2
|
703 |
*/
|
williamr@2
|
704 |
RMMFFormatImplInfoArray iPlayFormats;
|
williamr@2
|
705 |
|
williamr@2
|
706 |
/**
|
williamr@2
|
707 |
The record formats supported by this controller.
|
williamr@2
|
708 |
*/
|
williamr@2
|
709 |
RMMFFormatImplInfoArray iRecordFormats;
|
williamr@2
|
710 |
|
williamr@2
|
711 |
/**
|
williamr@2
|
712 |
The interface uid of the resource file definitions of the play formats supported directly by this controller.
|
williamr@2
|
713 |
*/
|
williamr@2
|
714 |
TUid iPlayFormatCollectionUid;
|
williamr@2
|
715 |
|
williamr@2
|
716 |
/**
|
williamr@2
|
717 |
The interface uid of the resource file definitions of the record formats supported directly by this controller.
|
williamr@2
|
718 |
*/
|
williamr@2
|
719 |
TUid iRecordFormatCollectionUid;
|
williamr@2
|
720 |
|
williamr@2
|
721 |
/**
|
williamr@2
|
722 |
The heap space required by this controller
|
williamr@2
|
723 |
*/
|
williamr@2
|
724 |
TUint iHeapSpaceRequired;
|
williamr@4
|
725 |
|
williamr@2
|
726 |
/**
|
williamr@2
|
727 |
The Uri scheme supported by this plugin
|
williamr@2
|
728 |
*/
|
williamr@2
|
729 |
CDesC8Array* iUriSchemes;
|
williamr@2
|
730 |
|
williamr@2
|
731 |
/**
|
williamr@2
|
732 |
The uri priority acquired by this controller
|
williamr@2
|
733 |
*/
|
williamr@2
|
734 |
TInt iUriPriority;
|
williamr@2
|
735 |
|
williamr@2
|
736 |
/**
|
williamr@2
|
737 |
The uri support provided by this controller
|
williamr@2
|
738 |
*/
|
williamr@2
|
739 |
TBool iIsNetworkCtrl;
|
williamr@2
|
740 |
|
williamr@2
|
741 |
/**
|
williamr@2
|
742 |
Secure DRM process model supported by this controller
|
williamr@2
|
743 |
*/
|
williamr@2
|
744 |
TBool iSupportsSecureDRMProcessMode;
|
williamr@4
|
745 |
/**
|
williamr@4
|
746 |
The stack space required by this controller
|
williamr@4
|
747 |
*/
|
williamr@4
|
748 |
TUint iStackSize;
|
williamr@2
|
749 |
};
|
williamr@2
|
750 |
|
williamr@2
|
751 |
|
williamr@2
|
752 |
/**
|
williamr@2
|
753 |
@publishedAll
|
williamr@2
|
754 |
|
williamr@2
|
755 |
Contains the parameters used to select mmf plugins from the ECOM registry.
|
williamr@2
|
756 |
|
williamr@2
|
757 |
@released
|
williamr@2
|
758 |
@since 7.0s
|
williamr@2
|
759 |
*/
|
williamr@2
|
760 |
class CMMFPluginSelectionParameters : public CBase
|
williamr@2
|
761 |
{
|
williamr@2
|
762 |
public:
|
williamr@2
|
763 |
|
williamr@2
|
764 |
/**
|
williamr@2
|
765 |
Describes the type of preferred supplier match to be performed on the plugins return from
|
williamr@2
|
766 |
the ECOM registry.
|
williamr@2
|
767 |
*/
|
williamr@2
|
768 |
enum TPreferredSupplierMatchType
|
williamr@2
|
769 |
{
|
williamr@2
|
770 |
|
williamr@2
|
771 |
/** No preferred supplier match will be performed.
|
williamr@2
|
772 |
*/
|
williamr@2
|
773 |
ENoPreferredSupplierMatch,
|
williamr@2
|
774 |
|
williamr@2
|
775 |
/** Plugins from all suppliers will be returned, but those from the preferred supplier will be first in the list.
|
williamr@2
|
776 |
*/
|
williamr@2
|
777 |
EPreferredSupplierPluginsFirstInList,
|
williamr@2
|
778 |
|
williamr@2
|
779 |
/** Only plugins from the preferred supplier will be returned.
|
williamr@2
|
780 |
*/
|
williamr@2
|
781 |
EOnlyPreferredSupplierPluginsReturned
|
williamr@2
|
782 |
};
|
williamr@2
|
783 |
/**
|
williamr@2
|
784 |
Describes the type of media ID match to be performed on the plugins return from
|
williamr@2
|
785 |
the ECOM registry.
|
williamr@2
|
786 |
*/
|
williamr@2
|
787 |
enum TMediaIdMatchType
|
williamr@2
|
788 |
{
|
williamr@2
|
789 |
|
williamr@2
|
790 |
/** No media ID match will be performed.
|
williamr@2
|
791 |
*/
|
williamr@2
|
792 |
ENoMediaIdMatch,
|
williamr@2
|
793 |
|
williamr@2
|
794 |
/** All plugins that support the media ID supplied will be returned, even those that support
|
williamr@2
|
795 |
other media IDs. For example, if an audio plugin is requested, plugins that support
|
williamr@2
|
796 |
audio and video will also be returned.
|
williamr@2
|
797 |
*/
|
williamr@2
|
798 |
EAllowOtherMediaIds,
|
williamr@2
|
799 |
|
williamr@2
|
800 |
/** Only plugins that support the exact media IDs supplied will be returned. For example, if an
|
williamr@2
|
801 |
audio plugin is requested, plugins that only support audio will be returned
|
williamr@2
|
802 |
(ie. no audio/video plugins).
|
williamr@2
|
803 |
*/
|
williamr@2
|
804 |
EAllowOnlySuppliedMediaIds
|
williamr@2
|
805 |
};
|
williamr@2
|
806 |
|
williamr@2
|
807 |
public:
|
williamr@2
|
808 |
|
williamr@2
|
809 |
/**
|
williamr@2
|
810 |
Destructor. Resets and destroys all member data.
|
williamr@2
|
811 |
|
williamr@2
|
812 |
@since 7.0s
|
williamr@2
|
813 |
*/
|
williamr@2
|
814 |
virtual ~CMMFPluginSelectionParameters();
|
williamr@2
|
815 |
|
williamr@2
|
816 |
|
williamr@2
|
817 |
/**
|
williamr@2
|
818 |
Sets the preferred supplier of the plugin.
|
williamr@2
|
819 |
|
williamr@2
|
820 |
@param aPreferredSupplier
|
williamr@2
|
821 |
The preferred supplier of the plugin.
|
williamr@2
|
822 |
@param aMatchType
|
williamr@2
|
823 |
The type of match to be made.
|
williamr@2
|
824 |
|
williamr@2
|
825 |
@since 7.0s
|
williamr@2
|
826 |
*/
|
williamr@2
|
827 |
IMPORT_C void SetPreferredSupplierL(const TDesC& aPreferredSupplier, TPreferredSupplierMatchType aMatchType);
|
williamr@2
|
828 |
|
williamr@2
|
829 |
/**
|
williamr@2
|
830 |
Sets the media IDs that must be supported by the plugin, for example audio, video etc.
|
williamr@2
|
831 |
|
williamr@2
|
832 |
@param aMediaIds
|
williamr@2
|
833 |
An array of the media IDs that the selected plugins must support.
|
williamr@2
|
834 |
@param aMatchType
|
williamr@2
|
835 |
The type of match to be made.
|
williamr@2
|
836 |
|
williamr@2
|
837 |
@since 7.0s
|
williamr@2
|
838 |
*/
|
williamr@2
|
839 |
IMPORT_C void SetMediaIdsL(const RArray<TUid>& aMediaIds, TMediaIdMatchType aMatchType);
|
williamr@2
|
840 |
|
williamr@2
|
841 |
/**
|
williamr@2
|
842 |
Returns the preferred supplier. If no preferred supplier has been set, a blank
|
williamr@2
|
843 |
string will be returned.
|
williamr@2
|
844 |
|
williamr@2
|
845 |
@return The preferred supplier
|
williamr@2
|
846 |
@since 7.0s
|
williamr@2
|
847 |
*/
|
williamr@2
|
848 |
IMPORT_C const TDesC& PreferredSupplier() const;
|
williamr@2
|
849 |
|
williamr@2
|
850 |
/**
|
williamr@2
|
851 |
Returns the type of preferred supplier match to perform.
|
williamr@2
|
852 |
|
williamr@2
|
853 |
@return The preferred supplier match type.
|
williamr@2
|
854 |
@since 7.0s
|
williamr@2
|
855 |
*/
|
williamr@2
|
856 |
IMPORT_C TPreferredSupplierMatchType PreferredSupplierMatchType() const;
|
williamr@2
|
857 |
|
williamr@2
|
858 |
/**
|
williamr@2
|
859 |
Returns the list of media IDs that must be supported by the plugin.
|
williamr@2
|
860 |
|
williamr@2
|
861 |
@return The list of media IDs.
|
williamr@2
|
862 |
|
williamr@2
|
863 |
@since 7.0s
|
williamr@2
|
864 |
*/
|
williamr@2
|
865 |
IMPORT_C const RArray<TUid>& MediaIds() const;
|
williamr@2
|
866 |
|
williamr@2
|
867 |
/**
|
williamr@2
|
868 |
Returns the type of preferred supplier match to perform.
|
williamr@2
|
869 |
|
williamr@2
|
870 |
@return The preferred supplier match type.
|
williamr@2
|
871 |
|
williamr@2
|
872 |
@since 7.0s
|
williamr@2
|
873 |
*/
|
williamr@2
|
874 |
IMPORT_C TMediaIdMatchType MediaIdMatchType() const;
|
williamr@2
|
875 |
|
williamr@2
|
876 |
/**
|
williamr@2
|
877 |
Returns the uid of the interface to be searched for plugin matches.
|
williamr@2
|
878 |
|
williamr@2
|
879 |
@return The interface uid.
|
williamr@2
|
880 |
|
williamr@2
|
881 |
@since 7.0s
|
williamr@2
|
882 |
*/
|
williamr@2
|
883 |
IMPORT_C TUid InterfaceUid() const;
|
williamr@2
|
884 |
|
williamr@2
|
885 |
protected:
|
williamr@2
|
886 |
|
williamr@2
|
887 |
/**
|
williamr@2
|
888 |
Protected constructor.
|
williamr@2
|
889 |
|
williamr@2
|
890 |
Defaults to setting the TPreferredSupplierMatchType enum to ENoPreferredSupplierMatch and TMediaIdMatchType
|
williamr@2
|
891 |
to ENoMediaIdMatch.
|
williamr@2
|
892 |
|
williamr@2
|
893 |
@param aPluginInterfaceUid
|
williamr@2
|
894 |
The plugin's interface UID.
|
williamr@2
|
895 |
*/
|
williamr@2
|
896 |
CMMFPluginSelectionParameters(TUid aPluginInterfaceUid);
|
williamr@2
|
897 |
|
williamr@2
|
898 |
/**
|
williamr@2
|
899 |
Tests whether the specified media is supported by the plugin.
|
williamr@2
|
900 |
|
williamr@2
|
901 |
@param aPlugin
|
williamr@2
|
902 |
The media to test.
|
williamr@2
|
903 |
|
williamr@2
|
904 |
@return A boolean indicating if the specified media is supported by the plugin. ETrue if the specified
|
williamr@2
|
905 |
media is supported by the plugin. EFalse if the specified media is not supported by the plugin.
|
williamr@2
|
906 |
*/
|
williamr@2
|
907 |
TBool CheckMediaIdSupportL(const CMMFPluginImplementationInformation& aPlugin) const;
|
williamr@2
|
908 |
private:
|
williamr@2
|
909 |
TUid iPluginInterfaceUid;
|
williamr@2
|
910 |
HBufC* iPreferredSupplier;
|
williamr@2
|
911 |
TPreferredSupplierMatchType iPreferredSupplierMatchType;
|
williamr@2
|
912 |
RArray<TUid> iMediaIds;
|
williamr@2
|
913 |
TMediaIdMatchType iMediaIdMatchType;
|
williamr@2
|
914 |
};
|
williamr@2
|
915 |
|
williamr@2
|
916 |
/**
|
williamr@2
|
917 |
@publishedAll
|
williamr@2
|
918 |
|
williamr@2
|
919 |
Defines the format support required.
|
williamr@2
|
920 |
|
williamr@2
|
921 |
On construction, the selection parameters are blank, causing all plugins to be returned.
|
williamr@2
|
922 |
|
williamr@2
|
923 |
@released
|
williamr@2
|
924 |
@since 7.0s
|
williamr@2
|
925 |
*/
|
williamr@2
|
926 |
class CMMFFormatSelectionParameters : public CBase
|
williamr@2
|
927 |
{
|
williamr@2
|
928 |
public:
|
williamr@2
|
929 |
/**
|
williamr@2
|
930 |
Describes the type of match to be performed.
|
williamr@2
|
931 |
The match types are mutually exclusive.
|
williamr@2
|
932 |
*/
|
williamr@2
|
933 |
enum TMatchDataType
|
williamr@2
|
934 |
{
|
williamr@2
|
935 |
|
williamr@2
|
936 |
/** All plugins will be selected. This is the default option.
|
williamr@2
|
937 |
*/
|
williamr@2
|
938 |
EMatchAny,
|
williamr@2
|
939 |
|
williamr@2
|
940 |
/** The match will be based on a file extension.
|
williamr@2
|
941 |
*/
|
williamr@2
|
942 |
EMatchFileExtension,
|
williamr@2
|
943 |
|
williamr@2
|
944 |
/** The match will be based on a mime type.
|
williamr@2
|
945 |
*/
|
williamr@2
|
946 |
EMatchMimeType,
|
williamr@2
|
947 |
|
williamr@2
|
948 |
/** The match will be based on a header data.
|
williamr@2
|
949 |
*/
|
williamr@2
|
950 |
EMatchHeaderData,
|
williamr@2
|
951 |
|
williamr@2
|
952 |
/**
|
williamr@2
|
953 |
@publishedPartner
|
williamr@4
|
954 |
@released
|
williamr@2
|
955 |
|
williamr@2
|
956 |
The match will be based on Uri details.
|
williamr@2
|
957 |
*/
|
williamr@2
|
958 |
EMatchUri
|
williamr@2
|
959 |
};
|
williamr@2
|
960 |
|
williamr@2
|
961 |
public:
|
williamr@2
|
962 |
|
williamr@2
|
963 |
/**
|
williamr@2
|
964 |
Allocates and constructs a new format selection parameter object with blank parameters.
|
williamr@2
|
965 |
|
williamr@2
|
966 |
Calls NewLC().
|
williamr@2
|
967 |
|
williamr@2
|
968 |
@return A new format selection parameter object.
|
williamr@2
|
969 |
*/
|
williamr@2
|
970 |
IMPORT_C static CMMFFormatSelectionParameters* NewL();
|
williamr@2
|
971 |
|
williamr@2
|
972 |
/**
|
williamr@2
|
973 |
Allocates and constructs a new format selection parameter object with blank parameters, placing it on the
|
williamr@2
|
974 |
cleanup stack.
|
williamr@2
|
975 |
|
williamr@2
|
976 |
@return A new format selection parameter object.
|
williamr@2
|
977 |
*/
|
williamr@2
|
978 |
IMPORT_C static CMMFFormatSelectionParameters* NewLC();
|
williamr@2
|
979 |
|
williamr@2
|
980 |
/**
|
williamr@2
|
981 |
Allocates and constructs a new format selection parameter object with the specified parameters.
|
williamr@2
|
982 |
|
williamr@2
|
983 |
@param aParams
|
williamr@2
|
984 |
The required parameters.
|
williamr@2
|
985 |
@return A new format selection parameter object.
|
williamr@2
|
986 |
*/
|
williamr@2
|
987 |
static CMMFFormatSelectionParameters* NewL(const CMMFFormatSelectionParameters& aParams);
|
williamr@2
|
988 |
|
williamr@2
|
989 |
/**
|
williamr@2
|
990 |
Sets this object to match to a file extension.
|
williamr@2
|
991 |
|
williamr@2
|
992 |
aFileName can be a full filename or just an extension. If there is no dot in the filename
|
williamr@2
|
993 |
and it is 5 characters or less in length then it is assumed to be an extension. If the first
|
williamr@2
|
994 |
character of the filename is a dot, it assumed to be an extension. Otherwise, the filename
|
williamr@2
|
995 |
is parsed using TParse to reveal the extension.
|
williamr@2
|
996 |
|
williamr@2
|
997 |
Once the extension has been extracted, it is converted from unicode to utf8 and copied into
|
williamr@2
|
998 |
iMatchData.
|
williamr@2
|
999 |
|
williamr@2
|
1000 |
@param aFileName
|
williamr@2
|
1001 |
The file name to be matched. Must include the extension.
|
williamr@2
|
1002 |
|
williamr@2
|
1003 |
@since 7.0s
|
williamr@2
|
1004 |
*/
|
williamr@2
|
1005 |
IMPORT_C void SetMatchToFileNameL(const TDesC& aFileName);
|
williamr@2
|
1006 |
|
williamr@2
|
1007 |
/**
|
williamr@2
|
1008 |
Sets this object to match to a file extension specified by a URI
|
williamr@2
|
1009 |
|
williamr@2
|
1010 |
Once the extension has been extracted, it is copied into iMatchData.
|
williamr@2
|
1011 |
|
williamr@2
|
1012 |
@param aUri
|
williamr@2
|
1013 |
The URI containing the file name to be matched. Must include the extension.
|
williamr@2
|
1014 |
|
williamr@2
|
1015 |
@since 7.0s
|
williamr@2
|
1016 |
*/
|
williamr@2
|
1017 |
IMPORT_C void SetMatchToUriL(const TDesC& aUri);
|
williamr@2
|
1018 |
|
williamr@2
|
1019 |
/**
|
williamr@2
|
1020 |
@publishedPartner
|
williamr@4
|
1021 |
@released
|
williamr@2
|
1022 |
|
williamr@2
|
1023 |
Sets this object to match to uri scheme and file extension specified by a URI.
|
williamr@2
|
1024 |
|
williamr@2
|
1025 |
The Uri scheme and extension are saved in iMatchReqData. Further,iMatchData contains uri extension,
|
williamr@2
|
1026 |
iMatchUriScheme contains uri scheme.
|
williamr@2
|
1027 |
|
williamr@2
|
1028 |
@param aUri
|
williamr@2
|
1029 |
The URI containing the scheme and uri extension to be matched.
|
williamr@2
|
1030 |
|
williamr@2
|
1031 |
*/
|
williamr@2
|
1032 |
IMPORT_C void SetMatchToUriSupportL(const TDesC& aUri);
|
williamr@2
|
1033 |
|
williamr@2
|
1034 |
/**
|
williamr@2
|
1035 |
Sets this object to match to a MIME type.
|
williamr@2
|
1036 |
|
williamr@2
|
1037 |
@param aMimeType
|
williamr@2
|
1038 |
The mime type to match.
|
williamr@2
|
1039 |
|
williamr@2
|
1040 |
@since 7.0s
|
williamr@2
|
1041 |
*/
|
williamr@2
|
1042 |
IMPORT_C void SetMatchToMimeTypeL(const TDesC8& aMimeType);
|
williamr@2
|
1043 |
|
williamr@2
|
1044 |
/**
|
williamr@2
|
1045 |
Sets this object to match to a pattern in header data.
|
williamr@2
|
1046 |
|
williamr@2
|
1047 |
@param aHeaderData
|
williamr@2
|
1048 |
The header of the file in question. This header data will be matched
|
williamr@2
|
1049 |
against the match patterns provided by the plugins.
|
williamr@2
|
1050 |
|
williamr@2
|
1051 |
@since 7.0s
|
williamr@2
|
1052 |
*/
|
williamr@2
|
1053 |
IMPORT_C void SetMatchToHeaderDataL(const TDesC8& aHeaderData);
|
williamr@2
|
1054 |
|
williamr@2
|
1055 |
/**
|
williamr@2
|
1056 |
Returns the data used to perform the plugin match.
|
williamr@2
|
1057 |
|
williamr@2
|
1058 |
@return The match data.
|
williamr@2
|
1059 |
|
williamr@2
|
1060 |
@since 7.0s
|
williamr@2
|
1061 |
*/
|
williamr@2
|
1062 |
IMPORT_C const TDesC8& MatchData() const;
|
williamr@2
|
1063 |
|
williamr@2
|
1064 |
/**
|
williamr@2
|
1065 |
@publishedPartner
|
williamr@4
|
1066 |
@released
|
williamr@2
|
1067 |
|
williamr@2
|
1068 |
Returns the uri scheme used to perform the plugin match.
|
williamr@2
|
1069 |
|
williamr@2
|
1070 |
@return The uri scheme.
|
williamr@2
|
1071 |
|
williamr@2
|
1072 |
*/
|
williamr@2
|
1073 |
IMPORT_C const TDesC8& MatchUriScheme() const;
|
williamr@2
|
1074 |
|
williamr@2
|
1075 |
/**
|
williamr@2
|
1076 |
Returns the type of the data used to perform the plugin match.
|
williamr@2
|
1077 |
|
williamr@2
|
1078 |
@return The match data type.
|
williamr@2
|
1079 |
|
williamr@2
|
1080 |
@since 7.0s
|
williamr@2
|
1081 |
*/
|
williamr@2
|
1082 |
IMPORT_C TMatchDataType MatchDataType() const;
|
williamr@2
|
1083 |
|
williamr@2
|
1084 |
/**
|
williamr@2
|
1085 |
Destructor.
|
williamr@2
|
1086 |
*/
|
williamr@2
|
1087 |
virtual ~CMMFFormatSelectionParameters();
|
williamr@2
|
1088 |
protected:
|
williamr@2
|
1089 |
|
williamr@2
|
1090 |
/**
|
williamr@2
|
1091 |
Protected constructor.
|
williamr@2
|
1092 |
*/
|
williamr@2
|
1093 |
CMMFFormatSelectionParameters();
|
williamr@2
|
1094 |
void ConstructL(const CMMFFormatSelectionParameters& aParams);
|
williamr@2
|
1095 |
|
williamr@2
|
1096 |
private:
|
williamr@2
|
1097 |
CMatchData* iMatchReqData;
|
williamr@2
|
1098 |
TMatchDataType iMatchDataType;
|
williamr@2
|
1099 |
};
|
williamr@2
|
1100 |
|
williamr@2
|
1101 |
|
williamr@2
|
1102 |
|
williamr@2
|
1103 |
/**
|
williamr@2
|
1104 |
@publishedAll
|
williamr@2
|
1105 |
@released
|
williamr@2
|
1106 |
|
williamr@2
|
1107 |
Contains the parameters used to select controller plugins from the ECOM registry.
|
williamr@2
|
1108 |
|
williamr@2
|
1109 |
@since 7.0s
|
williamr@2
|
1110 |
*/
|
williamr@2
|
1111 |
class CMMFControllerPluginSelectionParameters : public CMMFPluginSelectionParameters
|
williamr@2
|
1112 |
{
|
williamr@2
|
1113 |
public:
|
williamr@2
|
1114 |
|
williamr@2
|
1115 |
/**
|
williamr@2
|
1116 |
Constructs a new controller selection parameters object.
|
williamr@2
|
1117 |
|
williamr@2
|
1118 |
@return The new object created.
|
williamr@2
|
1119 |
|
williamr@2
|
1120 |
@since 7.0s
|
williamr@2
|
1121 |
*/
|
williamr@2
|
1122 |
IMPORT_C static CMMFControllerPluginSelectionParameters* NewL();
|
williamr@2
|
1123 |
|
williamr@2
|
1124 |
/**
|
williamr@2
|
1125 |
Construct a new controller selection parameters object.
|
williamr@2
|
1126 |
|
williamr@2
|
1127 |
@return The new object created. Note that the new object will be left on the cleanup stack.
|
williamr@2
|
1128 |
|
williamr@2
|
1129 |
@since 7.0s
|
williamr@2
|
1130 |
*/
|
williamr@2
|
1131 |
IMPORT_C static CMMFControllerPluginSelectionParameters* NewLC();
|
williamr@2
|
1132 |
|
williamr@2
|
1133 |
/**
|
williamr@2
|
1134 |
Sets the play format support required.
|
williamr@2
|
1135 |
|
williamr@2
|
1136 |
Note:
|
williamr@2
|
1137 |
The play formats supported by the controller plugins will only be retrieved if
|
williamr@2
|
1138 |
this method is called. To get all the play formats supported by the system, call this
|
williamr@2
|
1139 |
with a 'blank' CMMFFormatSelectionParameters object.
|
williamr@2
|
1140 |
|
williamr@2
|
1141 |
@param aRequiredSupport
|
williamr@2
|
1142 |
The play format support required.
|
williamr@2
|
1143 |
|
williamr@2
|
1144 |
@since 7.0s
|
williamr@2
|
1145 |
*/
|
williamr@2
|
1146 |
IMPORT_C void SetRequiredPlayFormatSupportL(const CMMFFormatSelectionParameters& aRequiredSupport);
|
williamr@2
|
1147 |
|
williamr@2
|
1148 |
/**
|
williamr@2
|
1149 |
Sets the record format support required.
|
williamr@2
|
1150 |
|
williamr@2
|
1151 |
Note:
|
williamr@2
|
1152 |
The record formats supported by the controller plugins will only be retrieved if
|
williamr@2
|
1153 |
this method is called. To get all the record formats supported by the system, call this
|
williamr@2
|
1154 |
with a 'blank' CMMFFormatSelectionParameters object.
|
williamr@2
|
1155 |
|
williamr@2
|
1156 |
@param aRequiredSupport
|
williamr@2
|
1157 |
The record format support required.
|
williamr@2
|
1158 |
|
williamr@2
|
1159 |
@return The new object created.
|
williamr@2
|
1160 |
|
williamr@2
|
1161 |
@since 7.0s
|
williamr@2
|
1162 |
*/
|
williamr@2
|
1163 |
IMPORT_C void SetRequiredRecordFormatSupportL(const CMMFFormatSelectionParameters& aRequiredSupport);
|
williamr@2
|
1164 |
|
williamr@2
|
1165 |
/**
|
williamr@2
|
1166 |
Retrieves all controller plugins that support the requirements of the caller.
|
williamr@2
|
1167 |
|
williamr@2
|
1168 |
@param aImplementations
|
williamr@2
|
1169 |
After this method returns, this array will contain all the
|
williamr@2
|
1170 |
controller plugins that support the caller's requirements.
|
williamr@2
|
1171 |
Note: The array will be emptied by this method.
|
williamr@2
|
1172 |
|
williamr@2
|
1173 |
@since 7.0s
|
williamr@2
|
1174 |
*/
|
williamr@2
|
1175 |
IMPORT_C virtual void ListImplementationsL(RMMFControllerImplInfoArray& aImplementations) const;
|
williamr@2
|
1176 |
|
williamr@2
|
1177 |
/**
|
williamr@2
|
1178 |
Destructor
|
williamr@2
|
1179 |
*/
|
williamr@2
|
1180 |
virtual ~CMMFControllerPluginSelectionParameters();
|
williamr@2
|
1181 |
protected:
|
williamr@2
|
1182 |
CMMFControllerPluginSelectionParameters();
|
williamr@2
|
1183 |
void MatchImplementationToSelectParamsL(RMMFControllerImplInfoArray& aImplementations, const CMMFControllerImplementationInformation& aPlugin, TInt& aArrayPos) const;
|
williamr@2
|
1184 |
TInt CheckPreferredSupplierL(RMMFControllerImplInfoArray& aImplementations, const CMMFControllerImplementationInformation& aPlugin) const;
|
williamr@2
|
1185 |
TBool CheckFormatSupportL(CMMFFormatSelectionParameters* aSelectParams, const RMMFFormatImplInfoArray& aFormats) const;
|
williamr@2
|
1186 |
/**
|
williamr@2
|
1187 |
Checks the given Controller for uri support. Uri support may be there
|
williamr@2
|
1188 |
if either requiredscheme or extension matches with that given controller
|
williamr@2
|
1189 |
|
williamr@2
|
1190 |
@param aSelectParams
|
williamr@2
|
1191 |
Describes the selection parameter which a controller needs to
|
williamr@2
|
1192 |
support in order to be selected
|
williamr@2
|
1193 |
|
williamr@2
|
1194 |
@param aPlugin
|
williamr@2
|
1195 |
The controller plugin which is checked for uri support
|
williamr@2
|
1196 |
|
williamr@2
|
1197 |
@param aFormats
|
williamr@2
|
1198 |
The play or record formats looked for extension match
|
williamr@2
|
1199 |
*/
|
williamr@2
|
1200 |
TBool CheckUriSupport(CMMFFormatSelectionParameters* aSelectParams, CMMFControllerImplementationInformation* aPlugin, const RMMFFormatImplInfoArray& aFormats) const;
|
williamr@2
|
1201 |
|
williamr@2
|
1202 |
protected:
|
williamr@2
|
1203 |
/**
|
williamr@2
|
1204 |
The required play format support
|
williamr@2
|
1205 |
*/
|
williamr@2
|
1206 |
CMMFFormatSelectionParameters* iRequiredPlayFormatSupport;
|
williamr@2
|
1207 |
|
williamr@2
|
1208 |
/**
|
williamr@2
|
1209 |
The required record format support
|
williamr@2
|
1210 |
*/
|
williamr@2
|
1211 |
CMMFFormatSelectionParameters* iRequiredRecordFormatSupport;
|
williamr@2
|
1212 |
};
|
williamr@2
|
1213 |
|
williamr@2
|
1214 |
/**
|
williamr@2
|
1215 |
@publishedAll
|
williamr@2
|
1216 |
@released
|
williamr@2
|
1217 |
|
williamr@2
|
1218 |
Contains the parameters used to select controller plugins which support SecureDRM model
|
williamr@2
|
1219 |
from the ECOM registry. Controller plugins which support SecureDRM model allow play back of DRM-protected
|
williamr@2
|
1220 |
content by client processes without DRM capability. In such case the controller will be loaded in a separate secure DRM process.
|
williamr@2
|
1221 |
*/
|
williamr@2
|
1222 |
class CMMFControllerSecureDrmPluginSelectionParameters : public CMMFControllerPluginSelectionParameters
|
williamr@2
|
1223 |
{
|
williamr@2
|
1224 |
|
williamr@2
|
1225 |
public:
|
williamr@2
|
1226 |
/**
|
williamr@2
|
1227 |
Constructs a new controller selection parameters object.
|
williamr@2
|
1228 |
|
williamr@2
|
1229 |
@return The new object created.
|
williamr@2
|
1230 |
*/
|
williamr@2
|
1231 |
IMPORT_C static CMMFControllerSecureDrmPluginSelectionParameters* NewL();
|
williamr@2
|
1232 |
|
williamr@2
|
1233 |
/**
|
williamr@2
|
1234 |
Construct a new controller selection parameters object.
|
williamr@2
|
1235 |
|
williamr@2
|
1236 |
@return The new object created. Note that the new object will be left on the cleanup stack.
|
williamr@2
|
1237 |
*/
|
williamr@2
|
1238 |
IMPORT_C static CMMFControllerSecureDrmPluginSelectionParameters* NewLC();
|
williamr@2
|
1239 |
|
williamr@2
|
1240 |
/**
|
williamr@2
|
1241 |
Retrieves all controller plugins that support SecureDRM model and the requirements of the caller.
|
williamr@2
|
1242 |
|
williamr@2
|
1243 |
@param aImplementations
|
williamr@2
|
1244 |
After this method returns, this array will contain all the
|
williamr@2
|
1245 |
controller plugins that support the caller's requirements.
|
williamr@2
|
1246 |
Note: The array will be emptied by this method and SecureDRM model.
|
williamr@2
|
1247 |
*/
|
williamr@2
|
1248 |
IMPORT_C virtual void ListImplementationsL(RMMFControllerImplInfoArray& aImplementations) const;
|
williamr@2
|
1249 |
|
williamr@2
|
1250 |
/**
|
williamr@2
|
1251 |
Destructor
|
williamr@2
|
1252 |
*/
|
williamr@2
|
1253 |
virtual ~CMMFControllerSecureDrmPluginSelectionParameters() {};
|
williamr@2
|
1254 |
protected:
|
williamr@2
|
1255 |
CMMFControllerSecureDrmPluginSelectionParameters();
|
williamr@2
|
1256 |
};
|
williamr@2
|
1257 |
|
williamr@2
|
1258 |
/**
|
williamr@2
|
1259 |
@publishedAll
|
williamr@2
|
1260 |
@released
|
williamr@2
|
1261 |
|
williamr@2
|
1262 |
Abstract class used to contain the parameters used to select format plugins from the ECOM registry.
|
williamr@2
|
1263 |
|
williamr@2
|
1264 |
Note:
|
williamr@2
|
1265 |
The classes CMMFFormatEncodePluginSelectionParamters and CMMFFormatDecodePluginSelectionParameters
|
williamr@2
|
1266 |
should be used to list and select format plugin implementations.
|
williamr@2
|
1267 |
|
williamr@2
|
1268 |
@since 7.0s
|
williamr@2
|
1269 |
*/
|
williamr@2
|
1270 |
class CMMFFormatPluginSelectionParameters : public CMMFPluginSelectionParameters
|
williamr@2
|
1271 |
{
|
williamr@2
|
1272 |
public:
|
williamr@2
|
1273 |
|
williamr@2
|
1274 |
/**
|
williamr@2
|
1275 |
Retrieves all format plugins that support the requirements of the caller.
|
williamr@2
|
1276 |
|
williamr@2
|
1277 |
@param aImplementations
|
williamr@2
|
1278 |
After this function returns, this array will contain all the
|
williamr@2
|
1279 |
format plugins that support the caller's requirements.
|
williamr@2
|
1280 |
Note: The array will be emptied by this method.
|
williamr@2
|
1281 |
|
williamr@2
|
1282 |
@since 7.0s
|
williamr@2
|
1283 |
*/
|
williamr@2
|
1284 |
IMPORT_C void ListImplementationsL(RMMFFormatImplInfoArray& aImplementations) const;
|
williamr@2
|
1285 |
|
williamr@2
|
1286 |
/**
|
williamr@2
|
1287 |
Sets the format support required.
|
williamr@2
|
1288 |
|
williamr@2
|
1289 |
@param aRequiredSupport
|
williamr@2
|
1290 |
The format support required.
|
williamr@2
|
1291 |
|
williamr@2
|
1292 |
@since 7.0s
|
williamr@2
|
1293 |
*/
|
williamr@2
|
1294 |
IMPORT_C void SetRequiredFormatSupportL(const CMMFFormatSelectionParameters& aRequiredSupport);
|
williamr@2
|
1295 |
|
williamr@2
|
1296 |
/**
|
williamr@2
|
1297 |
Destructor.
|
williamr@2
|
1298 |
*/
|
williamr@2
|
1299 |
virtual ~CMMFFormatPluginSelectionParameters();
|
williamr@2
|
1300 |
protected:
|
williamr@2
|
1301 |
/**
|
williamr@2
|
1302 |
Protected constructor.
|
williamr@2
|
1303 |
*/
|
williamr@2
|
1304 |
CMMFFormatPluginSelectionParameters(TUid aInterfaceUid);
|
williamr@2
|
1305 |
|
williamr@2
|
1306 |
void MatchImplementationToSelectParamsL(RMMFFormatImplInfoArray& aImplementations, const CMMFFormatImplementationInformation& aPlugin, TInt& aArrayPos) const;
|
williamr@2
|
1307 |
TInt CheckPreferredSupplierL(RMMFFormatImplInfoArray& aImplementations, const CMMFFormatImplementationInformation& aPlugin) const;
|
williamr@2
|
1308 |
TBool CheckFormatSupportL(const CMMFFormatImplementationInformation& aPlugin) const;
|
williamr@2
|
1309 |
protected:
|
williamr@2
|
1310 |
/**
|
williamr@2
|
1311 |
The format support required
|
williamr@2
|
1312 |
*/
|
williamr@2
|
1313 |
CMMFFormatSelectionParameters* iRequiredFormatSupport;
|
williamr@2
|
1314 |
};
|
williamr@2
|
1315 |
|
williamr@2
|
1316 |
/**
|
williamr@2
|
1317 |
@publishedAll
|
williamr@2
|
1318 |
@released
|
williamr@2
|
1319 |
|
williamr@2
|
1320 |
Class used to list and select plugins implementing the CMMFFormatEncode interface.
|
williamr@2
|
1321 |
|
williamr@2
|
1322 |
@since 7.0s
|
williamr@2
|
1323 |
*/
|
williamr@2
|
1324 |
class CMMFFormatEncodePluginSelectionParameters : public CMMFFormatPluginSelectionParameters
|
williamr@2
|
1325 |
{
|
williamr@2
|
1326 |
public:
|
williamr@2
|
1327 |
|
williamr@2
|
1328 |
/**
|
williamr@2
|
1329 |
Construct a new format encode selection parameters object.
|
williamr@2
|
1330 |
|
williamr@2
|
1331 |
@return The new object created.
|
williamr@2
|
1332 |
|
williamr@2
|
1333 |
@since 7.0s
|
williamr@2
|
1334 |
*/
|
williamr@2
|
1335 |
IMPORT_C static CMMFFormatEncodePluginSelectionParameters* NewL();
|
williamr@2
|
1336 |
|
williamr@2
|
1337 |
/**
|
williamr@2
|
1338 |
Constructs a new format encode selection parameters object.
|
williamr@2
|
1339 |
|
williamr@2
|
1340 |
@return The new object created. Note that the new object will be left on the cleanup stack.
|
williamr@2
|
1341 |
|
williamr@2
|
1342 |
@since 7.0s
|
williamr@2
|
1343 |
*/
|
williamr@2
|
1344 |
IMPORT_C static CMMFFormatEncodePluginSelectionParameters* NewLC();
|
williamr@2
|
1345 |
protected:
|
williamr@2
|
1346 |
/**
|
williamr@2
|
1347 |
Protected constructor.
|
williamr@2
|
1348 |
*/
|
williamr@2
|
1349 |
CMMFFormatEncodePluginSelectionParameters();
|
williamr@2
|
1350 |
};
|
williamr@2
|
1351 |
|
williamr@2
|
1352 |
|
williamr@2
|
1353 |
/**
|
williamr@2
|
1354 |
@publishedAll
|
williamr@2
|
1355 |
@released
|
williamr@2
|
1356 |
|
williamr@2
|
1357 |
Class used to list and select plugins implementing the CMMFFormatDecode interface.
|
williamr@2
|
1358 |
|
williamr@2
|
1359 |
@since 7.0s
|
williamr@2
|
1360 |
*/
|
williamr@2
|
1361 |
class CMMFFormatDecodePluginSelectionParameters : public CMMFFormatPluginSelectionParameters
|
williamr@2
|
1362 |
{
|
williamr@2
|
1363 |
public:
|
williamr@2
|
1364 |
|
williamr@2
|
1365 |
/**
|
williamr@2
|
1366 |
Constructs a new format decode selection parameters object.
|
williamr@2
|
1367 |
|
williamr@2
|
1368 |
@return The new object created.
|
williamr@2
|
1369 |
|
williamr@2
|
1370 |
@since 7.0s
|
williamr@2
|
1371 |
*/
|
williamr@2
|
1372 |
IMPORT_C static CMMFFormatDecodePluginSelectionParameters* NewL();
|
williamr@2
|
1373 |
|
williamr@2
|
1374 |
/**
|
williamr@2
|
1375 |
Constructs a new format decode selection parameters object.
|
williamr@2
|
1376 |
|
williamr@2
|
1377 |
@return The new object created. Note that the new object will be left on the cleanup stack.
|
williamr@2
|
1378 |
|
williamr@2
|
1379 |
@since 7.0s
|
williamr@2
|
1380 |
*/
|
williamr@2
|
1381 |
IMPORT_C static CMMFFormatDecodePluginSelectionParameters* NewLC();
|
williamr@2
|
1382 |
protected:
|
williamr@2
|
1383 |
/**
|
williamr@2
|
1384 |
Protected constructor.
|
williamr@2
|
1385 |
*/
|
williamr@2
|
1386 |
CMMFFormatDecodePluginSelectionParameters();
|
williamr@2
|
1387 |
};
|
williamr@2
|
1388 |
|
williamr@2
|
1389 |
|
williamr@2
|
1390 |
|
williamr@2
|
1391 |
/**
|
williamr@2
|
1392 |
@publishedAll
|
williamr@2
|
1393 |
@released
|
williamr@2
|
1394 |
|
williamr@2
|
1395 |
Template class CleanupResetAndDestroy to clean up the array
|
williamr@2
|
1396 |
of implementation information from the cleanup stack.
|
williamr@2
|
1397 |
*/
|
williamr@2
|
1398 |
|
williamr@2
|
1399 |
template <class T>
|
williamr@2
|
1400 |
class CleanupResetAndDestroy
|
williamr@2
|
1401 |
{
|
williamr@2
|
1402 |
public:
|
williamr@2
|
1403 |
/**
|
williamr@2
|
1404 |
Puts an item on the cleanup stack.
|
williamr@2
|
1405 |
|
williamr@2
|
1406 |
@param aRef
|
williamr@2
|
1407 |
The implementation information to be put on the cleanup stack.
|
williamr@2
|
1408 |
*/
|
williamr@2
|
1409 |
inline static void PushL(T& aRef);
|
williamr@2
|
1410 |
private:
|
williamr@2
|
1411 |
static void ResetAndDestroy(TAny *aPtr);
|
williamr@2
|
1412 |
};
|
williamr@2
|
1413 |
template <class T>
|
williamr@2
|
1414 |
inline void CleanupResetAndDestroyPushL(T& aRef);
|
williamr@2
|
1415 |
template <class T>
|
williamr@2
|
1416 |
inline void CleanupResetAndDestroy<T>::PushL(T& aRef)
|
williamr@2
|
1417 |
{CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef));}
|
williamr@2
|
1418 |
template <class T>
|
williamr@2
|
1419 |
void CleanupResetAndDestroy<T>::ResetAndDestroy(TAny *aPtr)
|
williamr@2
|
1420 |
{(STATIC_CAST(T*,aPtr))->ResetAndDestroy();}
|
williamr@2
|
1421 |
template <class T>
|
williamr@2
|
1422 |
inline void CleanupResetAndDestroyPushL(T& aRef)
|
williamr@2
|
1423 |
{CleanupResetAndDestroy<T>::PushL(aRef);}
|
williamr@2
|
1424 |
|
williamr@2
|
1425 |
|
williamr@2
|
1426 |
#endif
|