home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
Showing OSD when changing channels in MyTV
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="SePPiE" data-source="post: 10103" data-attributes="member: 10540"><p><strong>Better working code...</strong></p><p></p><p>(You can also download a zip file I made with the modified files below and a compiled Debug DLL plus modified skin <a href="http://nomaam.epker.net/GUITV.zip" target="_blank">here</a>....</p><p></p><p></p><p></p><p><strong>In GUITV\GUITVHome.cs:</strong></p><p></p><p>static public void OnNextChannel()</p><p> {</p><p> // get list of all channels</p><p> string strChannel=Recorder.TVChannelName;</p><p> if (currentGroup!=null)</p><p> {</p><p> // get current channel name</p><p> for (int i=0; i < currentGroup.tvChannels.Count;++i)</p><p> {</p><p> TVChannel chan=(TVChannel)currentGroup.tvChannels<em>;</em></p><p><em> if (String.Compare(chan.Name,strChannel,true)==0 )</em></p><p><em> {</em></p><p><em> //select next channel</em></p><p><em> int iNext=i+1;</em></p><p><em> if (iNext>currentGroup.tvChannels.Count-1) iNext=0;</em></p><p><em> chan=(TVChannel)currentGroup.tvChannels[iNext];</em></p><p><em></em></p><p><em> //and view that</em></p><p><em> int card=GUITVHome.GetCurrentCard();</em></p><p><em> Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ;</em></p><p><em> </em></p><p><em> if (GUIGraphicsContext.IsFullScreenVideo)</em></p><p><em> {</em></p><p><em> GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN);</em></p><p><em> if (TVWindow != null) <strong>TVWindow.ShowInfoOSD();</strong></em></p><p><em> }</em></p><p><em> return;</em></p><p><em> }</em></p><p><em> }</em></p><p><em> return;</em></p><p><em> }</em></p><p><em> ArrayList m_channels=new ArrayList();</em></p><p><em> TVDatabase.GetChannels(ref m_channels);</em></p><p><em></em></p><p><em> // get current channel name</em></p><p><em> for (int i=0; i < m_channels.Count;++i)</em></p><p><em> {</em></p><p><em> TVChannel chan=(TVChannel)m_channels<em>;</em></em></p><p><em><em> if (String.Compare(chan.Name,strChannel,true)==0 )</em></em></p><p><em><em> {</em></em></p><p><em><em> //select next channel</em></em></p><p><em><em> int iNext=i+1;</em></em></p><p><em><em> if (iNext>m_channels.Count-1) iNext=0;</em></em></p><p><em><em> chan=(TVChannel)m_channels[iNext];</em></em></p><p><em><em></em></em></p><p><em><em> //and view that</em></em></p><p><em><em> int card=GUITVHome.GetCurrentCard();</em></em></p><p><em><em> Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ;</em></em></p><p><em><em> </em></em></p><p><em><em> if (GUIGraphicsContext.IsFullScreenVideo)</em></em></p><p><em><em> {</em></em></p><p><em><em> GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN);</em></em></p><p><em><em> if (TVWindow != null) <strong>TVWindow.ShowInfoOSD();</strong></em></em></p><p><em><em> }</em></em></p><p><em><em> return;</em></em></p><p><em><em> }</em></em></p><p><em><em> }</em></em></p><p><em><em> }</em></em></p><p><em><em></em></em></p><p><em><em>static public void OnPreviousChannel()</em></em></p><p><em><em> { </em></em></p><p><em><em> string strChannel=Recorder.TVChannelName;</em></em></p><p><em><em> if (currentGroup!=null)</em></em></p><p><em><em> {</em></em></p><p><em><em> for (int i=0; i < currentGroup.tvChannels.Count;++i)</em></em></p><p><em><em> {</em></em></p><p><em><em> TVChannel chan=(TVChannel)currentGroup.tvChannels<em>;</em></em></em></p><p><em><em><em> if (String.Compare(chan.Name,strChannel,true)==0 )</em></em></em></p><p><em><em><em> {</em></em></em></p><p><em><em><em> int iPrev=i-1;</em></em></em></p><p><em><em><em> if (iPrev<0) iPrev=currentGroup.tvChannels.Count-1;</em></em></em></p><p><em><em><em> chan=(TVChannel)currentGroup.tvChannels[iPrev];</em></em></em></p><p><em><em><em> </em></em></em></p><p><em><em><em> int card=GUITVHome.GetCurrentCard();</em></em></em></p><p><em><em><em> Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ;</em></em></em></p><p><em><em><em> </em></em></em></p><p><em><em><em></em></em></em></p><p><em><em><em> if (GUIGraphicsContext.IsFullScreenVideo)</em></em></em></p><p><em><em><em> {</em></em></em></p><p><em><em><em> GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN);</em></em></em></p><p><em><em><em> if (TVWindow != null) <strong>TVWindow.ShowInfoOSD();</strong></em></em></em></p><p><em><em><em> }</em></em></em></p><p><em><em><em> return;</em></em></em></p><p><em><em><em> }</em></em></em></p><p><em><em><em> }</em></em></em></p><p><em><em><em> }</em></em></em></p><p><em><em><em></em></em></em></p><p><em><em><em> ArrayList m_channels=new ArrayList();</em></em></em></p><p><em><em><em> TVDatabase.GetChannels(ref m_channels);</em></em></em></p><p><em><em><em> for (int i=0; i < m_channels.Count;++i)</em></em></em></p><p><em><em><em> {</em></em></em></p><p><em><em><em> TVChannel chan=(TVChannel)m_channels<em>;</em></em></em></em></p><p><em><em><em><em> if (String.Compare(chan.Name,strChannel,true)==0 )</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> int iPrev=i-1;</em></em></em></em></p><p><em><em><em><em> if (iPrev<0) iPrev=m_channels.Count-1;</em></em></em></em></p><p><em><em><em><em> chan=(TVChannel)m_channels[iPrev];</em></em></em></em></p><p><em><em><em><em> </em></em></em></em></p><p><em><em><em><em> int card=GUITVHome.GetCurrentCard();</em></em></em></em></p><p><em><em><em><em> Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ;</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> if (GUIGraphicsContext.IsFullScreenVideo)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN);</em></em></em></em></p><p><em><em><em><em> if (TVWindow != null) <strong>TVWindow.ShowInfoOSD();</strong></em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> return;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong> Then in GUITV\GUIFULLSCREENTV.cs insert this new subroutine</strong></em></em></em></em></p><p><em><em><em><em> public void ShowInfoOSD()</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> if (m_bOSDVisible)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> m_osdWindow.ShowingInfo();</em></em></em></em></p><p><em><em><em><em> m_osdWindow.UpdateChannelInfo();</em></em></em></em></p><p><em><em><em><em> m_dwOSDTimeOut=DateTime.Now;</em></em></em></em></p><p><em><em><em><em> m_bUpdate = true;</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> else</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> m_osdWindow.ShowingInfo();</em></em></em></em></p><p><em><em><em><em> m_osdWindow.UpdateChannelInfo();</em></em></em></em></p><p><em><em><em><em> Log.Write("INFO OSD:ON");</em></em></em></em></p><p><em><em><em><em> m_dwOSDTimeOut=DateTime.Now;</em></em></em></em></p><p><em><em><em><em> GUIMessage msg= new GUIMessage (GUIMessage.MessageType.GUI_MSG_WINDOW_INIT,m_osdWindow.GetID,0,0,0,0,null);</em></em></em></em></p><p><em><em><em><em> m_osdWindow.OnMessage(msg); // Send an init msg to the OSD</em></em></em></em></p><p><em><em><em><em> m_bOSDVisible=true;</em></em></em></em></p><p><em><em><em><em> m_bUpdate=true;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>Also change the OnAction.ACTION_SHOW_OSD to reflect the following</strong></em></em></em></em></p><p><em><em><em><em> case Action.ActionType.ACTION_SHOW_OSD: // Show the OSD</em></em></em></em></p><p><em><em><em><em> { </em></em></em></em></p><p><em><em><em><em> Log.Write("OSD:ON");</em></em></em></em></p><p><em><em><em><em> m_dwOSDTimeOut=DateTime.Now;</em></em></em></em></p><p><em><em><em><em> GUIMessage msg= new GUIMessage (GUIMessage.MessageType.GUI_MSG_WINDOW_INIT,m_osdWindow.GetID,0,0,0,0,null);</em></em></em></em></p><p><em><em><em><em> <strong>m_osdWindow.NoMoreInfo();</strong></em></em></em></em></p><p><em><em><em><em> m_osdWindow.OnMessage(msg); // Send an init msg to the OSD</em></em></em></em></p><p><em><em><em><em> m_bOSDVisible=true;</em></em></em></em></p><p><em><em><em><em> m_bUpdate=true;</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>Then in GUITV\GUITVOSD.cs declare:</strong></em></em></em></em></p><p><em><em><em><em> bool m_bShowingInfo = false;</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong> then add the following subroutines somewhere</strong></em></em></em></em></p><p><em><em><em><em> public void ShowingInfo()</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> m_bShowingInfo = true;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> public void NoMoreInfo()</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> if (m_bShowingInfo==true)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_MUTE);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_SUBTITLES);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_BOOKMARKS);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_VIDEO);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_AUDIO);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_REWIND); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_FFWD); // buttons back to</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_PLAY); // their up state</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_SKIPBWD); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_STOP); // buttons back to</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_SKIPFWD); // their up state</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.OSD_MUTE); // their up state</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.LABEL_ONTV_NEXT);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.BTN_CHANNEL_UP);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.BTN_CHANNEL_DOWN);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.BTN_PROGRAM_LEFT);</em></em></em></em></p><p><em><em><em><em> ShowControl(GetID,(int)Controls.BTN_PROGRAM_RIGHT);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_MUTE, false);</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_SUBTITLES, false);</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_BOOKMARKS, false);</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_VIDEO, false);</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_AUDIO, false);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_REWIND, false); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_FFWD, false); // buttons back to</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_PLAY, false); // their up state</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_SKIPBWD, false); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_STOP, false); // buttons back to</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_SKIPFWD, false); // their up state</em></em></em></em></p><p><em><em><em><em> ToggleButton((int)Controls.OSD_MUTE, false); // their up state</em></em></em></em></p><p><em><em><em><em> m_bShowingInfo = false;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> void HideAllButInfo()</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> // Set all sub menu controls to hidden</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_AUDIO);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_VIDEO);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_BOOKMARKS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_SUBTITLES);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_VOL);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_VOLUMESLIDER);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_VIDEOPOS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_VIDEOPOS_LABEL);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_AUDIOSTREAM_LIST);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_AVDELAY);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SATURATIONLABEL);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SATURATION);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SHARPNESSLABEL);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SHARPNESS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_AVDELAY_LABEL);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_BRIGHTNESS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_BRIGHTNESSLABEL);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_GAMMA);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_GAMMALABEL);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_CONTRAST);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_CONTRASTLABEL);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_CREATEBOOKMARK);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_BOOKMARKS_LIST);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_BOOKMARKS_LIST_LABEL);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_CLEARBOOKMARKS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBTITLE_DELAY);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBTITLE_DELAY_LABEL);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBTITLE_ONOFF);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID, (int)Controls.OSD_SUBTITLE_LIST);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_MUTE);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_SUBTITLES);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_BOOKMARKS);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_VIDEO);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_AUDIO);</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_REWIND); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_FFWD); // buttons back to</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_PLAY); // their up state</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_SKIPBWD); // pop all the relevant</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_STOP); // buttons back to</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_SKIPFWD); // their up state</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.OSD_MUTE); // their up state</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.LABEL_ONTV_NEXT);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.BTN_CHANNEL_UP);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.BTN_CHANNEL_DOWN);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.BTN_PROGRAM_LEFT);</em></em></em></em></p><p><em><em><em><em> HideControl(GetID,(int)Controls.BTN_PROGRAM_RIGHT);</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>And then in the UpdateProgressBar() sub alter it like this:</strong></em></em></em></em></p><p><em><em><em><em> void UpdateProgressBar()</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> double fPercent;</em></em></em></em></p><p><em><em><em><em> if (g_Player.Playing==false)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> if (m_util==null)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> m_util=new TVUtil();</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> TVProgram prog=m_util.GetCurrentProgram(GetChannelName());</em></em></em></em></p><p><em><em><em><em> if (prog==null) return;</em></em></em></em></p><p><em><em><em><em> string strTime=String.Format("{0}-{1}", </em></em></em></em></p><p><em><em><em><em> prog.StartTime.ToString("t",CultureInfo.CurrentCulture.DateTimeFormat),</em></em></em></em></p><p><em><em><em><em> prog.EndTime.ToString("t",CultureInfo.CurrentCulture.DateTimeFormat));</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> TimeSpan ts=prog.EndTime-prog.StartTime;</em></em></em></em></p><p><em><em><em><em> double iTotalSecs=ts.TotalSeconds;</em></em></em></em></p><p><em><em><em><em> ts=DateTime.Now-prog.StartTime; </em></em></em></em></p><p><em><em><em><em> double iCurSecs=ts.TotalSeconds;</em></em></em></em></p><p><em><em><em><em> fPercent = ((double)iCurSecs) / ((double)iTotalSecs);</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> fPercent=g_Player.CurrentPosition / g_Player.Duration;</em></em></em></em></p><p><em><em><em><em> fPercent *=100.0d;</em></em></em></em></p><p><em><em><em><em> GUIProgressControl cntl=GetControl( (int)Controls.PROGRESS_BAR) as GUIProgressControl;</em></em></em></em></p><p><em><em><em><em> if (cntl!=null)</em></em></em></em></p><p><em><em><em><em> {</em></em></em></em></p><p><em><em><em><em> cntl.Percentage=(int)fPercent;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em><strong> if (m_bShowingInfo==true)</strong></em></em></em></em></p><p><em><em><em><em><strong> {</strong></em></em></em></em></p><p><em><em><em><em><strong> HideAllButInfo();</strong></em></em></em></em></p><p><em><em><em><em><strong> }</strong></em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>I know for sure above code could be more efficient, but hey, I'm more used to VB.Net myself and think I did quite well <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> I'm also doing this in the boss his time, so sometimes my attention goes to other stuff, but ah well, here it is <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></strong></em></em></em></em></p><p><em><em><em><em><strong></strong></em></em></em></em></p><p><em><em><em><em><strong>Only thing left to do is numberpad channel switching.. But don't really know how to tackle that problem yet... So for the anxious people, at least here's the info OSD <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> ....</strong></em></em></em></em></p><p><em><em><em><em><strong></strong></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em>Oh yeah, if you would also like the tv logo's a bit bigger and more centered,here's my modified mce xml skin elements: </em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>[UPDATE] Come to think of it, you NEED to alter the ON TV NEXT and ON TV NOW like below, cause else you'll see the NEXT show in the top and not the CURRENT show[/UPDATE]</strong></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em><strong>TVOSD.XML:</strong></em></em></em></em></p><p><em><em><em><em></em></em></em></em></p><p><em><em><em><em> <control></em></em></em></em></p><p><em><em><em><em> <description>TV Logo</description> </em></em></em></em></p><p><em><em><em><em> <type>image</type> </em></em></em></em></p><p><em><em><em><em> <id>10</id> </em></em></em></em></p><p><em><em><em><em> <posX>20</posX> </em></em></em></em></p><p><em><em><em><em> <posY>435</posY></em></em></em></em></p><p><em><em><em><em> <width>100</width></em></em></em></em></p><p><em><em><em><em> <height>100</height></em></em></em></em></p><p><em><em><em><em> <texture>#TV.View.thumb</texture> </em></em></em></em></p><p><em><em><em><em> <visible>yes</visible> </em></em></em></em></p><p><em><em><em><em> </control></em></em></em></em></p><p><em><em><em><em> <control></em></em></em></em></p><p><em><em><em><em> <description>On tv NOW</description> </em></em></em></em></p><p><em><em><em><em> <id>36</id> </em></em></em></em></p><p><em><em><em><em> <type>textbox</type> </em></em></em></em></p><p><em><em><em><em> <width>500</width></em></em></em></em></p><p><em><em><em><em> <height>60</height> </em></em></em></em></p><p><em><em><em><em> <posX>205</posX> </em></em></em></em></p><p><em><em><em><em> <posY>420</posY></em></em></em></em></p><p><em><em><em><em> <align>left</align></em></em></em></em></p><p><em><em><em><em> <font>font13</font> </em></em></em></em></p><p><em><em><em><em> <textcolor>FFFFFFFF</textcolor></em></em></em></em></p><p><em><em><em><em> </control></em></em></em></em></p><p><em><em><em><em> <control></em></em></em></em></p><p><em><em><em><em> <description>On tv NEXT</description> </em></em></em></em></p><p><em><em><em><em> <id>37</id> </em></em></em></em></p><p><em><em><em><em> <type>textbox</type> </em></em></em></em></p><p><em><em><em><em> <width>500</width> </em></em></em></em></p><p><em><em><em><em> <height>60</height></em></em></em></em></p><p><em><em><em><em> <posX>205</posX> </em></em></em></em></p><p><em><em><em><em> <posY>443</posY></em></em></em></em></p><p><em><em><em><em> <align>left</align> </em></em></em></em></p><p><em><em><em><em> <font>font10</font> </em></em></em></em></p><p><em><em><em><em> <textcolor>FFB2D4F5</textcolor></em></em></em></em></p><p><em><em><em><em> </control></em></em></em></em></p><p><em><em><em><em> <control></em></em></em></em></p><p><em><em><em><em> <description>Current channel</description> </em></em></em></em></p><p><em><em><em><em> <type>label</type> </em></em></em></em></p><p><em><em><em><em> <id>35</id> </em></em></em></em></p><p><em><em><em><em> <posX>35</posX> </em></em></em></em></p><p><em><em><em><em> <posY>540</posY> </em></em></em></em></p><p><em><em><em><em> <label>-</label> </em></em></em></em></p><p><em><em><em><em> <align>left</align> </em></em></em></em></p><p><em><em><em><em> <font>font10</font> </em></em></em></em></p><p><em><em><em><em> <textcolor>FFFFFFFF</textcolor> </em></em></em></em></p><p><em><em><em><em> </control>[/url]</em></em></em></em></p></blockquote><p></p>
[QUOTE="SePPiE, post: 10103, member: 10540"] [b]Better working code...[/b] (You can also download a zip file I made with the modified files below and a compiled Debug DLL plus modified skin [url=http://nomaam.epker.net/GUITV.zip]here[/url].... [b]In GUITV\GUITVHome.cs:[/b] static public void OnNextChannel() { // get list of all channels string strChannel=Recorder.TVChannelName; if (currentGroup!=null) { // get current channel name for (int i=0; i < currentGroup.tvChannels.Count;++i) { TVChannel chan=(TVChannel)currentGroup.tvChannels[i]; if (String.Compare(chan.Name,strChannel,true)==0 ) { //select next channel int iNext=i+1; if (iNext>currentGroup.tvChannels.Count-1) iNext=0; chan=(TVChannel)currentGroup.tvChannels[iNext]; //and view that int card=GUITVHome.GetCurrentCard(); Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ; if (GUIGraphicsContext.IsFullScreenVideo) { GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN); if (TVWindow != null) [b]TVWindow.ShowInfoOSD();[/b] } return; } } return; } ArrayList m_channels=new ArrayList(); TVDatabase.GetChannels(ref m_channels); // get current channel name for (int i=0; i < m_channels.Count;++i) { TVChannel chan=(TVChannel)m_channels[i]; if (String.Compare(chan.Name,strChannel,true)==0 ) { //select next channel int iNext=i+1; if (iNext>m_channels.Count-1) iNext=0; chan=(TVChannel)m_channels[iNext]; //and view that int card=GUITVHome.GetCurrentCard(); Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ; if (GUIGraphicsContext.IsFullScreenVideo) { GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN); if (TVWindow != null) [b]TVWindow.ShowInfoOSD();[/b] } return; } } } static public void OnPreviousChannel() { string strChannel=Recorder.TVChannelName; if (currentGroup!=null) { for (int i=0; i < currentGroup.tvChannels.Count;++i) { TVChannel chan=(TVChannel)currentGroup.tvChannels[i]; if (String.Compare(chan.Name,strChannel,true)==0 ) { int iPrev=i-1; if (iPrev<0) iPrev=currentGroup.tvChannels.Count-1; chan=(TVChannel)currentGroup.tvChannels[iPrev]; int card=GUITVHome.GetCurrentCard(); Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ; if (GUIGraphicsContext.IsFullScreenVideo) { GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN); if (TVWindow != null) [b]TVWindow.ShowInfoOSD();[/b] } return; } } } ArrayList m_channels=new ArrayList(); TVDatabase.GetChannels(ref m_channels); for (int i=0; i < m_channels.Count;++i) { TVChannel chan=(TVChannel)m_channels[i]; if (String.Compare(chan.Name,strChannel,true)==0 ) { int iPrev=i-1; if (iPrev<0) iPrev=m_channels.Count-1; chan=(TVChannel)m_channels[iPrev]; int card=GUITVHome.GetCurrentCard(); Recorder.StartViewing(card, chan.Name, Recorder.IsCardViewing(card), Recorder.IsCardTimeShifting(card)) ; if (GUIGraphicsContext.IsFullScreenVideo) { GUIFullScreenTV TVWindow = (GUIFullScreenTV) GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_TVFULLSCREEN); if (TVWindow != null) [b]TVWindow.ShowInfoOSD();[/b] } return; } } } [b] Then in GUITV\GUIFULLSCREENTV.cs insert this new subroutine[/b] public void ShowInfoOSD() { if (m_bOSDVisible) { m_osdWindow.ShowingInfo(); m_osdWindow.UpdateChannelInfo(); m_dwOSDTimeOut=DateTime.Now; m_bUpdate = true; } else { m_osdWindow.ShowingInfo(); m_osdWindow.UpdateChannelInfo(); Log.Write("INFO OSD:ON"); m_dwOSDTimeOut=DateTime.Now; GUIMessage msg= new GUIMessage (GUIMessage.MessageType.GUI_MSG_WINDOW_INIT,m_osdWindow.GetID,0,0,0,0,null); m_osdWindow.OnMessage(msg); // Send an init msg to the OSD m_bOSDVisible=true; m_bUpdate=true; } } [b]Also change the OnAction.ACTION_SHOW_OSD to reflect the following[/b] case Action.ActionType.ACTION_SHOW_OSD: // Show the OSD { Log.Write("OSD:ON"); m_dwOSDTimeOut=DateTime.Now; GUIMessage msg= new GUIMessage (GUIMessage.MessageType.GUI_MSG_WINDOW_INIT,m_osdWindow.GetID,0,0,0,0,null); [b]m_osdWindow.NoMoreInfo();[/b] m_osdWindow.OnMessage(msg); // Send an init msg to the OSD m_bOSDVisible=true; m_bUpdate=true; } [b]Then in GUITV\GUITVOSD.cs declare:[/b] bool m_bShowingInfo = false; [b] then add the following subroutines somewhere[/b] public void ShowingInfo() { m_bShowingInfo = true; } public void NoMoreInfo() { if (m_bShowingInfo==true) { ShowControl(GetID,(int)Controls.OSD_MUTE); ShowControl(GetID,(int)Controls.OSD_SUBTITLES); ShowControl(GetID,(int)Controls.OSD_BOOKMARKS); ShowControl(GetID,(int)Controls.OSD_VIDEO); ShowControl(GetID,(int)Controls.OSD_AUDIO); ShowControl(GetID,(int)Controls.OSD_REWIND); // pop all the relevant ShowControl(GetID,(int)Controls.OSD_FFWD); // buttons back to ShowControl(GetID,(int)Controls.OSD_PLAY); // their up state ShowControl(GetID,(int)Controls.OSD_SKIPBWD); // pop all the relevant ShowControl(GetID,(int)Controls.OSD_STOP); // buttons back to ShowControl(GetID,(int)Controls.OSD_SKIPFWD); // their up state ShowControl(GetID,(int)Controls.OSD_MUTE); // their up state ShowControl(GetID,(int)Controls.LABEL_ONTV_NEXT); ShowControl(GetID,(int)Controls.BTN_CHANNEL_UP); ShowControl(GetID,(int)Controls.BTN_CHANNEL_DOWN); ShowControl(GetID,(int)Controls.BTN_PROGRAM_LEFT); ShowControl(GetID,(int)Controls.BTN_PROGRAM_RIGHT); ToggleButton((int)Controls.OSD_MUTE, false); ToggleButton((int)Controls.OSD_SUBTITLES, false); ToggleButton((int)Controls.OSD_BOOKMARKS, false); ToggleButton((int)Controls.OSD_VIDEO, false); ToggleButton((int)Controls.OSD_AUDIO, false); ToggleButton((int)Controls.OSD_REWIND, false); // pop all the relevant ToggleButton((int)Controls.OSD_FFWD, false); // buttons back to ToggleButton((int)Controls.OSD_PLAY, false); // their up state ToggleButton((int)Controls.OSD_SKIPBWD, false); // pop all the relevant ToggleButton((int)Controls.OSD_STOP, false); // buttons back to ToggleButton((int)Controls.OSD_SKIPFWD, false); // their up state ToggleButton((int)Controls.OSD_MUTE, false); // their up state m_bShowingInfo = false; } } void HideAllButInfo() { // Set all sub menu controls to hidden HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_AUDIO); HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_VIDEO); HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_BOOKMARKS); HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_SUBTITLES); HideControl(GetID, (int)Controls.OSD_SUBMENU_BG_VOL); HideControl(GetID, (int)Controls.OSD_VOLUMESLIDER); HideControl(GetID, (int)Controls.OSD_VIDEOPOS); HideControl(GetID, (int)Controls.OSD_VIDEOPOS_LABEL); HideControl(GetID, (int)Controls.OSD_AUDIOSTREAM_LIST); HideControl(GetID, (int)Controls.OSD_AVDELAY); HideControl(GetID, (int)Controls.OSD_SATURATIONLABEL); HideControl(GetID, (int)Controls.OSD_SATURATION); HideControl(GetID, (int)Controls.OSD_SHARPNESSLABEL); HideControl(GetID, (int)Controls.OSD_SHARPNESS); HideControl(GetID, (int)Controls.OSD_AVDELAY_LABEL); HideControl(GetID, (int)Controls.OSD_BRIGHTNESS); HideControl(GetID, (int)Controls.OSD_BRIGHTNESSLABEL); HideControl(GetID, (int)Controls.OSD_GAMMA); HideControl(GetID, (int)Controls.OSD_GAMMALABEL); HideControl(GetID, (int)Controls.OSD_CONTRAST); HideControl(GetID, (int)Controls.OSD_CONTRASTLABEL); HideControl(GetID, (int)Controls.OSD_CREATEBOOKMARK); HideControl(GetID, (int)Controls.OSD_BOOKMARKS_LIST); HideControl(GetID, (int)Controls.OSD_BOOKMARKS_LIST_LABEL); HideControl(GetID, (int)Controls.OSD_CLEARBOOKMARKS); HideControl(GetID, (int)Controls.OSD_SUBTITLE_DELAY); HideControl(GetID, (int)Controls.OSD_SUBTITLE_DELAY_LABEL); HideControl(GetID, (int)Controls.OSD_SUBTITLE_ONOFF); HideControl(GetID, (int)Controls.OSD_SUBTITLE_LIST); HideControl(GetID,(int)Controls.OSD_MUTE); HideControl(GetID,(int)Controls.OSD_SUBTITLES); HideControl(GetID,(int)Controls.OSD_BOOKMARKS); HideControl(GetID,(int)Controls.OSD_VIDEO); HideControl(GetID,(int)Controls.OSD_AUDIO); HideControl(GetID,(int)Controls.OSD_REWIND); // pop all the relevant HideControl(GetID,(int)Controls.OSD_FFWD); // buttons back to HideControl(GetID,(int)Controls.OSD_PLAY); // their up state HideControl(GetID,(int)Controls.OSD_SKIPBWD); // pop all the relevant HideControl(GetID,(int)Controls.OSD_STOP); // buttons back to HideControl(GetID,(int)Controls.OSD_SKIPFWD); // their up state HideControl(GetID,(int)Controls.OSD_MUTE); // their up state HideControl(GetID,(int)Controls.LABEL_ONTV_NEXT); HideControl(GetID,(int)Controls.BTN_CHANNEL_UP); HideControl(GetID,(int)Controls.BTN_CHANNEL_DOWN); HideControl(GetID,(int)Controls.BTN_PROGRAM_LEFT); HideControl(GetID,(int)Controls.BTN_PROGRAM_RIGHT); } [b]And then in the UpdateProgressBar() sub alter it like this:[/b] void UpdateProgressBar() { double fPercent; if (g_Player.Playing==false) { if (m_util==null) { m_util=new TVUtil(); } TVProgram prog=m_util.GetCurrentProgram(GetChannelName()); if (prog==null) return; string strTime=String.Format("{0}-{1}", prog.StartTime.ToString("t",CultureInfo.CurrentCulture.DateTimeFormat), prog.EndTime.ToString("t",CultureInfo.CurrentCulture.DateTimeFormat)); TimeSpan ts=prog.EndTime-prog.StartTime; double iTotalSecs=ts.TotalSeconds; ts=DateTime.Now-prog.StartTime; double iCurSecs=ts.TotalSeconds; fPercent = ((double)iCurSecs) / ((double)iTotalSecs); } fPercent=g_Player.CurrentPosition / g_Player.Duration; fPercent *=100.0d; GUIProgressControl cntl=GetControl( (int)Controls.PROGRESS_BAR) as GUIProgressControl; if (cntl!=null) { cntl.Percentage=(int)fPercent; } [b] if (m_bShowingInfo==true) { HideAllButInfo(); }[/b] } [b]I know for sure above code could be more efficient, but hey, I'm more used to VB.Net myself and think I did quite well :) I'm also doing this in the boss his time, so sometimes my attention goes to other stuff, but ah well, here it is :) Only thing left to do is numberpad channel switching.. But don't really know how to tackle that problem yet... So for the anxious people, at least here's the info OSD :) .... [/b] Oh yeah, if you would also like the tv logo's a bit bigger and more centered,here's my modified mce xml skin elements: [b][UPDATE] Come to think of it, you NEED to alter the ON TV NEXT and ON TV NOW like below, cause else you'll see the NEXT show in the top and not the CURRENT show[/UPDATE][/b] [b]TVOSD.XML:[/b] <control> <description>TV Logo</description> <type>image</type> <id>10</id> <posX>20</posX> <posY>435</posY> <width>100</width> <height>100</height> <texture>#TV.View.thumb</texture> <visible>yes</visible> </control> <control> <description>On tv NOW</description> <id>36</id> <type>textbox</type> <width>500</width> <height>60</height> <posX>205</posX> <posY>420</posY> <align>left</align> <font>font13</font> <textcolor>FFFFFFFF</textcolor> </control> <control> <description>On tv NEXT</description> <id>37</id> <type>textbox</type> <width>500</width> <height>60</height> <posX>205</posX> <posY>443</posY> <align>left</align> <font>font10</font> <textcolor>FFB2D4F5</textcolor> </control> <control> <description>Current channel</description> <type>label</type> <id>35</id> <posX>35</posX> <posY>540</posY> <label>-</label> <align>left</align> <font>font10</font> <textcolor>FFFFFFFF</textcolor> </control>[/url][/i][/i][/i][/i] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
Showing OSD when changing channels in MyTV
Contact us
RSS
Top
Bottom