summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlvw <lvw@e10066b5-e1e2-0310-b819-94efdf66514b>2004-09-30 21:30:34 +0000
committerlvw <lvw@e10066b5-e1e2-0310-b819-94efdf66514b>2004-09-30 21:30:34 +0000
commit6b58be9953109307dbd5cc0b3af4bb1e97e5cca6 (patch)
tree5b847105031ce04322aebbde9a6999ad9ca15209
parent24a870f6c1824281711afbc75ed30128353fa6c7 (diff)
downloadvdr-plugin-muggle-6b58be9953109307dbd5cc0b3af4bb1e97e5cca6.tar.gz
vdr-plugin-muggle-6b58be9953109307dbd5cc0b3af4bb1e97e5cca6.tar.bz2
Added progress display for VDR 1.3.7+
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@191 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--vdr_player.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/vdr_player.c b/vdr_player.c
index 1629a0b..4ef339c 100644
--- a/vdr_player.c
+++ b/vdr_player.c
@@ -868,6 +868,7 @@ mgPlayerControl::mgPlayerControl( mgPlaylist *plist )
{
MGLOG( "mgPlayerControl::mgPlayerControl" );
+ m_display = NULL;
m_visible = false;
m_has_osd = false;
}
@@ -989,14 +990,15 @@ void mgPlayerControl::ShowProgress()
// now an osd is open, go on
#if VDRVERSNUM >= 10307
- cSkinDisplayReplay *m_display;
-
- m_display = Skins.Current()->DisplayReplay(false);
+ if( !m_display )
+ {
+ m_display = Skins.Current()->DisplayReplay(false);
+ }
if( m_player && m_display )
{
int current_frame, total_frames;
m_player->GetIndex( current_frame, total_frames );
-
+
m_display->SetProgress( current_frame, total_frames );
m_display->SetCurrent( IndexToHMSF( current_frame ) );
m_display->SetTotal( IndexToHMSF( total_frames ) );
@@ -1004,11 +1006,13 @@ void mgPlayerControl::ShowProgress()
char *buf;
asprintf( &buf, "%s", m_player->GetCurrent()->getTitle().c_str() );
m_display->SetTitle( buf );
- free( buf );
-
+ // free( buf );
+
bool play = true, forward = true;
int speed = -1;
m_display->SetMode( play, forward, speed );
+
+ m_display->Flush();
}
#else
int w = Interface->Width();
@@ -1033,8 +1037,15 @@ void mgPlayerControl::Hide()
if( m_has_osd )
{
#if VDRVERSNUM >= 10307
+ /*
osd->Flush();
delete osd;
+ */
+ if( m_display )
+ {
+ delete m_display;
+ m_display = NULL;
+ }
#else
Interface->Close();
#endif