4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
8 * Jaewon Lim <jaewon81.lim@samsung.com>
9 * Woojin Jung <woojin2.jung@samsung.com>
10 * Juyoung Kim <j0.kim@samsung.com>
11 * Anastasia Lyupa <a.lyupa@samsung.com>
13 * This library is free software; you can redistribute it and/or modify it under
14 * the terms of the GNU Lesser General Public License as published by the
15 * Free Software Foundation; either version 2.1 of the License, or (at your option)
18 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
19 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21 * License for more details.
23 * You should have received a copy of the GNU Lesser General Public License
24 * along with this library; if not, write to the Free Software Foundation, Inc., 51
25 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29 * - Samsung RnD Institute Russia
38 #include "dacollection.h" // for find_object_hash
39 #include "dahelper.h" // for captureScreen
40 #include "osp_probe.h"
44 using namespace Tizen::Base;
45 using namespace Tizen::Ui::Controls;
46 using namespace Tizen::Ui::Scenes;
48 int SceneManagerUsed = 0;
50 class SceneManagerEventListener : public ISceneManagerEventListener
53 virtual void OnSceneTransitionCompleted(const SceneId &previousSceneId, const SceneId ¤tSceneId);
54 virtual void OnSceneTransitionStarted(const SceneId ¤tSceneId, const SceneId &nextSceneId);
55 static SceneManagerEventListener& GetInstance();
57 static SceneManagerEventListener rInstance;
58 unsigned long startTime;
61 SceneManagerEventListener SceneManagerEventListener::rInstance;
63 void SceneManagerEventListener::OnSceneTransitionCompleted(const SceneId &previousSceneId, const SceneId ¤tSceneId)
67 SceneManager* scenemanager = SceneManager::GetInstance();
69 if(scenemanager->GetCurrentSceneId() == currentSceneId)
71 if(isOptionEnabled(OPT_UI))
73 probeInfo_t probeInfo;
75 String sceneid, formid, panelid;
78 unsigned long transition, user = 0;
80 setProbePoint(&probeInfo);
82 scene = scenemanager->GetCurrentScene();
83 sceneid = scene->GetSceneId();
84 formid = scene->GetFormId();
85 panelid = scene->GetPanelId();
86 pform = scene->GetForm();
87 ppanel = scene->GetPanel();
89 transition = (probeInfo.currentTime - startTime);
92 WcharToChar(scene_name, sceneid.GetPointer());
95 PACK_COMMON_BEGIN(MSG_PROBE_SCENE, LC_SCENE, "pp", &previousSceneId, ¤tSceneId);
96 PACK_COMMON_END(0, 0, 0);
97 PACK_SCENE(scene_name, formid, pform, panelid, ppanel, transition, user);
108 // SCREENSHOT_DONE();
111 SceneManagerUsed = 0;
115 void SceneManagerEventListener::OnSceneTransitionStarted(const SceneId ¤tSceneId, const SceneId &nextSceneId)
118 SceneManagerUsed = 1;
119 startTime = getCurrentTime();
123 SceneManagerEventListener& SceneManagerEventListener::GetInstance()
129 namespace Tizen { namespace Ui { namespace Scenes {
131 SceneManager* SceneManager::GetInstance(void)
133 typedef SceneManager* (*methodType)(void);
134 static methodType scenemanager_getinstancep;
135 static int initialized = 0;
138 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui6Scenes12SceneManager11GetInstanceEv, LIBOSP_UIFW, scenemanager_getinstancep);
140 ret = scenemanager_getinstancep();
143 if(unlikely(initialized == 0))
145 if(likely(ret != NULL))
147 ret->AddSceneManagerEventListener(SceneManagerEventListener::GetInstance());
157 } } } // end of namespace