Tizen 3 Wayland adaptor for DALi
[platform/core/uifw/dali-adaptor.git] / adaptors / tizen / vsync-monitor-tizen.cpp
index 0bb4f99..2f89812 100644 (file)
@@ -39,6 +39,9 @@ namespace Adaptor
 
 namespace
 {
+// constants to keep code readability with unsigned int has to be used as boolean (due to multithreading)
+const unsigned int TRUE = 1u;
+const unsigned int FALSE = 0u;
 
 #if defined(DEBUG_ENABLED)
 Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_VSYNC_MONITOR");
@@ -59,9 +62,9 @@ void ScreenStatusChanged(keynode_t* node, void* data)
   //  - VCONFKEY_PM_STATE_LCDDIM : turn vsync off
   //  - VCONFKEY_PM_STATE_LCDOFF : turn vsync off
   //  - VCONFKEY_PM_STATE_SLEEP : turn vsync off
-  const bool screenOn( VCONFKEY_PM_STATE_NORMAL == status );
+  const unsigned int screenOn( VCONFKEY_PM_STATE_NORMAL == status );
 
-  vsyncMonitor->SetUseHardware( screenOn );
+  vsyncMonitor->SetHardwareVSyncAvailable( screenOn );
 
   DALI_LOG_INFO( gLogFilter, Debug::Concise, "%s, Screen %s.\n", __PRETTY_FUNCTION__, screenOn ? "On" : "Off" );
 }
@@ -70,7 +73,8 @@ void ScreenStatusChanged(keynode_t* node, void* data)
 
 VSyncMonitor::VSyncMonitor()
 : mFileDescriptor( FD_NONE ),
-  mUseHardware( true )
+  mUseHardwareVSync( TRUE ),
+  mHardwareVSyncAvailable( FALSE )
 {
   vconf_notify_key_changed( VCONFKEY_PM_STATE, ScreenStatusChanged, this );
 }
@@ -82,9 +86,14 @@ VSyncMonitor::~VSyncMonitor()
   vconf_ignore_key_changed( VCONFKEY_PM_STATE, ScreenStatusChanged );
 }
 
-void VSyncMonitor::SetUseHardware( bool useHardware )
+void VSyncMonitor::SetUseHardwareVSync( bool useHardware )
 {
-  mUseHardware = useHardware;
+  mUseHardwareVSync = useHardware;
+}
+
+void VSyncMonitor::SetHardwareVSyncAvailable( bool hardwareVSyncAvailable )
+{
+  mHardwareVSyncAvailable = hardwareVSyncAvailable;
 }
 
 void VSyncMonitor::Initialize()
@@ -120,10 +129,9 @@ void VSyncMonitor::Terminate()
 
 bool VSyncMonitor::UseHardware()
 {
-  return mUseHardware && (FD_NONE != mFileDescriptor );
+  return mUseHardwareVSync && mHardwareVSyncAvailable && (FD_NONE != mFileDescriptor );
 }
 
-
 bool VSyncMonitor::DoSync( unsigned int& frameNumber, unsigned int& seconds, unsigned int& microseconds )
 {
   DALI_ASSERT_DEBUG( mFileDescriptor != FD_NONE && "ECoreX::VSyncMonitor is not initialized" );