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) }
|
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;
|