(static_cast<T*>(obj)->*fn)();
return NULL;
}
-
+CEvent CXBMCApp::m_windowCreated;
ANativeActivity *CXBMCApp::m_activity = NULL;
ANativeWindow* CXBMCApp::m_window = NULL;
int CXBMCApp::m_batteryLevel = 0;
return;
}
m_window = window;
+ m_windowCreated.Set();
if (getWakeLock() && m_wakeLock)
m_wakeLock->acquire();
if(!m_firstrun)
void CXBMCApp::onResizeWindow()
{
android_printf("%s: ", __PRETTY_FUNCTION__);
+ m_window=NULL;
+ m_windowCreated.Reset();
// no need to do anything because we are fixed in fullscreen landscape mode
}
if (m_wakeLock)
m_wakeLock->release();
- m_window=NULL;
}
void CXBMCApp::onGainFocus()
free(argv);
}
- android_printf(" => waiting for a window");
- // Hack!
- // TODO: Change EGL startup so that we can start headless, then create the
- // window once android gives us a surface to play with.
- while(!m_window)
- usleep(1000);
m_firstrun=false;
android_printf(" => running XBMC_Run...");
try
ret = data.toString();
return ret;
}
+
+const ANativeWindow** CXBMCApp::GetNativeWindow(int timeout)
+{
+ if (m_window)
+ return (const ANativeWindow**)&m_window;
+
+ m_windowCreated.WaitMSec(timeout);
+ return (const ANativeWindow**)&m_window;
+}