4 * Copyright (c) 2000 - 2013 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 "tizen_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,
96 API_ID_void_SceneManagerEventListener__OnSceneTransitionCompleted_const_SceneId__previousSceneId__const_SceneId__currentSceneId_,
98 voidp_to_uint64(&previousSceneId),
99 voidp_to_uint64(¤tSceneId));
100 PACK_COMMON_END(0, 0, 0);
101 PACK_SCENE(scene_name, formid, pform, panelid, ppanel, transition, user);
112 // SCREENSHOT_DONE();
115 SceneManagerUsed = 0;
119 void SceneManagerEventListener::OnSceneTransitionStarted(const SceneId&,
123 SceneManagerUsed = 1;
124 startTime = getCurrentTime();
128 SceneManagerEventListener& SceneManagerEventListener::GetInstance()
134 namespace Tizen { namespace Ui { namespace Scenes {
136 SceneManager* SceneManager::GetInstance(void)
138 typedef SceneManager* (*methodType)(void);
139 static methodType scenemanager_getinstancep;
140 static int initialized = 0;
143 GET_REAL_FUNC_TIZEN(_ZN5Tizen2Ui6Scenes12SceneManager11GetInstanceEv, LIBOSP_UIFW, scenemanager_getinstancep);
145 ret = scenemanager_getinstancep();
148 if(unlikely(initialized == 0))
150 if(likely(ret != NULL))
152 ret->AddSceneManagerEventListener(SceneManagerEventListener::GetInstance());
162 } } } // end of namespace