0c89bfc329b99ea85f3046a7f6151d8d63e9d29f
[platform/core/uifw/dali-adaptor.git] / adaptors / wearable / watch-application-impl.cpp
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include "watch-application-impl.h"
20 #include <style-monitor.h>
21
22 namespace Dali
23 {
24
25 namespace Internal
26 {
27
28 namespace Adaptor
29 {
30
31 WatchApplicationPtr WatchApplication::New(
32   int* argc,
33   char **argv[],
34   const std::string& stylesheet,
35   Dali::WatchApplication::WINDOW_MODE windowMode)
36 {
37   WatchApplicationPtr watch ( new WatchApplication (argc, argv, stylesheet, windowMode ) );
38   return watch;
39 }
40
41 WatchApplication::WatchApplication( int* argc, char** argv[], const std::string& stylesheet, Dali::Application::WINDOW_MODE windowMode )
42 : Application(argc, argv, stylesheet, windowMode, PositionSize(), Framework::WATCH),
43   mState( UNINITIALIZED )
44 {
45   Dali::StyleMonitor::Get().SetIgnoreGlobalFontSizeChange(1);
46 }
47
48 WatchApplication::~WatchApplication()
49 {
50 }
51
52 void WatchApplication::OnInit()
53 {
54   Application::OnInit();
55
56   Dali::Adaptor::Get().SetRenderRefreshRate( 2 ); // make 30 fps for watch applications
57
58   mState = INITIALIZED;
59 }
60
61 void WatchApplication::OnTerminate()
62 {
63   Application::OnTerminate();
64
65   mState = TERMINATED;
66 }
67
68 void WatchApplication::OnResume()
69 {
70   Application::OnResume();
71
72   mState = RESUMED;
73 }
74
75 void WatchApplication::OnPause()
76 {
77   Application::OnPause();
78
79   mState = PAUSED;
80 }
81
82 void WatchApplication::OnTimeTick(WatchTime& time)
83 {
84   Dali::WatchApplication watch(this);
85   mTickSignal.Emit( watch, time );
86
87   if(mState == PAUSED)
88   {
89     // This is a pre-resume scenario. All rendering engine of tizen SHOULD forcely update once at this time.
90     Internal::Adaptor::Adaptor::GetImplementation( GetAdaptor() ).RequestUpdateOnce();
91   }
92
93   // A watch application will queue messages to update the UI in the signal emitted above
94   // Process these immediately to avoid a blinking issue where the old time is briefly visible
95   CoreEventInterface& eventInterface = Internal::Adaptor::Adaptor::GetImplementation( GetAdaptor() );
96   eventInterface.ProcessCoreEvents();
97 }
98
99 void WatchApplication::OnAmbientTick(WatchTime& time)
100 {
101   Dali::WatchApplication watch(this);
102   mAmbientTickSignal.Emit( watch, time );
103
104   // A watch application will queue messages to update the UI in the signal emitted above
105   // Process these immediately to avoid a blinking issue where the old time is briefly visible
106   CoreEventInterface& eventInterface = Internal::Adaptor::Adaptor::GetImplementation( GetAdaptor() );
107   eventInterface.ProcessCoreEvents();
108 }
109
110 void WatchApplication::OnAmbientChanged(bool ambient)
111 {
112   Dali::WatchApplication watch(this);
113   mAmbientChangeSignal.Emit( watch, ambient );
114 }
115
116 } // namespace Adaptor
117
118 } // namespace Internal
119
120 } // namespace Dali