diff options
| author | lvw <lvw@e10066b5-e1e2-0310-b819-94efdf66514b> | 2004-10-08 06:41:32 +0000 |
|---|---|---|
| committer | lvw <lvw@e10066b5-e1e2-0310-b819-94efdf66514b> | 2004-10-08 06:41:32 +0000 |
| commit | 1c42cee4af45eb143db9f8b1caa9d45f16ea13fc (patch) | |
| tree | aaca1e0ebd94c2a68a28ab86c4e938d83a906fd0 /muggle-plugin/vdr_player.c | |
| parent | b504cd03caf1e82ea6c1a4795f5ee300c537928f (diff) | |
| download | vdr-plugin-muggle-1c42cee4af45eb143db9f8b1caa9d45f16ea13fc.tar.gz vdr-plugin-muggle-1c42cee4af45eb143db9f8b1caa9d45f16ea13fc.tar.bz2 | |
Added starting playlist at a certain index
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk@209 e10066b5-e1e2-0310-b819-94efdf66514b
Diffstat (limited to 'muggle-plugin/vdr_player.c')
| -rw-r--r-- | muggle-plugin/vdr_player.c | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/muggle-plugin/vdr_player.c b/muggle-plugin/vdr_player.c index 39410a8..e06f6bf 100644 --- a/muggle-plugin/vdr_player.c +++ b/muggle-plugin/vdr_player.c @@ -142,6 +142,9 @@ private: //! \brief the decoder responsible for the currently playing item mgDecoder *m_decoder; + //! \brief the index where to start the playlist at + int m_first; + cFrame *m_rframe, *m_pframe; enum ePlayMode @@ -181,7 +184,7 @@ protected: virtual void Action(void); public: - mgPCMPlayer(mgPlaylist *plist); + mgPCMPlayer(mgPlaylist *plist, int first); virtual ~mgPCMPlayer(); bool Active() { return m_active; } @@ -199,13 +202,14 @@ public: virtual bool GetIndex(int &Current, int &Total, bool SnapToIFrame=false); // bool GetPlayInfo(cMP3PlayInfo *rm); // LVW - void NewPlaylist(mgPlaylist *plist); + void NewPlaylist( mgPlaylist *plist, int first ); mgContentItem *GetCurrent () { return m_current; } mgPlaylist *GetPlaylist () { return m_playlist; } }; -mgPCMPlayer::mgPCMPlayer(mgPlaylist *plist) - : cPlayer( the_setup.BackgrMode? pmAudioOnly: pmAudioOnlyBlack ) +mgPCMPlayer::mgPCMPlayer(mgPlaylist *plist, int first) + : cPlayer( the_setup.BackgrMode? pmAudioOnly: pmAudioOnlyBlack ), + m_first( first ) { m_playlist = plist; @@ -221,7 +225,7 @@ mgPCMPlayer::mgPCMPlayer(mgPlaylist *plist) m_playmode = pmStartup; m_state = msStop; - m_index = 0; + m_index = 0; m_playing = 0; m_current = 0; } @@ -252,7 +256,11 @@ void mgPCMPlayer::Activate(bool on) Lock(); - m_playlist->initialize(); + m_playlist->initialize( ); + if( m_first > 0 ) + { + m_playlist->gotoPosition( m_first ); + } m_current = m_playlist->getCurrent(); Play(); @@ -272,7 +280,7 @@ void mgPCMPlayer::Activate(bool on) } } -void mgPCMPlayer::NewPlaylist( mgPlaylist *plist ) +void mgPCMPlayer::NewPlaylist( mgPlaylist *plist, int start ) { MGLOG( "mgPCMPlayer::NewPlaylist" ); @@ -283,8 +291,14 @@ void mgPCMPlayer::NewPlaylist( mgPlaylist *plist ) // memory management of playlists should happen elsewhere (menu, content) m_playlist = plist; m_current = 0; - - if( NextFile() ) + + if( start > 0 ) + { + m_playlist->gotoPosition( (unsigned) start ); + m_current = m_playlist->getCurrent(); + Play(); + } + else if( NextFile() ) { Play(); } @@ -866,8 +880,8 @@ bool mgPCMPlayer::GetIndex( int ¤t, int &total, bool snaptoiframe ) // --- mgPlayerControl ------------------------------------------------------- -mgPlayerControl::mgPlayerControl( mgPlaylist *plist ) - : cControl( m_player = new mgPCMPlayer(plist) ) +mgPlayerControl::mgPlayerControl( mgPlaylist *plist, int start ) + : cControl( m_player = new mgPCMPlayer( plist, start ) ) { MGLOG( "mgPlayerControl::mgPlayerControl" ); @@ -878,7 +892,8 @@ mgPlayerControl::mgPlayerControl( mgPlaylist *plist ) m_has_osd = false; m_szLastShowStatusMsg = NULL; - // Notity all cStatusMonitor + + // Notify all cStatusMonitor StatusMsgReplaying(); } @@ -976,11 +991,11 @@ void mgPlayerControl::ToggleLoop(void) } } -void mgPlayerControl::NewPlaylist(mgPlaylist *plist) +void mgPlayerControl::NewPlaylist(mgPlaylist *plist, int start) { if( m_player ) { - m_player->NewPlaylist(plist); + m_player->NewPlaylist(plist, start); } } |
