362c1f4c3b5ce9e3fce11167a51fbe4cdb2174de
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h   1) /* Blinker
Stefan Schuermans update copyright header

Stefan Schuermans authored 5 years ago

src/common/Loveletter.h   2)    Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h   3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
src/noarch/Loveletter.h   4)    a blinkenarea.org project */
src/noarch/Loveletter.h   5) 
src/noarch/Loveletter.h   6) #ifndef BLINKER_LOVELETTER_H
src/noarch/Loveletter.h   7) #define BLINKER_LOVELETTER_H
src/noarch/Loveletter.h   8) 
src/noarch/Loveletter.h   9) #include <list>
src/noarch/Loveletter.h  10) #include <map>
src/noarch/Loveletter.h  11) #include <string>
src/noarch/Loveletter.h  12) 
src/noarch/Loveletter.h  13) #include <BlinkenLib/BlinkenMovie.h>
src/noarch/Loveletter.h  14) 
src/noarch/Loveletter.h  15) #include "Directory.h"
src/noarch/Loveletter.h  16) #include "File.h"
src/noarch/Loveletter.h  17) #include "InStreamFile.h"
src/noarch/Loveletter.h  18) #include "ListTracker.h"
src/noarch/Loveletter.h  19) #include "Mgrs.h"
src/noarch/Loveletter.h  20) #include "Module.h"
Stefan Schuermans clarified operator connecti...

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h  21) #include "NameFile.h"
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h  22) #include "OpConn.h"
src/noarch/Loveletter.h  23) #include "OpConnIf.h"
src/noarch/Loveletter.h  24) #include "OpReqIf.h"
src/noarch/Loveletter.h  25) #include "OutStreamFile.h"
src/noarch/Loveletter.h  26) #include "StreamRecv.h"
src/noarch/Loveletter.h  27) #include "Time.h"
src/noarch/Loveletter.h  28) #include "TimeCallee.h"
src/noarch/Loveletter.h  29) 
src/noarch/Loveletter.h  30) namespace Blinker {
src/noarch/Loveletter.h  31) 
src/noarch/Loveletter.h  32) /// on demand movie player
src/noarch/Loveletter.h  33) class Loveletter: public Module, public OpReqIf, public StreamRecv,
src/noarch/Loveletter.h  34)                   public TimeCallee
src/noarch/Loveletter.h  35) {
src/noarch/Loveletter.h  36) protected:
src/noarch/Loveletter.h  37)   /// movie
src/noarch/Loveletter.h  38)   class Movie;
src/noarch/Loveletter.h  39) 
src/noarch/Loveletter.h  40)   /// movie tracker
src/noarch/Loveletter.h  41)   typedef ListTracker<Loveletter, Movie, File> MovieTracker;
src/noarch/Loveletter.h  42) 
src/noarch/Loveletter.h  43)   /// movie iterator
src/noarch/Loveletter.h  44)   typedef MovieTracker::ListIt MovieIt;
src/noarch/Loveletter.h  45) 
src/noarch/Loveletter.h  46)   /// map from movie number to movie
src/noarch/Loveletter.h  47)   typedef std::map<std::string, Movie *> MovieMap;
src/noarch/Loveletter.h  48) 
src/noarch/Loveletter.h  49) public:
src/noarch/Loveletter.h  50)   /**
src/noarch/Loveletter.h  51)    * @brief constructor
src/noarch/Loveletter.h  52)    * @param[in] name module name
src/noarch/Loveletter.h  53)    * @param[in] mgrs managers
src/noarch/Loveletter.h  54)    * @param[in] dirBase base directory
src/noarch/Loveletter.h  55)    */
src/noarch/Loveletter.h  56)   Loveletter(const std::string &name, Mgrs &mgrs, const Directory &dirBase);
src/noarch/Loveletter.h  57) 
src/noarch/Loveletter.h  58)   /// virtual destructor
src/noarch/Loveletter.h  59)   virtual ~Loveletter();
src/noarch/Loveletter.h  60) 
src/noarch/Loveletter.h  61) private:
src/noarch/Loveletter.h  62)   /// copy constructor disabled
src/noarch/Loveletter.h  63)   Loveletter(const Loveletter &that);
src/noarch/Loveletter.h  64) 
src/noarch/Loveletter.h  65)   /// assignment operator disabled
src/noarch/Loveletter.h  66)   const Loveletter & operator=(const Loveletter &that);
src/noarch/Loveletter.h  67) 
src/noarch/Loveletter.h  68) public:
src/noarch/Loveletter.h  69)   /// check for update of configuration
src/noarch/Loveletter.h  70)   virtual void updateConfig();
src/noarch/Loveletter.h  71) 
src/noarch/Loveletter.h  72)   /**
src/noarch/Loveletter.h  73)    * @brief set current frame
src/noarch/Loveletter.h  74)    * @param[in] stream stream name
src/noarch/Loveletter.h  75)    * @param[in] pFrame current frame (NULL for none)
src/noarch/Loveletter.h  76)    */
src/noarch/Loveletter.h  77)   virtual void setFrame(const std::string &stream, stBlinkenFrame *pFrame);
src/noarch/Loveletter.h  78) 
src/noarch/Loveletter.h  79)   /// callback when requested time reached
src/noarch/Loveletter.h  80)   virtual void timeCall();
src/noarch/Loveletter.h  81) 
src/noarch/Loveletter.h  82)   /**
src/noarch/Loveletter.h  83)    * @brief check if accepting new operator connction is possible
src/noarch/Loveletter.h  84)    * @param[in] name operator interface name
src/noarch/Loveletter.h  85)    * @return if accepting new connection is possible
src/noarch/Loveletter.h  86)    */
src/noarch/Loveletter.h  87)   virtual bool acceptNewOpConn(const std::string &name);
src/noarch/Loveletter.h  88) 
src/noarch/Loveletter.h  89)   /**
src/noarch/Loveletter.h  90)    * @brief new operator connection
src/noarch/Loveletter.h  91)    * @param[in] name operator interface name
src/noarch/Loveletter.h  92)    * @param[in] pConn operator connection object
Stefan Schuermans clarified operator connecti...

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h  93)    *
src/noarch/Loveletter.h  94)    * The new connection may not yet be used for sending inside this callback.
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h  95)    */
src/noarch/Loveletter.h  96)   virtual void newOpConn(const std::string &name, OpConn *pConn);
src/noarch/Loveletter.h  97) 
src/noarch/Loveletter.h  98)   /**
src/noarch/Loveletter.h  99)    * @brief key command received on operator connection
src/noarch/Loveletter.h 100)    * @param[in] pConn operator connection object
src/noarch/Loveletter.h 101)    * @param[in] key key that was pressed
src/noarch/Loveletter.h 102)    */
src/noarch/Loveletter.h 103)   virtual void opConnRecvKey(OpConn *pConn, char key);
src/noarch/Loveletter.h 104) 
src/noarch/Loveletter.h 105)   /**
src/noarch/Loveletter.h 106)    * @brief play command received on operator connection
src/noarch/Loveletter.h 107)    * @param[in] pConn operator connection object
src/noarch/Loveletter.h 108)    * @param[in] sound name of sound to play
src/noarch/Loveletter.h 109)    */
src/noarch/Loveletter.h 110)   virtual void opConnRecvPlay(OpConn *pConn, const std::string &sound);
src/noarch/Loveletter.h 111) 
src/noarch/Loveletter.h 112)   /**
src/noarch/Loveletter.h 113)    * @brief operator connection is closed
src/noarch/Loveletter.h 114)    * @param[in] pConn operator connection object
Stefan Schuermans clarified operator connecti...

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h 115)    *
src/noarch/Loveletter.h 116)    * The connection may not be used for sending any more in this callback.
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h 117)    */
src/noarch/Loveletter.h 118)   virtual void opConnClose(OpConn *pConn);
src/noarch/Loveletter.h 119) 
src/noarch/Loveletter.h 120) protected:
src/noarch/Loveletter.h 121)   /// check if current movie changed and react
src/noarch/Loveletter.h 122)   void checkCurChanged();
src/noarch/Loveletter.h 123) 
src/noarch/Loveletter.h 124)   /// process current frame
src/noarch/Loveletter.h 125)   void procFrame();
src/noarch/Loveletter.h 126) 
src/noarch/Loveletter.h 127)   /// send current frame to output stream
src/noarch/Loveletter.h 128)   void sendFrame();
src/noarch/Loveletter.h 129) 
src/noarch/Loveletter.h 130)   /// close current operator connection
src/noarch/Loveletter.h 131)   void closeOpConn();
src/noarch/Loveletter.h 132) 
src/noarch/Loveletter.h 133)   /// start playing movie (indictaed by m_movieNumber)
src/noarch/Loveletter.h 134)   void startPlaying();
src/noarch/Loveletter.h 135) 
src/noarch/Loveletter.h 136)   /// stop playing movie
src/noarch/Loveletter.h 137)   void stopPlaying();
src/noarch/Loveletter.h 138) 
src/noarch/Loveletter.h 139) protected:
Stefan Schuermans clarified operator connecti...

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h 140)   NameFile      m_fileSound;      ///< file containing sound name
Stefan Schuermans implemented loveletter module

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h 141)   OutStreamFile m_fileOutStream;  ///< output stream name file
src/noarch/Loveletter.h 142)   InStreamFile  m_fileHaltStream; /**< halt stream name file
src/noarch/Loveletter.h 143)                                        (playing halts if stream active) */
src/noarch/Loveletter.h 144)   MovieTracker  m_movieTracker;   ///< current movies
src/noarch/Loveletter.h 145)   MovieMap      m_movieMap;       ///< map from movie number to movie
src/noarch/Loveletter.h 146)   bool          m_curValid;       ///< if there is a current frame
src/noarch/Loveletter.h 147)   Movie         *m_pCurMovie;     ///< current movie or NULL
src/noarch/Loveletter.h 148)   int           m_curFrame;       ///< current frame in movie
src/noarch/Loveletter.h 149)   bool          m_curChange;      ///< current movie changed
src/noarch/Loveletter.h 150)   bool          m_halted;         ///< if playing is halted
src/noarch/Loveletter.h 151)   Time          m_remainTime;     /**< remaining time of current frame
src/noarch/Loveletter.h 152)                                        (valid if m_curValid && m_halted) */
src/noarch/Loveletter.h 153)   Time          m_nextTime;       /**< when to show next frame
src/noarch/Loveletter.h 154)                                        (valid if m_curValid && !m_halted) */
src/noarch/Loveletter.h 155)   OpConn        *m_pOpConn;       ///< current operator connection or NULL
Stefan Schuermans clarified operator connecti...

Stefan Schuermans authored 12 years ago

src/noarch/Loveletter.h 156)   bool          m_sendPlay;       ///< if sending play request needed