362c1f4c3b5ce9e3fce11167a51fbe4cdb2174de
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp   1) /* Blinker
Stefan Schuermans update copyright header

Stefan Schuermans authored 5 years ago

src/common/Priority.cpp   2)    Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp   3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
src/noarch/Priority.cpp   4)    a blinkenarea.org project */
src/noarch/Priority.cpp   5) 
src/noarch/Priority.cpp   6) #include <list>
src/noarch/Priority.cpp   7) #include <string>
src/noarch/Priority.cpp   8) 
src/noarch/Priority.cpp   9) #include <BlinkenLib/BlinkenFrame.h>
src/noarch/Priority.cpp  10) 
src/noarch/Priority.cpp  11) #include "Directory.h"
src/noarch/Priority.cpp  12) #include "File.h"
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  13) #include "ListTracker.h"
src/noarch/Priority.cpp  14) #include "ListTracker_impl.h"
Stefan Schuermans put all managers in one str...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  15) #include "Mgrs.h"
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  16) #include "Module.h"
src/noarch/Priority.cpp  17) #include "Priority.h"
src/noarch/Priority.cpp  18) #include "PriorityInput.h"
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  19) #include "OutStreamFile.h"
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  20) #include "StreamRecv.h"
src/noarch/Priority.cpp  21) 
src/noarch/Priority.cpp  22) namespace Blinker {
src/noarch/Priority.cpp  23) 
src/noarch/Priority.cpp  24) /**
src/noarch/Priority.cpp  25)  * @brief constructor
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  26)  * @param[in] name module name
Stefan Schuermans put all managers in one str...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  27)  * @param[in] mgrs managers
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  28)  * @param[in] dirBase base directory
src/noarch/Priority.cpp  29)  */
Stefan Schuermans make modules know their name

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  30) Priority::Priority(const std::string &name, Mgrs &mgrs,
src/noarch/Priority.cpp  31)                    const Directory &dirBase):
src/noarch/Priority.cpp  32)   Module(name, mgrs, dirBase),
Stefan Schuermans put all managers in one str...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  33)   m_fileOutStream(dirBase.getFile("outstream"), mgrs.m_streamMgr),
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  34)   m_inListTracker(*this, dirBase.getSubdir("inputs")),
Stefan Schuermans fix problem with initializa...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  35)   m_itCurIn(m_inListTracker.m_list.rend()),
src/noarch/Priority.cpp  36)   m_updateNeeded(false)
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  37) {
Stefan Schuermans add forgotten call to init...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  38)   m_inListTracker.init();
Stefan Schuermans fix problem with initializa...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  39)   updateSelection();
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  40) }
src/noarch/Priority.cpp  41) 
src/noarch/Priority.cpp  42) /// virtual destructor
src/noarch/Priority.cpp  43) Priority::~Priority()
src/noarch/Priority.cpp  44) {
Stefan Schuermans add forgotten call to init...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  45)   m_inListTracker.clear();
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  46) }
src/noarch/Priority.cpp  47) 
src/noarch/Priority.cpp  48) /// check for update of configuration
src/noarch/Priority.cpp  49) void Priority::updateConfig()
src/noarch/Priority.cpp  50) {
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  51)   // input list update
src/noarch/Priority.cpp  52)   m_inListTracker.updateConfig();
Stefan Schuermans fix problem with initializa...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  53)   updateSelection();
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  54) 
src/noarch/Priority.cpp  55)   // output stream name file was modified -> re-get output stream
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  56)   if (m_fileOutStream.checkModified())
src/noarch/Priority.cpp  57)     m_fileOutStream.update();
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  58) }
src/noarch/Priority.cpp  59) 
src/noarch/Priority.cpp  60) /**
src/noarch/Priority.cpp  61)  * @brief select specific input (called by inputs)
src/noarch/Priority.cpp  62)  * @param[in] input input to select
src/noarch/Priority.cpp  63)  */
src/noarch/Priority.cpp  64) void Priority::select(const Input *pInput)
src/noarch/Priority.cpp  65) {
src/noarch/Priority.cpp  66)   // search inputs for passed input
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  67)   m_itCurIn = m_inListTracker.m_list.rbegin();
src/noarch/Priority.cpp  68)   while (m_itCurIn != m_inListTracker.m_list.rend() &&
src/noarch/Priority.cpp  69)          m_itCurIn->m_pObj != pInput)
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  70)     ++m_itCurIn;
src/noarch/Priority.cpp  71) 
src/noarch/Priority.cpp  72)   // send current frame
src/noarch/Priority.cpp  73)   curFrame();
Stefan Schuermans fix problem with initializa...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  74) 
src/noarch/Priority.cpp  75)   // return if required stream was successfully selected
src/noarch/Priority.cpp  76)   if (m_itCurIn == m_inListTracker.m_list.rend() ||
src/noarch/Priority.cpp  77)       m_itCurIn->m_pObj != pInput)
src/noarch/Priority.cpp  78)     m_updateNeeded = true;
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  79) }
src/noarch/Priority.cpp  80) 
src/noarch/Priority.cpp  81) /// select lower priority input (called by inputs)
src/noarch/Priority.cpp  82) void Priority::selectLower()
src/noarch/Priority.cpp  83) {
src/noarch/Priority.cpp  84)   stBlinkenFrame *pFrame;
src/noarch/Priority.cpp  85) 
src/noarch/Priority.cpp  86)   // search inputs with lower priority until a frame is found
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  87)   while (m_itCurIn != m_inListTracker.m_list.rend()) {
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  88)     // check for frame
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  89)     if ((pFrame = m_itCurIn->m_pObj->getCurFrame())) {
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  90)       // frame found -> keep this input as current, send frame
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  91)       m_fileOutStream.setFrame(pFrame);
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  92)       return;
src/noarch/Priority.cpp  93)     }
src/noarch/Priority.cpp  94)     // try next input
src/noarch/Priority.cpp  95)     ++m_itCurIn;
src/noarch/Priority.cpp  96)   }
src/noarch/Priority.cpp  97) 
src/noarch/Priority.cpp  98)   // no input has got a frame -> send no frame
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp  99)   m_fileOutStream.setFrame(NULL);
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 100) }
src/noarch/Priority.cpp 101) 
Stefan Schuermans fix problem with initializa...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 102) /// update current selection
src/noarch/Priority.cpp 103) void Priority::updateSelection()
src/noarch/Priority.cpp 104) {
src/noarch/Priority.cpp 105)   if (m_updateNeeded) {
src/noarch/Priority.cpp 106)     m_updateNeeded = false;
src/noarch/Priority.cpp 107) 
src/noarch/Priority.cpp 108)     // search for highest priority input with a frame
src/noarch/Priority.cpp 109)     for (m_itCurIn = m_inListTracker.m_list.rbegin();
src/noarch/Priority.cpp 110)          m_itCurIn != m_inListTracker.m_list.rend(); ++m_itCurIn)
src/noarch/Priority.cpp 111)       if (m_itCurIn->m_pObj->getCurFrame())
src/noarch/Priority.cpp 112)         break;
src/noarch/Priority.cpp 113) 
src/noarch/Priority.cpp 114)     // send new frame to output stream
src/noarch/Priority.cpp 115)     curFrame();
src/noarch/Priority.cpp 116) 
src/noarch/Priority.cpp 117)   } // if m_updateNeeded
src/noarch/Priority.cpp 118) }
src/noarch/Priority.cpp 119) 
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 120) /// send current frame to output stream
src/noarch/Priority.cpp 121) void Priority::curFrame()
src/noarch/Priority.cpp 122) {
src/noarch/Priority.cpp 123)   stBlinkenFrame *pFrame;
src/noarch/Priority.cpp 124) 
src/noarch/Priority.cpp 125)   // current input available and frame it it available -> send frame
Stefan Schuermans created template class for...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 126)   if (m_itCurIn != m_inListTracker.m_list.rend() &&
src/noarch/Priority.cpp 127)       (pFrame = m_itCurIn->m_pObj->getCurFrame()))
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 128)     m_fileOutStream.setFrame(pFrame);
Stefan Schuermans implemented priority based...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 129)   // no frame available -> send this information
src/noarch/Priority.cpp 130)   else
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

src/noarch/Priority.cpp 131)     m_fileOutStream.setFrame(NULL);