b6b2996b76e1b0f0e403b4be40430a445bc0873c
Stefan Schuermans converted player module to...

Stefan Schuermans authored 12 years ago

1) /* Blinker
Stefan Schuermans update copyright years

Stefan Schuermans authored 10 years ago

2)    Copyright 2011-2014 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans converted player module to...

Stefan Schuermans authored 12 years ago

3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #include <string>
7) 
8) #include <BlinkenLib/BlinkenFrame.h>
9) #include <BlinkenLib/BlinkenMovie.h>
10) 
11) #include "File.h"
12) #include "Player.h"
13) #include "PlayerMovie.h"
14) 
15) namespace Blinker {
16) 
17) /**
18)  * @brief constructor
19)  * @param[in] player owning player module
20)  * @param[in] name name of movie
21)  * @param[in] file movie file
22)  */
23) Player::Movie::Movie(Player &player, const std::string &name,
24)                      const File &file):
25)   m_player(player),
26)   m_name(name),
27)   m_file(file),
28)   m_pMovie(NULL)
29) {
30)   load();
31)   ifOnlyGoHere();
32) }
33) 
34) /// destructor
35) Player::Movie::~Movie()
36) {
37)   ifCurGoNext();
38)   free();
39) }
40) 
41) /// check for update of configuration
42) void Player::Movie::updateConfig()
43) {
44)   // movie file was modified
45)   if (m_file.checkModified()) {
46)     ifCurGoNext();
47)     load();
48)     ifOnlyGoHere();
49)   }
50) }
51) 
52) /// load movie from current file
53) void Player::Movie::load()
54) {
55)   free();
56)   m_pMovie = BlinkenMovieLoad(m_file.getPath().c_str());
57) }
58) 
59) /// free current movie
60) void Player::Movie::free()
61) {
62)   if (m_pMovie) {
63)     BlinkenMovieFree(m_pMovie);
64)     m_pMovie = NULL;
65)   }
66) }
67) 
68) /// if this is the only movie in playlist go to begin of this movie
69) void Player::Movie::ifOnlyGoHere()
70) {
71)   /* The implementation of ListTracker will first set up the entry and then
72)      insert it into the list. Thus, we are the only movie if we see an empty
73)      playlist here. */
74)   if (m_player.m_playlistTracker.m_list.empty() && m_pMovie) {
75)     m_player.m_curEntry = m_player.m_playlistTracker.m_list.begin();
76)     m_player.m_curChange = true;
77)   }
Stefan Schuermans fix bug in player module: c...

Stefan Schuermans authored 12 years ago

78)   /* additional rule in case plalist conatins just broken/empty movies:
79)    * if current movie is not valid, trigger re-check by setting change flag */
80)  if (!m_player.m_curValid)
81)    m_player.m_curChange = true;