/* PVR related include Files */
#include "pvr/PVRManager.h"
#include "pvr/timers/PVRTimers.h"
-#include "pvr/windows/GUIWindowPVR.h"
+#include "pvr/windows/GUIWindowPVRChannels.h"
+#include "pvr/windows/GUIWindowPVRRecordings.h"
+#include "pvr/windows/GUIWindowPVRGuide.h"
+#include "pvr/windows/GUIWindowPVRTimers.h"
+#include "pvr/windows/GUIWindowPVRSearch.h"
#include "pvr/dialogs/GUIDialogPVRChannelManager.h"
#include "pvr/dialogs/GUIDialogPVRChannelsOSD.h"
#include "pvr/dialogs/GUIDialogPVRCutterOSD.h"
extern "C" void __stdcall init_emu_environ();
extern "C" void __stdcall update_emu_environ();
+extern "C" void __stdcall cleanup_emu_environ();
//
// Utility function used to copy files from the application bundle
CProfilesManager::Get().Load();
CLog::Log(LOGNOTICE, "-----------------------------------------------------------------------");
- CLog::Log(LOGNOTICE, "Starting XBMC (%s). Platform: %s %s %d-bit", g_infoManager.GetVersion().c_str(), g_sysinfo.GetBuildTargetPlatformName().c_str(),
+ CLog::Log(LOGNOTICE, "Starting Kodi (%s). Platform: %s %s %d-bit", g_infoManager.GetVersion().c_str(), g_sysinfo.GetBuildTargetPlatformName().c_str(),
g_sysinfo.GetBuildTargetCpuFamily().c_str(), g_sysinfo.GetXbmcBitness());
std::string buildType;
//#elif defined(some_ID) // uncomment for special version/fork
// specialVersion = " (version for XXXX)";
#endif
- CLog::Log(LOGNOTICE, "Using %s XBMC x%d build%s", buildType.c_str(), g_sysinfo.GetXbmcBitness(), specialVersion.c_str());
- CLog::Log(LOGNOTICE, "XBMC compiled " __DATE__ " by %s for %s %s %d-bit %s (%s)", g_sysinfo.GetUsedCompilerNameAndVer().c_str(), g_sysinfo.GetBuildTargetPlatformName().c_str(),
+ CLog::Log(LOGNOTICE, "Using Kodi %s x%d build%s", buildType.c_str(), g_sysinfo.GetXbmcBitness(), specialVersion.c_str());
+ CLog::Log(LOGNOTICE, "Kodi compiled " __DATE__ " by %s for %s %s %d-bit %s (%s)", g_sysinfo.GetUsedCompilerNameAndVer().c_str(), g_sysinfo.GetBuildTargetPlatformName().c_str(),
g_sysinfo.GetBuildTargetCpuFamily().c_str(), g_sysinfo.GetXbmcBitness(), g_sysinfo.GetBuildTargetPlatformVersionDecoded().c_str(),
g_sysinfo.GetBuildTargetPlatformVersion().c_str());
/* Load PVR related Windows and Dialogs */
g_windowManager.Add(new CGUIDialogTeletext);
- g_windowManager.Add(new CGUIWindowPVR);
+ g_windowManager.Add(new CGUIWindowPVRChannels(false));
+ g_windowManager.Add(new CGUIWindowPVRRecordings(false));
+ g_windowManager.Add(new CGUIWindowPVRGuide(false));
+ g_windowManager.Add(new CGUIWindowPVRTimers(false));
+ g_windowManager.Add(new CGUIWindowPVRSearch(false));
+ g_windowManager.Add(new CGUIWindowPVRChannels(true));
+ g_windowManager.Add(new CGUIWindowPVRRecordings(true));
+ g_windowManager.Add(new CGUIWindowPVRGuide(true));
+ g_windowManager.Add(new CGUIWindowPVRTimers(true));
+ g_windowManager.Add(new CGUIWindowPVRSearch(true));
g_windowManager.Add(new CGUIDialogPVRGuideInfo);
g_windowManager.Add(new CGUIDialogPVRRecordingInfo);
g_windowManager.Add(new CGUIDialogPVRTimerSettings);
CJSONRPC::Initialize();
#endif
ADDON::CAddonMgr::Get().StartServices(false);
- if (g_SkinInfo->GetFirstWindow() == WINDOW_PVR)
- {
- g_windowManager.ActivateWindow(WINDOW_HOME);
- StartPVRManager(true);
- }
- else
- {
- StartPVRManager(false);
+
+ // let's start the PVR manager and decide if the PVR manager handle the startup window activation
+ if (!StartPVRManager())
g_windowManager.ActivateWindow(g_SkinInfo->GetFirstWindow());
- }
CStereoscopicsManager::Get().Initialize();
}
return ret;
}
-void CApplication::StartPVRManager(bool bOpenPVRWindow /* = false */)
+bool CApplication::StartPVRManager()
{
- if (CSettings::Get().GetBool("pvrmanager.enabled"))
- g_PVRManager.Start(true, bOpenPVRWindow);
+ if (!CSettings::Get().GetBool("pvrmanager.enabled"))
+ return false;
+
+ int firstWindowId = 0;
+ if (g_PVRManager.IsPVRWindow(g_SkinInfo->GetStartWindow()))
+ firstWindowId = g_SkinInfo->GetFirstWindow();
+
+ g_PVRManager.Start(true, firstWindowId);
+
+ return (firstWindowId > 0);
}
void CApplication::StopPVRManager()
bool CApplication::LoadUserWindows()
{
// Start from wherever home.xml is
- std::vector<CStdString> vecSkinPath;
+ std::vector<std::string> vecSkinPath;
g_SkinInfo->GetSkinPaths(vecSkinPath);
for (unsigned int i = 0;i < vecSkinPath.size();++i)
{
return 0;
if (!m_screenSaver->GetSetting("level").empty())
- return 100.0f - (float)atof(m_screenSaver->GetSetting("level"));
+ return 100.0f - (float)atof(m_screenSaver->GetSetting("level").c_str());
return 100.0f;
}
g_windowManager.Delete(WINDOW_DIALOG_SUBTITLES);
/* Delete PVR related windows and dialogs */
- g_windowManager.Delete(WINDOW_PVR);
+ g_windowManager.Delete(WINDOW_TV_CHANNELS);
+ g_windowManager.Delete(WINDOW_TV_RECORDINGS);
+ g_windowManager.Delete(WINDOW_TV_GUIDE);
+ g_windowManager.Delete(WINDOW_TV_TIMERS);
+ g_windowManager.Delete(WINDOW_TV_SEARCH);
+ g_windowManager.Delete(WINDOW_RADIO_CHANNELS);
+ g_windowManager.Delete(WINDOW_RADIO_RECORDINGS);
+ g_windowManager.Delete(WINDOW_RADIO_GUIDE);
+ g_windowManager.Delete(WINDOW_RADIO_TIMERS);
+ g_windowManager.Delete(WINDOW_RADIO_SEARCH);
g_windowManager.Delete(WINDOW_DIALOG_PVR_GUIDE_INFO);
g_windowManager.Delete(WINDOW_DIALOG_PVR_RECORDING_INFO);
g_windowManager.Delete(WINDOW_DIALOG_PVR_TIMER_SETTING);
// we may not get to finish the run cycle but exit immediately after a call to g_application.Stop()
// so we may never get to Destroy() in CXBApplicationEx::Run(), we call it here.
Destroy();
+ cleanup_emu_environ();
+ CTimeUtils::Close();
//
Sleep(200);
m_pKaraokeMgr->Stop();
#endif
- if (g_PVRManager.IsPlayingTV() || g_PVRManager.IsPlayingRadio())
- g_PVRManager.SaveCurrentChannelSettings();
-
m_pPlayer->CloseFile();
// turn off visualisation window when stopping
CFileItem file(*playlist[iNext]);
// handle plugin://
CURL url(file.GetPath());
- if (url.GetProtocol() == "plugin")
+ if (url.IsProtocol("plugin"))
XFILE::CPluginDirectory::GetPluginResult(url.Get(), file);
#ifdef HAS_UPNP