Skip to content

Commit

Permalink
Merge pull request #3586 from Montellese/nowplaying_fix
Browse files Browse the repository at this point in the history
"Now playling..." fix
  • Loading branch information
jmarshallnz committed Nov 8, 2013
2 parents f397c8b + 8059b24 commit 08bfbb2
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 9 deletions.
7 changes: 3 additions & 4 deletions addons/skin.confluence/720p/includes.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
<value condition="IsEmpty(ListItem.Art(poster))">$INFO[ListItem.Icon]</value> <value condition="IsEmpty(ListItem.Art(poster))">$INFO[ListItem.Icon]</value>
</variable> </variable>
<variable name="PlayList"> <variable name="PlayList">
<value condition="Player.HasVideo">ActivateWindow(videoplaylist)</value> <value condition="Window.IsActive(videolibrary) + !StringCompare(Playlist.Length(video),0)">ActivateWindow(videoplaylist)</value>
<value condition="Player.HasAudio">ActivateWindow(musicplaylist)</value> <value condition="[Window.IsActive(musiclibrary) | Window.IsActive(musicfiles)] + !StringCompare(Playlist.Length(music),0)">ActivateWindow(musicplaylist)</value>
</variable> </variable>


<include name="BehindDialogFadeOut"> <include name="BehindDialogFadeOut">
Expand Down Expand Up @@ -896,8 +896,7 @@
<include>ButtonCommonValues</include> <include>ButtonCommonValues</include>
<label>13350</label> <label>13350</label>
<onclick>$VAR[PlayList]</onclick> <onclick>$VAR[PlayList]</onclick>
<visible>Player.HasMedia</visible> <visible>[Window.IsActive(videolibrary) + !StringCompare(Playlist.Length(video),0)] | [[Window.IsActive(musiclibrary) | Window.IsActive(musicfiles)] + !StringCompare(Playlist.Length(music),0)]</visible>
<visible>!VideoPlayer.Content(LiveTV)</visible>
<visible>!Window.IsVisible(MusicPlaylist) + !Window.IsVisible(VideoPlaylist)</visible> <visible>!Window.IsVisible(MusicPlaylist) + !Window.IsVisible(VideoPlaylist)</visible>
</control> </control>
</include> </include>
Expand Down
63 changes: 59 additions & 4 deletions xbmc/GUIInfoManager.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -1173,10 +1173,30 @@ int CGUIInfoManager::TranslateSingleString(const CStdString &strCondition)
} }
else if (cat.name == "playlist") else if (cat.name == "playlist")
{ {
int ret = -1;
for (size_t i = 0; i < sizeof(playlist) / sizeof(infomap); i++) for (size_t i = 0; i < sizeof(playlist) / sizeof(infomap); i++)
{ {
if (prop.name == playlist[i].str) if (prop.name == playlist[i].str)
return playlist[i].val; {
ret = playlist[i].val;
break;
}
}
if (ret >= 0)
{
if (prop.num_params() <= 0)
return ret;
else
{
int playlistid = PLAYLIST_NONE;
if (prop.param().Equals("video"))
playlistid = PLAYLIST_VIDEO;
else if (prop.param().Equals("music"))
playlistid = PLAYLIST_MUSIC;

if (playlistid > PLAYLIST_NONE)
return AddMultiInfo(GUIInfo(ret, playlistid));
}
} }
} }
else if (cat.name == "pvr") else if (cat.name == "pvr")
Expand Down Expand Up @@ -2993,6 +3013,30 @@ bool CGUIInfoManager::GetMultiInfoBool(const GUIInfo &info, int contextWindow, c
bReturn = (index >= 0 && index < g_playlistPlayer.GetPlaylist(PLAYLIST_MUSIC).size()); bReturn = (index >= 0 && index < g_playlistPlayer.GetPlaylist(PLAYLIST_MUSIC).size());
} }
break; break;

case PLAYLIST_ISRANDOM:
{
int playlistid = info.GetData1();
if (playlistid > PLAYLIST_NONE)
bReturn = g_playlistPlayer.IsShuffled(playlistid);
}
break;

case PLAYLIST_ISREPEAT:
{
int playlistid = info.GetData1();
if (playlistid > PLAYLIST_NONE)
bReturn = g_playlistPlayer.GetRepeat(playlistid) == PLAYLIST::REPEAT_ALL;
}
break;

case PLAYLIST_ISREPEATONE:
{
int playlistid = info.GetData1();
if (playlistid > PLAYLIST_NONE)
bReturn = g_playlistPlayer.GetRepeat(playlistid) == PLAYLIST::REPEAT_ONE;
}
break;
} }
} }
return (info.m_info < 0) ? !bReturn : bReturn; return (info.m_info < 0) ? !bReturn : bReturn;
Expand Down Expand Up @@ -3232,6 +3276,15 @@ CStdString CGUIInfoManager::GetMultiInfoLabel(const GUIInfo &info, int contextWi
if (addon && info.m_info == SYSTEM_ADDON_VERSION) if (addon && info.m_info == SYSTEM_ADDON_VERSION)
return addon->Version().c_str(); return addon->Version().c_str();
} }
else if (info.m_info == PLAYLIST_LENGTH ||
info.m_info == PLAYLIST_POSITION ||
info.m_info == PLAYLIST_RANDOM ||
info.m_info == PLAYLIST_REPEAT)
{
int playlistid = info.GetData1();
if (playlistid > PLAYLIST_NONE)
return GetPlaylistLabel(info.m_info, playlistid);
}


return StringUtils::EmptyString; return StringUtils::EmptyString;
} }
Expand Down Expand Up @@ -3467,10 +3520,12 @@ const CStdString CGUIInfoManager::GetMusicPlaylistInfo(const GUIInfo& info)
return GetMusicTagLabel(info.m_info, playlistItem.get()); return GetMusicTagLabel(info.m_info, playlistItem.get());
} }


CStdString CGUIInfoManager::GetPlaylistLabel(int item) const CStdString CGUIInfoManager::GetPlaylistLabel(int item, int playlistid /* = PLAYLIST_NONE */) const
{ {
if (!g_application.m_pPlayer->IsPlaying()) return ""; if (playlistid <= PLAYLIST_NONE && !g_application.m_pPlayer->IsPlaying())
int iPlaylist = g_playlistPlayer.GetCurrentPlaylist(); return "";

int iPlaylist = playlistid == PLAYLIST_NONE ? g_playlistPlayer.GetCurrentPlaylist() : playlistid;
switch (item) switch (item)
{ {
case PLAYLIST_LENGTH: case PLAYLIST_LENGTH:
Expand Down
2 changes: 1 addition & 1 deletion xbmc/GUIInfoManager.h
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ class CGUIInfoManager : public IMsgTargetCallback, public Observable
CStdString GetMusicLabel(int item); CStdString GetMusicLabel(int item);
CStdString GetMusicTagLabel(int info, const CFileItem *item); CStdString GetMusicTagLabel(int info, const CFileItem *item);
CStdString GetVideoLabel(int item); CStdString GetVideoLabel(int item);
CStdString GetPlaylistLabel(int item) const; CStdString GetPlaylistLabel(int item, int playlistid = -1 /* PLAYLIST_NONE */) const;
CStdString GetMusicPartyModeLabel(int item); CStdString GetMusicPartyModeLabel(int item);
const CStdString GetMusicPlaylistInfo(const GUIInfo& info); const CStdString GetMusicPlaylistInfo(const GUIInfo& info);
CStdString GetPictureLabel(int item); CStdString GetPictureLabel(int item);
Expand Down

0 comments on commit 08bfbb2

Please sign in to comment.