williamr@2
|
1 |
/*
|
williamr@2
|
2 |
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
3 |
* All rights reserved.
|
williamr@2
|
4 |
* This component and the accompanying materials are made available
|
williamr@2
|
5 |
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
|
williamr@2
|
6 |
* which accompanies this distribution, and is available
|
williamr@2
|
7 |
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
|
williamr@2
|
8 |
*
|
williamr@2
|
9 |
* Initial Contributors:
|
williamr@2
|
10 |
* Nokia Corporation - initial contribution.
|
williamr@2
|
11 |
*
|
williamr@2
|
12 |
* Contributors:
|
williamr@2
|
13 |
*
|
williamr@2
|
14 |
* Description: Loads the UI library and creates the instance of the document class.
|
williamr@2
|
15 |
*
|
williamr@2
|
16 |
*/
|
williamr@2
|
17 |
|
williamr@2
|
18 |
#ifndef __FLASH_UI_H__
|
williamr@2
|
19 |
#define __FLASH_UI_H__
|
williamr@2
|
20 |
|
williamr@2
|
21 |
#include <eikapp.h>
|
williamr@2
|
22 |
#include <apparc.h>
|
williamr@2
|
23 |
#include <apgcli.h>
|
williamr@2
|
24 |
|
williamr@2
|
25 |
|
williamr@2
|
26 |
/** @file flash_ui.h
|
williamr@2
|
27 |
* The API to start Viewer UI for playing Flash content file from a Viewer or a stub
|
williamr@2
|
28 |
* application.
|
williamr@2
|
29 |
*
|
williamr@2
|
30 |
* The point here is to offer easy-of-use API for stubs applications which has
|
williamr@2
|
31 |
* dedicated set of platform security capabilities for rendering private SWF content.
|
williamr@2
|
32 |
* However, also standard Flash Viewer can utilize the same API as well.
|
williamr@2
|
33 |
*
|
williamr@2
|
34 |
* Example usage of the API:
|
williamr@2
|
35 |
*
|
williamr@2
|
36 |
* @code
|
williamr@2
|
37 |
* LOCAL_C CApaApplication* NewApplication( )
|
williamr@2
|
38 |
* {
|
williamr@2
|
39 |
* return new(ELeave) CFlashStubApplication;
|
williamr@2
|
40 |
* }
|
williamr@2
|
41 |
*
|
williamr@2
|
42 |
* GLDEF_C TInt E32Main()
|
williamr@2
|
43 |
* {
|
williamr@2
|
44 |
* return EikStart::RunApplication(NewApplication);
|
williamr@2
|
45 |
* }
|
williamr@2
|
46 |
*
|
williamr@2
|
47 |
* CFlashStubApplication::~CFlashStubApplication()
|
williamr@2
|
48 |
* {
|
williamr@2
|
49 |
* if (iFlashLibrary.Handle())
|
williamr@2
|
50 |
* {
|
williamr@2
|
51 |
* iFlashLibrary.Close();
|
williamr@2
|
52 |
* }
|
williamr@2
|
53 |
* }
|
williamr@2
|
54 |
*
|
williamr@2
|
55 |
* const TUid KUidFlashStubApp = { 0x1027367B };
|
williamr@2
|
56 |
*
|
williamr@2
|
57 |
* TUid CFlashStubApplication::AppDllUid() const
|
williamr@2
|
58 |
* {
|
williamr@2
|
59 |
* return KUidFlashStubApp;
|
williamr@2
|
60 |
* }
|
williamr@2
|
61 |
*
|
williamr@2
|
62 |
*
|
williamr@2
|
63 |
* _LIT(KStubFlashContent, "C:\\Data\\Others\\example.swf");
|
williamr@2
|
64 |
*
|
williamr@2
|
65 |
* const TUint32 KContentChecksum = 0;
|
williamr@2
|
66 |
*
|
williamr@2
|
67 |
* CApaDocument* CFlashStubApplication::CreateDocumentL()
|
williamr@2
|
68 |
* {
|
williamr@2
|
69 |
* FlashUIConfig config;
|
williamr@2
|
70 |
* config.iIsMMI = EFalse;
|
williamr@2
|
71 |
* config.iIsStubApp = ETrue;
|
williamr@2
|
72 |
* config.iContentFileName.Copy(KStubFlashContent);
|
williamr@2
|
73 |
* config.iContentChecksum = KContentChecksum;
|
williamr@2
|
74 |
* config.iExtensions = NULL;
|
williamr@2
|
75 |
*
|
williamr@2
|
76 |
* if(!FlashStubsSupported())
|
williamr@2
|
77 |
* {
|
williamr@2
|
78 |
* User::Leave(KErrNotSupported);
|
williamr@2
|
79 |
* }
|
williamr@2
|
80 |
* return CreateFlashDocumentL(iFlashLibrary, this, config);
|
williamr@2
|
81 |
* }
|
williamr@2
|
82 |
* @endcode
|
williamr@2
|
83 |
*/
|
williamr@2
|
84 |
|
williamr@2
|
85 |
/**
|
williamr@2
|
86 |
Structure containing configuration information for UI.
|
williamr@2
|
87 |
*/
|
williamr@2
|
88 |
struct FlashUIConfig
|
williamr@2
|
89 |
{
|
williamr@2
|
90 |
/**
|
williamr@2
|
91 |
* ETrue if MMI is supported.
|
williamr@2
|
92 |
*/
|
williamr@2
|
93 |
TBool iIsMMI;
|
williamr@2
|
94 |
|
williamr@2
|
95 |
/**
|
williamr@2
|
96 |
* ETrue if is a stub application.
|
williamr@2
|
97 |
*/
|
williamr@2
|
98 |
TBool iIsStubApp;
|
williamr@2
|
99 |
|
williamr@2
|
100 |
/**
|
williamr@2
|
101 |
* The swf file which accesses the MMI features.
|
williamr@2
|
102 |
*/
|
williamr@2
|
103 |
TFileName iContentFileName;
|
williamr@2
|
104 |
|
williamr@2
|
105 |
/**
|
williamr@2
|
106 |
* Check sum for security.
|
williamr@2
|
107 |
*/
|
williamr@2
|
108 |
TUint32 iContentChecksum;
|
williamr@2
|
109 |
|
williamr@2
|
110 |
/**
|
williamr@2
|
111 |
* Name of the ECom plug-in
|
williamr@2
|
112 |
*/
|
williamr@2
|
113 |
const TDesC8* iExtensions;
|
williamr@2
|
114 |
|
williamr@2
|
115 |
/**
|
williamr@2
|
116 |
* Reserved for future use
|
williamr@2
|
117 |
*/
|
williamr@2
|
118 |
const TDesC8* iReserved1;
|
williamr@2
|
119 |
|
williamr@2
|
120 |
/**
|
williamr@2
|
121 |
* Reserved for future use
|
williamr@2
|
122 |
*/
|
williamr@2
|
123 |
TUint32 iReserved2;
|
williamr@2
|
124 |
};
|
williamr@2
|
125 |
|
williamr@2
|
126 |
/**
|
williamr@2
|
127 |
* The Flash UI dll name.
|
williamr@2
|
128 |
*/
|
williamr@2
|
129 |
_LIT(KFlashUILibraryName, "flash2ui.dll");
|
williamr@2
|
130 |
|
williamr@2
|
131 |
/**
|
williamr@2
|
132 |
* The ordinal of the exported function in the Flash UI dll.
|
williamr@2
|
133 |
*/
|
williamr@2
|
134 |
const TInt KFlashCreateDocumentOrdinal = 1;
|
williamr@2
|
135 |
|
williamr@2
|
136 |
/**
|
williamr@2
|
137 |
* Pointer to a function that creates the document class.
|
williamr@2
|
138 |
*/
|
williamr@2
|
139 |
typedef void* (*PFNC_CreateFlashDocumentL)(CEikApplication* aApp, const FlashUIConfig& aUIConfig);
|
williamr@2
|
140 |
|
williamr@2
|
141 |
class CEikApplication;
|
williamr@2
|
142 |
/**
|
williamr@2
|
143 |
* CreateFlashDocumentL creates a Flash document for an application and
|
williamr@2
|
144 |
* starts playing the given SWF file. If there is no S60 Flash Lite
|
williamr@2
|
145 |
* Viewer Framework DLL installed in the device, the function leaves with error
|
williamr@2
|
146 |
* code returned from the RLibrary::Load.
|
williamr@2
|
147 |
*
|
williamr@2
|
148 |
* @since S60 v3.1
|
williamr@2
|
149 |
*
|
williamr@2
|
150 |
* @param aLibrary Handle to the flash UI dll.
|
williamr@2
|
151 |
* @param aApp Instance of the application class.
|
williamr@2
|
152 |
* @param aUIConfig Instance of the class that contains the configuration for the UI.
|
williamr@2
|
153 |
* @return The new document object.
|
williamr@2
|
154 |
* @leave KErrGeneral Error in using the successfully loaded Flash Viewer Framework DLL
|
williamr@2
|
155 |
*/
|
williamr@2
|
156 |
inline CApaDocument* CreateFlashDocumentL(RLibrary& aLibrary, CEikApplication* aApp, const FlashUIConfig& aUIConfig)
|
williamr@2
|
157 |
{
|
williamr@2
|
158 |
CApaDocument* doc = NULL;
|
williamr@2
|
159 |
User::LeaveIfError(aLibrary.Load(KFlashUILibraryName));
|
williamr@2
|
160 |
PFNC_CreateFlashDocumentL pFncCreateFlashDocumentL = (PFNC_CreateFlashDocumentL)aLibrary.Lookup(KFlashCreateDocumentOrdinal);
|
williamr@2
|
161 |
if (pFncCreateFlashDocumentL == NULL)
|
williamr@2
|
162 |
{
|
williamr@2
|
163 |
User::Leave(KErrGeneral);
|
williamr@2
|
164 |
}
|
williamr@2
|
165 |
doc = (CApaDocument*)pFncCreateFlashDocumentL(aApp, aUIConfig);
|
williamr@2
|
166 |
return doc;
|
williamr@2
|
167 |
}
|
williamr@2
|
168 |
|
williamr@2
|
169 |
/**
|
williamr@2
|
170 |
* Checks whether S60 Flash Lite Viewer Framework DLL exists in the device for stub
|
williamr@2
|
171 |
* applications.
|
williamr@2
|
172 |
* @return ETrue if Flash Lite stub applications is suppported, EFalse otherwise.
|
williamr@2
|
173 |
*/
|
williamr@2
|
174 |
inline TBool FlashStubsSupported()
|
williamr@2
|
175 |
{
|
williamr@2
|
176 |
|
williamr@2
|
177 |
RLibrary library;
|
williamr@2
|
178 |
TInt err = library.Load(KFlashUILibraryName);
|
williamr@2
|
179 |
if(err == KErrNone)
|
williamr@2
|
180 |
{
|
williamr@2
|
181 |
library.Close();
|
williamr@2
|
182 |
return ETrue;
|
williamr@2
|
183 |
}
|
williamr@2
|
184 |
else
|
williamr@2
|
185 |
{
|
williamr@2
|
186 |
return EFalse;
|
williamr@2
|
187 |
}
|
williamr@2
|
188 |
}
|
williamr@2
|
189 |
#endif // __FLASH_UI_H__ |