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");
// - 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" );
}
VSyncMonitor::VSyncMonitor()
: mFileDescriptor( FD_NONE ),
- mUseHardware( true )
+ mUseHardwareVSync( TRUE ),
+ mHardwareVSyncAvailable( FALSE )
{
vconf_notify_key_changed( VCONFKEY_PM_STATE, ScreenStatusChanged, this );
}
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()
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" );