implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 1) /* Blinker
|
update copyright header
Stefan Schuermans authored 5 years ago
|
src/common/Loveletter.cpp 2) Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 3) Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
src/noarch/Loveletter.cpp 4) a blinkenarea.org project */
src/noarch/Loveletter.cpp 5)
src/noarch/Loveletter.cpp 6) #include <list>
src/noarch/Loveletter.cpp 7) #include <string>
src/noarch/Loveletter.cpp 8)
src/noarch/Loveletter.cpp 9) #include <BlinkenLib/BlinkenFrame.h>
src/noarch/Loveletter.cpp 10) #include <BlinkenLib/BlinkenMovie.h>
src/noarch/Loveletter.cpp 11)
src/noarch/Loveletter.cpp 12) #include "Directory.h"
src/noarch/Loveletter.cpp 13) #include "File.h"
src/noarch/Loveletter.cpp 14) #include "InStreamFile.h"
src/noarch/Loveletter.cpp 15) #include "ListTracker.h"
src/noarch/Loveletter.cpp 16) #include "ListTracker_impl.h"
src/noarch/Loveletter.cpp 17) #include "Loveletter.h"
src/noarch/Loveletter.cpp 18) #include "LoveletterMovie.h"
src/noarch/Loveletter.cpp 19) #include "Mgrs.h"
src/noarch/Loveletter.cpp 20) #include "Module.h"
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 21) #include "NameFile.h"
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 22) #include "OutStreamFile.h"
src/noarch/Loveletter.cpp 23) #include "StreamRecv.h"
src/noarch/Loveletter.cpp 24) #include "Time.h"
src/noarch/Loveletter.cpp 25) #include "TimeCallee.h"
src/noarch/Loveletter.cpp 26)
src/noarch/Loveletter.cpp 27) namespace Blinker {
src/noarch/Loveletter.cpp 28)
src/noarch/Loveletter.cpp 29) /**
src/noarch/Loveletter.cpp 30) * @brief constructor
src/noarch/Loveletter.cpp 31) * @param[in] name module name
src/noarch/Loveletter.cpp 32) * @param[in] mgrs managers
src/noarch/Loveletter.cpp 33) * @param[in] dirBase base directory
src/noarch/Loveletter.cpp 34) */
src/noarch/Loveletter.cpp 35) Loveletter::Loveletter(const std::string &name, Mgrs &mgrs,
src/noarch/Loveletter.cpp 36) const Directory &dirBase):
src/noarch/Loveletter.cpp 37) Module(name, mgrs, dirBase),
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 38) m_fileSound(dirBase.getFile("sound")),
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 39) m_fileOutStream(dirBase.getFile("outstream"), mgrs.m_streamMgr),
src/noarch/Loveletter.cpp 40) m_fileHaltStream(dirBase.getFile("haltstream"), mgrs.m_streamMgr),
src/noarch/Loveletter.cpp 41) m_movieTracker(*this, dirBase.getSubdir("movies")),
src/noarch/Loveletter.cpp 42) m_curValid(false),
src/noarch/Loveletter.cpp 43) m_pCurMovie(NULL),
src/noarch/Loveletter.cpp 44) m_curFrame(0),
src/noarch/Loveletter.cpp 45) m_curChange(false),
src/noarch/Loveletter.cpp 46) m_halted(false),
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 47) m_pOpConn(NULL),
src/noarch/Loveletter.cpp 48) m_sendPlay(false)
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 49) {
src/noarch/Loveletter.cpp 50) // load movies
src/noarch/Loveletter.cpp 51) m_fileHaltStream.setStreamRecv(this);
src/noarch/Loveletter.cpp 52) m_movieTracker.init();
src/noarch/Loveletter.cpp 53) checkCurChanged();
src/noarch/Loveletter.cpp 54)
src/noarch/Loveletter.cpp 55) // open operator connection interface
src/noarch/Loveletter.cpp 56) m_mgrs.m_opMgr.open(m_name, this);
src/noarch/Loveletter.cpp 57) }
src/noarch/Loveletter.cpp 58)
src/noarch/Loveletter.cpp 59) /// virtual destructor
src/noarch/Loveletter.cpp 60) Loveletter::~Loveletter()
src/noarch/Loveletter.cpp 61) {
src/noarch/Loveletter.cpp 62) // close operator connection interface
src/noarch/Loveletter.cpp 63) m_mgrs.m_opMgr.close(m_name);
src/noarch/Loveletter.cpp 64) closeOpConn();
src/noarch/Loveletter.cpp 65)
src/noarch/Loveletter.cpp 66) // cancel time callback request
src/noarch/Loveletter.cpp 67) m_mgrs.m_callMgr.cancelTimeCall(this);
src/noarch/Loveletter.cpp 68)
src/noarch/Loveletter.cpp 69) // free all movies
src/noarch/Loveletter.cpp 70) m_movieTracker.clear();
src/noarch/Loveletter.cpp 71) m_fileHaltStream.setStreamRecv(NULL);
src/noarch/Loveletter.cpp 72) }
src/noarch/Loveletter.cpp 73)
src/noarch/Loveletter.cpp 74) /// check for update of configuration
src/noarch/Loveletter.cpp 75) void Loveletter::updateConfig()
src/noarch/Loveletter.cpp 76) {
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 77) // sound name file was modified -> re-read sound name
src/noarch/Loveletter.cpp 78) if (m_fileSound.checkModified())
src/noarch/Loveletter.cpp 79) m_fileSound.update();
src/noarch/Loveletter.cpp 80)
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 81) // output stream name file was modified -> re-get output stream
src/noarch/Loveletter.cpp 82) if (m_fileOutStream.checkModified()) {
src/noarch/Loveletter.cpp 83) m_fileOutStream.update();
src/noarch/Loveletter.cpp 84) sendFrame();
src/noarch/Loveletter.cpp 85) }
src/noarch/Loveletter.cpp 86)
src/noarch/Loveletter.cpp 87) // halt stream name file was modified -> re-get halt stream
src/noarch/Loveletter.cpp 88) if (m_fileHaltStream.checkModified())
src/noarch/Loveletter.cpp 89) m_fileHaltStream.update();
src/noarch/Loveletter.cpp 90)
src/noarch/Loveletter.cpp 91) // movie update
src/noarch/Loveletter.cpp 92) m_movieTracker.updateConfig();
src/noarch/Loveletter.cpp 93) checkCurChanged();
src/noarch/Loveletter.cpp 94) }
src/noarch/Loveletter.cpp 95)
src/noarch/Loveletter.cpp 96) /**
src/noarch/Loveletter.cpp 97) * @brief set current frame
src/noarch/Loveletter.cpp 98) * @param[in] stream stream name
src/noarch/Loveletter.cpp 99) * @param[in] pFrame current frame (NULL for none)
src/noarch/Loveletter.cpp 100) */
src/noarch/Loveletter.cpp 101) void Loveletter::setFrame(const std::string &stream, stBlinkenFrame *pFrame)
src/noarch/Loveletter.cpp 102) {
src/noarch/Loveletter.cpp 103) // this is coming from the halt stream, which will halt playing
src/noarch/Loveletter.cpp 104) // whenever a frame is available on this halt stream
src/noarch/Loveletter.cpp 105)
src/noarch/Loveletter.cpp 106) // halt stream came to life -> halt playing
src/noarch/Loveletter.cpp 107) if (pFrame && !m_halted) {
src/noarch/Loveletter.cpp 108) m_halted = true;
src/noarch/Loveletter.cpp 109) if (m_curValid) {
src/noarch/Loveletter.cpp 110) // store remaining frame time
src/noarch/Loveletter.cpp 111) m_remainTime = m_nextTime - Time::now();
src/noarch/Loveletter.cpp 112) if (m_remainTime < Time::zero)
src/noarch/Loveletter.cpp 113) m_remainTime = Time::zero;
src/noarch/Loveletter.cpp 114) }
src/noarch/Loveletter.cpp 115) // cancel time call
src/noarch/Loveletter.cpp 116) m_mgrs.m_callMgr.cancelTimeCall(this);
src/noarch/Loveletter.cpp 117) }
src/noarch/Loveletter.cpp 118)
src/noarch/Loveletter.cpp 119) // halt stream ended -> continue playing
src/noarch/Loveletter.cpp 120) else if (!pFrame && m_halted) {
src/noarch/Loveletter.cpp 121) m_halted = false;
src/noarch/Loveletter.cpp 122) if (m_curValid) {
src/noarch/Loveletter.cpp 123) // determine time for next frame
src/noarch/Loveletter.cpp 124) m_nextTime = Time::now() + m_remainTime;
src/noarch/Loveletter.cpp 125) // schedule time call
src/noarch/Loveletter.cpp 126) m_mgrs.m_callMgr.requestTimeCall(this, m_nextTime);
src/noarch/Loveletter.cpp 127) }
src/noarch/Loveletter.cpp 128) }
src/noarch/Loveletter.cpp 129)
src/noarch/Loveletter.cpp 130) (void)stream; // unused
src/noarch/Loveletter.cpp 131) }
src/noarch/Loveletter.cpp 132)
src/noarch/Loveletter.cpp 133) /// callback when requested time reached
src/noarch/Loveletter.cpp 134) void Loveletter::timeCall()
src/noarch/Loveletter.cpp 135) {
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 136) // send sound play request on operator connection
src/noarch/Loveletter.cpp 137) if (m_sendPlay) {
src/noarch/Loveletter.cpp 138) m_sendPlay = false;
src/noarch/Loveletter.cpp 139) if (m_pOpConn && m_fileSound.m_valid)
src/noarch/Loveletter.cpp 140) m_pOpConn->sendPlay(m_fileSound.m_obj.m_str);
src/noarch/Loveletter.cpp 141) }
src/noarch/Loveletter.cpp 142)
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 143) // leave if halted
src/noarch/Loveletter.cpp 144) if (m_halted)
src/noarch/Loveletter.cpp 145) return;
src/noarch/Loveletter.cpp 146)
src/noarch/Loveletter.cpp 147) // leave if time is not yet ready to next frame
src/noarch/Loveletter.cpp 148) if (Time::now() < m_nextTime) {
src/noarch/Loveletter.cpp 149) // request call at time for next frame
src/noarch/Loveletter.cpp 150) m_mgrs.m_callMgr.requestTimeCall(this, m_nextTime);
src/noarch/Loveletter.cpp 151) return;
src/noarch/Loveletter.cpp 152) }
src/noarch/Loveletter.cpp 153)
src/noarch/Loveletter.cpp 154) // go to next frame
src/noarch/Loveletter.cpp 155) ++m_curFrame;
src/noarch/Loveletter.cpp 156)
src/noarch/Loveletter.cpp 157) // process new current frame
src/noarch/Loveletter.cpp 158) procFrame();
src/noarch/Loveletter.cpp 159) }
src/noarch/Loveletter.cpp 160)
src/noarch/Loveletter.cpp 161) /**
src/noarch/Loveletter.cpp 162) * @brief check if accepting new operator connction is possible
src/noarch/Loveletter.cpp 163) * @param[in] name operator interface name
src/noarch/Loveletter.cpp 164) * @return if accepting new connection is possible
src/noarch/Loveletter.cpp 165) */
src/noarch/Loveletter.cpp 166) bool Loveletter::acceptNewOpConn(const std::string &name)
src/noarch/Loveletter.cpp 167) {
src/noarch/Loveletter.cpp 168) // accept new connection if none active
src/noarch/Loveletter.cpp 169) return !m_pOpConn;
src/noarch/Loveletter.cpp 170) (void)name; // unused
src/noarch/Loveletter.cpp 171) }
src/noarch/Loveletter.cpp 172)
src/noarch/Loveletter.cpp 173) /**
src/noarch/Loveletter.cpp 174) * @brief new operator connection
src/noarch/Loveletter.cpp 175) * @param[in] name operator interface name
src/noarch/Loveletter.cpp 176) * @param[in] pConn operator connection object
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 177) *
src/noarch/Loveletter.cpp 178) * The new connection may not yet be used for sending inside this callback.
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 179) */
src/noarch/Loveletter.cpp 180) void Loveletter::newOpConn(const std::string &name, OpConn *pConn)
src/noarch/Loveletter.cpp 181) {
src/noarch/Loveletter.cpp 182) closeOpConn(); // close old connection (to be on the safe side)
src/noarch/Loveletter.cpp 183) m_pOpConn = pConn; // remember new connection
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 184) m_sendPlay = true; // schedule sending play request
src/noarch/Loveletter.cpp 185) m_mgrs.m_callMgr.requestTimeCall(this, Time::now());
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 186) (void)name; // unused
src/noarch/Loveletter.cpp 187) }
src/noarch/Loveletter.cpp 188)
src/noarch/Loveletter.cpp 189) /**
src/noarch/Loveletter.cpp 190) * @brief key command received on operator connection
src/noarch/Loveletter.cpp 191) * @param[in] pConn operator connection object
src/noarch/Loveletter.cpp 192) * @param[in] key key that was pressed
src/noarch/Loveletter.cpp 193) */
src/noarch/Loveletter.cpp 194) void Loveletter::opConnRecvKey(OpConn *pConn, char key)
src/noarch/Loveletter.cpp 195) {
src/noarch/Loveletter.cpp 196) switch (key) {
src/noarch/Loveletter.cpp 197) // begin new movie number
src/noarch/Loveletter.cpp 198) case '*':
src/noarch/Loveletter.cpp 199) m_movieNumber.clear();
src/noarch/Loveletter.cpp 200) break;
|
begin with new number after...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 201) // add digit to movie number
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 202) case '0':
src/noarch/Loveletter.cpp 203) case '1':
src/noarch/Loveletter.cpp 204) case '2':
src/noarch/Loveletter.cpp 205) case '3':
src/noarch/Loveletter.cpp 206) case '4':
src/noarch/Loveletter.cpp 207) case '5':
src/noarch/Loveletter.cpp 208) case '6':
src/noarch/Loveletter.cpp 209) case '7':
src/noarch/Loveletter.cpp 210) case '8':
src/noarch/Loveletter.cpp 211) case '9':
src/noarch/Loveletter.cpp 212) m_movieNumber += key;
src/noarch/Loveletter.cpp 213) break;
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 214) // exit / play movie
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 215) case '#':
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 216) if (m_movieNumber.empty())
src/noarch/Loveletter.cpp 217) closeOpConn();
src/noarch/Loveletter.cpp 218) else
src/noarch/Loveletter.cpp 219) startPlaying();
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 220) break;
src/noarch/Loveletter.cpp 221) }
src/noarch/Loveletter.cpp 222) (void)pConn; // unused
src/noarch/Loveletter.cpp 223) }
src/noarch/Loveletter.cpp 224)
src/noarch/Loveletter.cpp 225) /**
src/noarch/Loveletter.cpp 226) * @brief play command received on operator connection
src/noarch/Loveletter.cpp 227) * @param[in] pConn operator connection object
src/noarch/Loveletter.cpp 228) * @param[in] sound name of sound to play
src/noarch/Loveletter.cpp 229) */
src/noarch/Loveletter.cpp 230) void Loveletter::opConnRecvPlay(OpConn *pConn, const std::string &sound)
src/noarch/Loveletter.cpp 231) {
src/noarch/Loveletter.cpp 232) // this events does not make sense in this direction, ignore it
src/noarch/Loveletter.cpp 233) (void)pConn; // unused
src/noarch/Loveletter.cpp 234) (void)sound; // unused
src/noarch/Loveletter.cpp 235) }
src/noarch/Loveletter.cpp 236)
src/noarch/Loveletter.cpp 237) /**
src/noarch/Loveletter.cpp 238) * @brief operator connection is closed
src/noarch/Loveletter.cpp 239) * @param[in] pConn operator connection object
|
clarified operator connecti...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 240) *
src/noarch/Loveletter.cpp 241) * The connection may not be used for sending any more in this callback.
|
implemented loveletter module
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 242) */
src/noarch/Loveletter.cpp 243) void Loveletter::opConnClose(OpConn *pConn)
src/noarch/Loveletter.cpp 244) {
src/noarch/Loveletter.cpp 245) m_pOpConn = NULL;
src/noarch/Loveletter.cpp 246) stopPlaying();
src/noarch/Loveletter.cpp 247) (void)pConn; // unused
src/noarch/Loveletter.cpp 248) }
src/noarch/Loveletter.cpp 249)
src/noarch/Loveletter.cpp 250) /// check if current movie changed and react
src/noarch/Loveletter.cpp 251) void Loveletter::checkCurChanged()
src/noarch/Loveletter.cpp 252) {
src/noarch/Loveletter.cpp 253) // current movie changed
src/noarch/Loveletter.cpp 254) if (m_curChange) {
src/noarch/Loveletter.cpp 255) m_curChange = false;
src/noarch/Loveletter.cpp 256)
src/noarch/Loveletter.cpp 257) // go to begin of new current movie and start playing now
src/noarch/Loveletter.cpp 258) m_curFrame = 0;
src/noarch/Loveletter.cpp 259) m_remainTime = Time::zero;
src/noarch/Loveletter.cpp 260) m_nextTime = Time::now();
src/noarch/Loveletter.cpp 261) procFrame();
src/noarch/Loveletter.cpp 262)
src/noarch/Loveletter.cpp 263) } // if (m_curChange)
src/noarch/Loveletter.cpp 264) }
src/noarch/Loveletter.cpp 265)
src/noarch/Loveletter.cpp 266) /// process current frame
src/noarch/Loveletter.cpp 267) void Loveletter::procFrame()
src/noarch/Loveletter.cpp 268) {
src/noarch/Loveletter.cpp 269) // a movie is selected and this is loaded
src/noarch/Loveletter.cpp 270) if (m_pCurMovie && m_pCurMovie->m_pMovie) {
src/noarch/Loveletter.cpp 271) int frameCnt = BlinkenMovieGetFrameCnt(m_pCurMovie->m_pMovie);
src/noarch/Loveletter.cpp 272) // movie not empty
src/noarch/Loveletter.cpp 273) if (frameCnt > 0) {
src/noarch/Loveletter.cpp 274) // movie finsihed -> restart
src/noarch/Loveletter.cpp 275) if (m_curFrame >= frameCnt)
src/noarch/Loveletter.cpp 276) m_curFrame = 0;
src/noarch/Loveletter.cpp 277) // valid
src/noarch/Loveletter.cpp 278) m_curValid = true;
src/noarch/Loveletter.cpp 279) }
src/noarch/Loveletter.cpp 280) // movie empty -> not valid
src/noarch/Loveletter.cpp 281) else
src/noarch/Loveletter.cpp 282) m_curValid = false;
src/noarch/Loveletter.cpp 283) }
src/noarch/Loveletter.cpp 284) // no movie selected or selected one not loaded -> not valid
src/noarch/Loveletter.cpp 285) else
src/noarch/Loveletter.cpp 286) m_curValid = false;
src/noarch/Loveletter.cpp 287)
src/noarch/Loveletter.cpp 288) // send new frame to stream
src/noarch/Loveletter.cpp 289) sendFrame();
src/noarch/Loveletter.cpp 290)
src/noarch/Loveletter.cpp 291) // if a frame is there
src/noarch/Loveletter.cpp 292) if (m_curValid) {
src/noarch/Loveletter.cpp 293) // get frame time and calculate absolute time for next frame
src/noarch/Loveletter.cpp 294) stBlinkenFrame *pFrame =
src/noarch/Loveletter.cpp 295) BlinkenMovieGetFrame(m_pCurMovie->m_pMovie, m_curFrame);
src/noarch/Loveletter.cpp 296) m_remainTime.fromMs(BlinkenFrameGetDuration(pFrame));
src/noarch/Loveletter.cpp 297) m_nextTime += m_remainTime;
src/noarch/Loveletter.cpp 298) // request call at time for next frame
src/noarch/Loveletter.cpp 299) if (!m_halted)
src/noarch/Loveletter.cpp 300) m_mgrs.m_callMgr.requestTimeCall(this, m_nextTime);
src/noarch/Loveletter.cpp 301) }
src/noarch/Loveletter.cpp 302) }
src/noarch/Loveletter.cpp 303)
src/noarch/Loveletter.cpp 304) /// send current frame to output stream
src/noarch/Loveletter.cpp 305) void Loveletter::sendFrame()
src/noarch/Loveletter.cpp 306) {
src/noarch/Loveletter.cpp 307) // frame available -> send it
src/noarch/Loveletter.cpp 308) if (m_curValid) {
src/noarch/Loveletter.cpp 309) stBlinkenFrame *pFrame =
src/noarch/Loveletter.cpp 310) BlinkenMovieGetFrame(m_pCurMovie->m_pMovie, m_curFrame);
src/noarch/Loveletter.cpp 311) m_fileOutStream.setFrame(pFrame);
src/noarch/Loveletter.cpp 312) }
src/noarch/Loveletter.cpp 313) // no frame available -> send this information
src/noarch/Loveletter.cpp 314) else
src/noarch/Loveletter.cpp 315) m_fileOutStream.setFrame(NULL);
src/noarch/Loveletter.cpp 316) }
src/noarch/Loveletter.cpp 317)
src/noarch/Loveletter.cpp 318) /// close current operator connection
src/noarch/Loveletter.cpp 319) void Loveletter::closeOpConn()
src/noarch/Loveletter.cpp 320) {
src/noarch/Loveletter.cpp 321) if (m_pOpConn) {
src/noarch/Loveletter.cpp 322) m_pOpConn->close();
src/noarch/Loveletter.cpp 323) m_pOpConn = NULL;
src/noarch/Loveletter.cpp 324) }
src/noarch/Loveletter.cpp 325)
src/noarch/Loveletter.cpp 326) stopPlaying();
src/noarch/Loveletter.cpp 327) };
src/noarch/Loveletter.cpp 328)
src/noarch/Loveletter.cpp 329) /// start playing movie (indictaed by m_movieNumber)
src/noarch/Loveletter.cpp 330) void Loveletter::startPlaying()
src/noarch/Loveletter.cpp 331) {
src/noarch/Loveletter.cpp 332) // find movie and make it current
src/noarch/Loveletter.cpp 333) MovieMap::const_iterator itMovie = m_movieMap.find(m_movieNumber);
src/noarch/Loveletter.cpp 334) if (itMovie == m_movieMap.end())
src/noarch/Loveletter.cpp 335) m_pCurMovie = NULL; // not found -> no movie
src/noarch/Loveletter.cpp 336) else
src/noarch/Loveletter.cpp 337) m_pCurMovie = itMovie->second;
src/noarch/Loveletter.cpp 338)
src/noarch/Loveletter.cpp 339) // start playing movie
src/noarch/Loveletter.cpp 340) m_curChange = true;
src/noarch/Loveletter.cpp 341) checkCurChanged();
|
begin with new number after...
Stefan Schuermans authored 12 years ago
|
src/noarch/Loveletter.cpp 342)
src/noarch/Loveletter.cpp 343) // begin new movie number
src/noarch/Loveletter.cpp 344) m_movieNumber.clear();
|