Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Load channel settings properly when <cacheindvdplayer> is disabled #4333

Closed
wants to merge 6 commits into from

7 participants

@Jalle19
Collaborator

There is currently a bug in XBMC which causes channel settings to not be loaded at all when pvr.cacheindvdplayer is disabled. The setting is used to dramatically speed up the time it takes to switch channels on backends with an internal demuxer. The problem is that the call to load the settings is done in a block that is never reached when the setting is disabled.

Because standard files and PVR channels work quite differently I've opted to contain loading/saving of channel settings in PVRManager. Currently they're loaded in Open/CloseLiveStream() and PerformChannelSwitch(). They were previously loaded in DVDPlayer and sometimes stored in Application in addition to whenever the current audio/video settings were changed.

I've also changed the Save/Load methods to take the channel in question as a parameter, this way it is easier to put the call in the proper location. It also alleviates the need to defer to PVRClients to handle the logic.

@opdenkamp @FernetMenta would be nice if you could chip in
@margro can you check for regressions with some backend other than tvheadend/vdr?

@Jalle19
Collaborator

@FernetMenta I removed the last commit (the one you commented on, naturally Github lost it...). Did you find the time to look at the rest of it? It would be nice to see this make it into Gotham, without this pvr.cacheindvdplayer is all but useless.

@xhaggi xhaggi added the PVR label
@FernetMenta
Collaborator

I remember lots of trouble with those functions until we got it work for almost all scenarios. I assess the risk that something may break as relatively high. IMO we should rather prevent pvr.cacheindvdplayer from being disabled because it forces the system into an unstable state in which it is not supposed to run. When an audio stream is started AE fills the various buffers which in sum hold up to approximately 0.8 seconds of audio, If you reduce pvr caching from the default values those buffers never fill. It may work somehow but this is not the stable state.

Apart from this I agree that load/save of channel settings needs rework. G+1

@Jalle19
Collaborator

The only trouble has been that loading the settings has been done in the most non-obvious place available (HandlePlaySpeed). With these changes it is much more predictable.

I'd rather not see the advanced setting removed, it speeds up zapping considerably.

@FernetMenta
Collaborator

We have told you multiple times that your attempts to speed up channel switching sacrifice behavior we have implemented for good reasons. Fast channel changing is worth nothing if audio stalls some time later. Your changes my work somehow on you system but for sure won't work on every system. Removing the caching is no option.

@Jalle19
Collaborator

These changes don't remove the caching option (I closed that PR yesterday precisely because like you say it may have unintended consequences). I'm trying to make an optional (advanced) setting which disables it actually work, that's all.

@Jalle19
Collaborator

Anyway, if these changes don't cut it, do you have any suggestions on alternative ways of doing it?

@FernetMenta
Collaborator

I did not say the changes in this pr are wrong. They are reasonable and should be discussed G+1 because the risk that something breaks is high.

@Jalle19
Collaborator

Okay, I can live with that. If there were a less intrusive way to make this work correctly I'd go for that, but it seems it's not possible.

@t-nelson t-nelson added the Helix label
@Jalle19
Collaborator

@opdenkamp any comment on this?

@piotrasd

could you rebase ? dont work with actual git master

@opdenkamp
Collaborator

been away all week end and haven't had time to look at this yet

@piotrasd please rebase yourself if you like to test this and don't post about it on github. hundreds of people get an email about this.

@Jalle19
Collaborator

@piotrasd it's rebased now, I'm in the process of build testing it but at a glance it seems fine.

@Jalle19
Collaborator

Rebased again (didn't have the latest local copy), don't know why the merge button is still gray though.

@t-nelson

Looks like you forgot to push or rebased against the wrong tree.

@opdenkamp
Collaborator

@FernetMenta or me needs to review this properly and +1 it before this is allowed to go in

@Jalle19
Collaborator

@t-nelson should be fixed now, I rebased the wrong local branch and pushed that. No wonder the light didn't turn green.

@opdenkamp of course

@piotrasd

Yeep, works great !!! thanks.

@FernetMenta FernetMenta commented on the diff
xbmc/Application.cpp
@@ -5761,10 +5758,6 @@ void CApplication::SaveCurrentFileSettings()
dbs.Close();
}
}
- else if (m_itemCurrentFile->IsPVRChannel())
@FernetMenta Collaborator

this will fail if you have live tv playing and open some other file. then it will load the video settings of the file before you saved the channels settings.
those errors can be avoided if you move load/save channel settings to the same locations where load/save video settings is done.

@Jalle19 Collaborator
Jalle19 added a note

The settings are now saved in CloseLiveStream(), shouldn't that cover this scenario?

@FernetMenta Collaborator

A new file can be opened while the old one still plays. This way the old one can keep playing if open of the new file fails. There is a reason why video settings are saved here.

@Jalle19 Collaborator
Jalle19 added a note

If you watch a channel and open a file that can't be played, settings won't be saved and the old channel will continue playing. When you finally switch to something that works, CloseLiveStream() will be called and the settings will be saved. I don't see the problem, or am I still missing something?

@FernetMenta Collaborator

If you open a file while pvr is playing, it loads the settings of the file before the channels settings are saved. Then you save the settings of the file to the channel.

@Jalle19 Collaborator
Jalle19 added a note

Okay, now I get it. How would you like to see this done? Modify SaveFileStateJob to handle PVR channels too and then add the needed extra calls where necessary (like PerformChannelSwitch)?

@FernetMenta Collaborator

I would put load/save of video settings and channel settings into the same place. Ideally there won't be any extra treatment for pvr but I don't know if this feasible without much refactoring. If there is an extra load required for PerformChannelSwitch should be ok for this iteration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@MartijnKaijser MartijnKaijser added this to the Pending for inclusion milestone
@Jalle19
Collaborator

Replaced by #4783

@Jalle19 Jalle19 closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on May 15, 2014
  1. @Jalle19
  2. @Jalle19
  3. @Jalle19
  4. @Jalle19
  5. @Jalle19
  6. @Jalle19

    [pvr] implement Save/LoadCurrentChannelSettings() directly in PVRManager

    Jalle19 authored
    instead of passing the call along to PVRClients. Also call the methods
    in the appropriate places (OpenLiveStream, CloseLiveStream and
    PerformChannelSwitch)
This page is out of date. Refresh to see the latest.
View
7 xbmc/Application.cpp
@@ -4478,9 +4478,6 @@ void CApplication::StopPlaying()
m_pKaraokeMgr->Stop();
#endif
- if (g_PVRManager.IsPlayingTV() || g_PVRManager.IsPlayingRadio())
- g_PVRManager.SaveCurrentChannelSettings();
-
m_pPlayer->CloseFile();
// turn off visualisation window when stopping
@@ -5761,10 +5758,6 @@ void CApplication::SaveCurrentFileSettings()
dbs.Close();
}
}
- else if (m_itemCurrentFile->IsPVRChannel())
@FernetMenta Collaborator

this will fail if you have live tv playing and open some other file. then it will load the video settings of the file before you saved the channels settings.
those errors can be avoided if you move load/save channel settings to the same locations where load/save video settings is done.

@Jalle19 Collaborator
Jalle19 added a note

The settings are now saved in CloseLiveStream(), shouldn't that cover this scenario?

@FernetMenta Collaborator

A new file can be opened while the old one still plays. This way the old one can keep playing if open of the new file fails. There is a reason why video settings are saved here.

@Jalle19 Collaborator
Jalle19 added a note

If you watch a channel and open a file that can't be played, settings won't be saved and the old channel will continue playing. When you finally switch to something that works, CloseLiveStream() will be called and the settings will be saved. I don't see the problem, or am I still missing something?

@FernetMenta Collaborator

If you open a file while pvr is playing, it loads the settings of the file before the channels settings are saved. Then you save the settings of the file to the channel.

@Jalle19 Collaborator
Jalle19 added a note

Okay, now I get it. How would you like to see this done? Modify SaveFileStateJob to handle PVR channels too and then add the needed extra calls where necessary (like PerformChannelSwitch)?

@FernetMenta Collaborator

I would put load/save of video settings and channel settings into the same place. Ideally there won't be any extra treatment for pvr but I don't know if this feasible without much refactoring. If there is an extra load required for PerformChannelSwitch should be ok for this iteration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
- {
- g_PVRManager.SaveCurrentChannelSettings();
- }
}
bool CApplication::AlwaysProcess(const CAction& action)
View
4 xbmc/cores/dvdplayer/DVDPlayer.cpp
@@ -1596,10 +1596,6 @@ void CDVDPlayer::HandlePlaySpeed()
bGotAudio, m_dvdPlayerAudio.GetLevel(),
bGotVideo, m_dvdPlayerVideo.GetLevel());
- CFileItem currentItem(g_application.CurrentFileItem());
- if (currentItem.HasPVRChannelInfoTag())
- g_PVRManager.LoadCurrentChannelSettings();
-
caching = CACHESTATE_DONE;
}
else
View
4 xbmc/cores/omxplayer/OMXPlayer.cpp
@@ -1822,10 +1822,6 @@ void COMXPlayer::HandlePlaySpeed()
bGotAudio, m_omxPlayerAudio.GetLevel(),
bGotVideo, m_omxPlayerVideo.GetLevel());
- CFileItem currentItem(g_application.CurrentFileItem());
- if (currentItem.HasPVRChannelInfoTag())
- g_PVRManager.LoadCurrentChannelSettings();
-
caching = CACHESTATE_DONE;
}
else
View
84 xbmc/pvr/PVRManager.cpp
@@ -59,6 +59,10 @@
#include "guilib/Key.h"
#include "dialogs/GUIDialogPVRChannelManager.h"
+#ifdef HAS_VIDEO_PLAYBACK
+#include "cores/VideoRenderers/RenderManager.h"
+#endif
+
using namespace std;
using namespace MUSIC_INFO;
using namespace PVR;
@@ -910,14 +914,62 @@ bool CPVRManager::CheckParentalPIN(const char *strTitle /* = NULL */)
return bValidPIN;
}
-void CPVRManager::SaveCurrentChannelSettings(void)
+void CPVRManager::SaveChannelSettings(const CPVRChannel &channel)
{
- m_addons->SaveCurrentChannelSettings();
+ CPVRDatabase *database = GetPVRDatabase();
+ if (!database)
+ return;
+
+ if (CMediaSettings::Get().GetCurrentVideoSettings() != CMediaSettings::Get().GetDefaultVideoSettings())
+ {
+ CLog::Log(LOGDEBUG, "PVR - %s - persisting custom channel settings for channel '%s'",
+ __FUNCTION__, channel.ChannelName().c_str());
+ database->PersistChannelSettings(channel, CMediaSettings::Get().GetCurrentVideoSettings());
+ }
+ else
+ {
+ CLog::Log(LOGDEBUG, "PVR - %s - no custom channel settings for channel '%s'",
+ __FUNCTION__, channel.ChannelName().c_str());
+ database->DeleteChannelSettings(channel);
+ }
}
-void CPVRManager::LoadCurrentChannelSettings()
+void CPVRManager::LoadChannelSettings(const CPVRChannel &channel)
{
- m_addons->LoadCurrentChannelSettings();
+ CPVRDatabase *database = GetPVRDatabase();
+ if (!database)
+ return;
+
+ CLog::Log(LOGDEBUG, "PVR - %s - loading custom channel settings for channel '%s'",
+ __FUNCTION__, channel.ChannelName().c_str());
+
+ if (g_application.m_pPlayer->HasPlayer())
+ {
+ /* store the current settings so we can compare if anything has changed */
+ CVideoSettings previousSettings = CMediaSettings::Get().GetCurrentVideoSettings();
+
+ /* load the persisted channel settings and set them as current */
+ CVideoSettings loadedChannelSettings = CMediaSettings::Get().GetDefaultVideoSettings();
+ database->GetChannelSettings(channel, loadedChannelSettings);
+ CMediaSettings::Get().GetCurrentVideoSettings() = loadedChannelSettings;
+
+ /* update the view mode if it set to custom or differs from the previous mode */
+ if (previousSettings.m_ViewMode != loadedChannelSettings.m_ViewMode || loadedChannelSettings.m_ViewMode == ViewModeCustom)
+ g_renderManager.SetViewMode(loadedChannelSettings.m_ViewMode);
+
+ /* only change the subtitle stream, if it's different */
+ if (previousSettings.m_SubtitleStream != loadedChannelSettings.m_SubtitleStream)
+ g_application.m_pPlayer->SetSubtitle(loadedChannelSettings.m_SubtitleStream);
+
+ /* only change the audio stream if it's different */
+ if (g_application.m_pPlayer->GetAudioStream() != loadedChannelSettings.m_AudioStream && loadedChannelSettings.m_AudioStream >= 0)
+ g_application.m_pPlayer->SetAudioStream(loadedChannelSettings.m_AudioStream);
+
+ g_application.m_pPlayer->SetAVDelay(loadedChannelSettings.m_AudioDelay);
+ g_application.m_pPlayer->SetDynamicRangeCompression((long)(loadedChannelSettings.m_VolumeAmplification * 100));
+ g_application.m_pPlayer->SetSubtitleVisible(loadedChannelSettings.m_SubtitleOn);
+ g_application.m_pPlayer->SetSubTitleDelay(loadedChannelSettings.m_SubtitleDelay);
+ }
}
void CPVRManager::SetPlayingGroup(CPVRChannelGroupPtr group)
@@ -960,12 +1012,6 @@ bool CPVRChannelGroupsUpdateJob::DoWork(void)
return g_PVRChannelGroups->Update(false);
}
-bool CPVRChannelSettingsSaveJob::DoWork(void)
-{
- g_PVRManager.SaveCurrentChannelSettings();
- return true;
-}
-
bool CPVRManager::OpenLiveStream(const CFileItem &channel)
{
bool bReturn(false);
@@ -989,6 +1035,9 @@ bool CPVRManager::OpenLiveStream(const CFileItem &channel)
delete m_currentFile;
m_currentFile = new CFileItem(channel);
+ // load channel settings
+ LoadChannelSettings(*channel.GetPVRChannelInfoTag());
+
if (m_addons->GetPlayingChannel(playingChannel))
{
time_t tNow;
@@ -1056,6 +1105,9 @@ void CPVRManager::CloseStream(void)
m_channelGroups->SetLastPlayedGroup(group);
bPersistChanges = true;
+
+ // store channel settings
+ SaveChannelSettings(*channel);
}
m_addons->CloseStream();
@@ -1265,9 +1317,6 @@ bool CPVRManager::PerformChannelSwitch(const CPVRChannel &channel, bool bPreview
m_channelGroups->SetLastPlayedGroup(GetPlayingGroup(currentChannel->IsRadio()));
}
- // store channel settings
- SaveCurrentChannelSettings();
-
// will be deleted by CPVRChannelSwitchJob::DoWork()
CFileItem* previousFile = m_currentFile;
m_currentFile = NULL;
@@ -1293,6 +1342,10 @@ bool CPVRManager::PerformChannelSwitch(const CPVRChannel &channel, bool bPreview
// switch successful
bSwitched = true;
+ // save previous and load new channel's settings
+ SaveChannelSettings(*currentChannel);
+ LoadChannelSettings(channel);
+
CSingleLock lock(m_critSection);
m_currentFile = new CFileItem(channel);
m_bIsSwitchingChannels = false;
@@ -1479,11 +1532,6 @@ void CPVRManager::TriggerChannelGroupsUpdate(void)
QueueJob(new CPVRChannelGroupsUpdateJob());
}
-void CPVRManager::TriggerSaveChannelSettings(void)
-{
- QueueJob(new CPVRChannelSettingsSaveJob());
-}
-
void CPVRManager::TriggerSearchMissingChannelIcons(void)
{
CJobManager::GetInstance().AddJob(new CPVRSearchMissingChannelIconsJob(), NULL);
View
37 xbmc/pvr/PVRManager.h
@@ -392,11 +392,6 @@ namespace PVR
void TriggerChannelGroupsUpdate(void);
/*!
- * @brief Let the background thread save the current video settings.
- */
- void TriggerSaveChannelSettings(void);
-
- /*!
* @brief Let the background thread search for missing channel icons.
*/
void TriggerSearchMissingChannelIcons(void);
@@ -504,16 +499,6 @@ namespace PVR
void SearchMissingChannelIcons(void);
/*!
- * @brief Persist the current channel settings in the database.
- */
- void SaveCurrentChannelSettings(void);
-
- /*!
- * @brief Load the settings for the current channel from the database.
- */
- void LoadCurrentChannelSettings(void);
-
- /*!
* @brief Check if channel is parental locked. Ask for PIN if neccessary.
* @param channel The channel to open.
* @return True if channel is unlocked (by default or PIN unlocked), false otherwise.
@@ -573,6 +558,18 @@ namespace PVR
* @return If at least one client and all pvr data was loaded, false otherwise.
*/
bool Load(void);
+
+ /*!
+ * @brief Persist the current channel settings in the database.
+ * @param channel the channel which settings should be saved.
+ */
+ void SaveChannelSettings(const CPVRChannel &channel);
+
+ /*!
+ * @brief Load the settings for the current channel from the database.
+ * @param channel the channel which settings should be loaded.
+ */
+ void LoadChannelSettings(const CPVRChannel &channel);
/*!
* @brief Update all recordings.
@@ -728,16 +725,6 @@ namespace PVR
virtual bool DoWork();
};
- class CPVRChannelSettingsSaveJob : public CJob
- {
- public:
- CPVRChannelSettingsSaveJob(void) {}
- virtual ~CPVRChannelSettingsSaveJob() {}
- virtual const char *GetType() const { return "pvr-save-channelsettings"; }
-
- bool DoWork();
- };
-
class CPVRChannelSwitchJob : public CJob
{
public:
View
81 xbmc/pvr/addons/PVRClients.cpp
@@ -28,8 +28,6 @@
#include "pvr/PVRManager.h"
#include "pvr/PVRDatabase.h"
#include "guilib/GUIWindowManager.h"
-#include "settings/DisplaySettings.h"
-#include "settings/MediaSettings.h"
#include "settings/Settings.h"
#include "pvr/channels/PVRChannelGroups.h"
#include "pvr/channels/PVRChannelGroupInternal.h"
@@ -37,10 +35,6 @@
#include "pvr/timers/PVRTimers.h"
#include "cores/IPlayer.h"
-#ifdef HAS_VIDEO_PLAYBACK
-#include "cores/VideoRenderers/RenderManager.h"
-#endif
-
using namespace std;
using namespace ADDON;
using namespace PVR;
@@ -50,7 +44,6 @@ CPVRClients::CPVRClients(void) :
CThread("PVRClient"),
m_bChannelScanRunning(false),
m_bIsSwitchingChannels(false),
- m_bIsValidChannelSettings(false),
m_playingClientId(-EINVAL),
m_bIsPlayingLiveTV(false),
m_bIsPlayingRecording(false),
@@ -341,8 +334,6 @@ bool CPVRClients::SwitchChannel(const CPVRChannel &channel)
{
CSingleLock lock(m_critSection);
m_bIsSwitchingChannels = false;
- if (bSwitchSuccessful)
- m_bIsValidChannelSettings = false;
}
if (!bSwitchSuccessful)
@@ -1029,78 +1020,6 @@ void CPVRClients::ShowDialogNoClientsEnabled(void)
g_windowManager.ActivateWindow(WINDOW_ADDON_BROWSER, params);
}
-void CPVRClients::SaveCurrentChannelSettings(void)
-{
- CPVRChannelPtr channel;
- {
- CSingleLock lock(m_critSection);
- if (!GetPlayingChannel(channel) || !m_bIsValidChannelSettings)
- return;
- }
-
- CPVRDatabase *database = GetPVRDatabase();
- if (!database)
- return;
-
- if (CMediaSettings::Get().GetCurrentVideoSettings() != CMediaSettings::Get().GetDefaultVideoSettings())
- {
- CLog::Log(LOGDEBUG, "PVR - %s - persisting custom channel settings for channel '%s'",
- __FUNCTION__, channel->ChannelName().c_str());
- database->PersistChannelSettings(*channel, CMediaSettings::Get().GetCurrentVideoSettings());
- }
- else
- {
- CLog::Log(LOGDEBUG, "PVR - %s - no custom channel settings for channel '%s'",
- __FUNCTION__, channel->ChannelName().c_str());
- database->DeleteChannelSettings(*channel);
- }
-}
-
-void CPVRClients::LoadCurrentChannelSettings(void)
-{
- CPVRChannelPtr channel;
- {
- CSingleLock lock(m_critSection);
- if (!GetPlayingChannel(channel))
- return;
- }
-
- CPVRDatabase *database = GetPVRDatabase();
- if (!database)
- return;
-
- if (g_application.m_pPlayer->HasPlayer())
- {
- /* store the current settings so we can compare if anything has changed */
- CVideoSettings previousSettings = CMediaSettings::Get().GetCurrentVideoSettings();
-
- /* load the persisted channel settings and set them as current */
- CVideoSettings loadedChannelSettings = CMediaSettings::Get().GetDefaultVideoSettings();
- database->GetChannelSettings(*channel, loadedChannelSettings);
- CMediaSettings::Get().GetCurrentVideoSettings() = loadedChannelSettings;
-
- /* update the view mode if it set to custom or differs from the previous mode */
- if (previousSettings.m_ViewMode != loadedChannelSettings.m_ViewMode || loadedChannelSettings.m_ViewMode == ViewModeCustom)
- g_renderManager.SetViewMode(loadedChannelSettings.m_ViewMode);
-
- /* only change the subtitle stream, if it's different */
- if (previousSettings.m_SubtitleStream != loadedChannelSettings.m_SubtitleStream)
- g_application.m_pPlayer->SetSubtitle(loadedChannelSettings.m_SubtitleStream);
-
- /* only change the audio stream if it's different */
- if (g_application.m_pPlayer->GetAudioStream() != loadedChannelSettings.m_AudioStream && loadedChannelSettings.m_AudioStream >= 0)
- g_application.m_pPlayer->SetAudioStream(loadedChannelSettings.m_AudioStream);
-
- g_application.m_pPlayer->SetAVDelay(loadedChannelSettings.m_AudioDelay);
- g_application.m_pPlayer->SetDynamicRangeCompression((long)(loadedChannelSettings.m_VolumeAmplification * 100));
- g_application.m_pPlayer->SetSubtitleVisible(loadedChannelSettings.m_SubtitleOn);
- g_application.m_pPlayer->SetSubTitleDelay(loadedChannelSettings.m_SubtitleDelay);
-
- /* settings can be saved on next channel switch */
- m_bIsValidChannelSettings = true;
- }
-}
-
bool CPVRClients::UpdateAddons(void)
{
VECADDONS addons;
View
11 xbmc/pvr/addons/PVRClients.h
@@ -72,16 +72,6 @@ namespace PVR
*/
void Stop(void);
- /*!
- * @brief Load the settings for the current channel from the database.
- */
- void LoadCurrentChannelSettings(void);
-
- /*!
- * @brief Persist the current channel settings in the database.
- */
- void SaveCurrentChannelSettings(void);
-
/*! @name Backend methods */
//@{
@@ -632,7 +622,6 @@ namespace PVR
bool m_bChannelScanRunning; /*!< true when a channel scan is currently running, false otherwise */
bool m_bIsSwitchingChannels; /*!< true while switching channels */
- bool m_bIsValidChannelSettings; /*!< true if current channel settings are valid and can be saved */
int m_playingClientId; /*!< the ID of the client that is currently playing */
bool m_bIsPlayingLiveTV;
bool m_bIsPlayingRecording;
View
5 xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp
@@ -31,7 +31,6 @@
#include "filesystem/File.h"
#include "guilib/LocalizeStrings.h"
#include "profiles/ProfilesManager.h"
-#include "pvr/PVRManager.h"
#include "settings/AdvancedSettings.h"
#include "settings/MediaSettings.h"
#include "settings/MediaSourceSettings.h"
@@ -59,7 +58,6 @@
#define SETTING_AUDIO_MAKE_DEFAULT "audio.makedefault"
using namespace std;
-using namespace PVR;
CGUIDialogAudioSubtitleSettings::CGUIDialogAudioSubtitleSettings()
: CGUIDialogSettingsManualBase(WINDOW_DIALOG_AUDIO_OSD_SETTINGS, "VideoOSDSettings.xml"),
@@ -186,9 +184,6 @@ void CGUIDialogAudioSubtitleSettings::OnSettingChanged(const CSetting *setting)
m_subtitleStream = videoSettings.m_SubtitleStream = static_cast<const CSettingInt*>(setting)->GetValue();
g_application.m_pPlayer->SetSubtitle(m_subtitleStream);
}
-
- if (g_PVRManager.IsPlayingRadio() || g_PVRManager.IsPlayingTV())
- g_PVRManager.TriggerSaveChannelSettings();
}
void CGUIDialogAudioSubtitleSettings::OnSettingAction(const CSetting *setting)
View
5 xbmc/video/dialogs/GUIDialogVideoSettings.cpp
@@ -29,7 +29,6 @@
#include "dialogs/GUIDialogYesNo.h"
#include "guilib/GUIWindowManager.h"
#include "profiles/ProfilesManager.h"
-#include "pvr/PVRManager.h"
#include "settings/MediaSettings.h"
#include "settings/Settings.h"
#include "settings/lib/Setting.h"
@@ -62,7 +61,6 @@
#define SETTING_VIDEO_CALIBRATION "video.calibration"
using namespace std;
-using namespace PVR;
CGUIDialogVideoSettings::CGUIDialogVideoSettings()
: CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "VideoOSDSettings.xml"),
@@ -145,9 +143,6 @@ void CGUIDialogVideoSettings::OnSettingChanged(const CSetting *setting)
videoSettings.m_StereoMode = static_cast<const CSettingInt*>(setting)->GetValue();
else if (settingId == SETTING_VIDEO_STEREOSCOPICINVERT)
videoSettings.m_StereoInvert = static_cast<const CSettingBool*>(setting)->GetValue();
-
- if (g_PVRManager.IsPlayingRadio() || g_PVRManager.IsPlayingTV())
- g_PVRManager.TriggerSaveChannelSettings();
}
void CGUIDialogVideoSettings::OnSettingAction(const CSetting *setting)
Something went wrong with that request. Please try again.