ThymioIRButtons.cpp
Go to the documentation of this file.
00001 #include "ThymioIntermediateRepresentation.h"
00002 
00003 namespace Aseba
00004 {
00005 
00006         ThymioIRButton::ThymioIRButton(int size, ThymioIRButtonName n, int states) : 
00007                 buttons(size),
00008                 memory(-1),
00009                 numStates(states),
00010                 name(n)
00011         {                
00012         }
00013 
00014         ThymioIRButton::~ThymioIRButton() 
00015         { 
00016                 buttons.clear();
00017         }       
00018 
00019         void ThymioIRButton::setClicked(int i, int status) 
00020         { 
00021                 if( i<size() ) 
00022                         buttons[i] = status; 
00023         }
00024         
00025         int ThymioIRButton::isClicked(int i) const
00026         { 
00027                 if( i<size() ) 
00028                         return buttons[i]; 
00029 
00030                 return -1;
00031         }
00032         
00033         int ThymioIRButton::getNumStates() const
00034         {
00035                 return numStates;
00036         }
00037         
00038         int ThymioIRButton::size() const
00039         { 
00040                 return buttons.size(); 
00041         }
00042 
00043         void ThymioIRButton::setMemoryState(int s)
00044         {
00045                 memory = s;
00046         }
00047 
00048         int ThymioIRButton::getMemoryState() const
00049         {
00050                 return memory;
00051         }
00052 
00053         void ThymioIRButton::setBasename(wstring n)
00054         {
00055                 basename = n;
00056         }
00057 
00058         ThymioIRButtonName ThymioIRButton::getName() const
00059         { 
00060                 return name; 
00061         }
00062         
00063         wstring ThymioIRButton::getBasename() const
00064         {
00065                 return basename;
00066         }
00067         
00068         bool ThymioIRButton::isEventButton() const
00069         { 
00070                 return (name < 5 ? true : false); 
00071         }
00072         
00073         bool ThymioIRButton::isSet() const
00074         {
00075                 for(int i=0; i<size(); ++i)
00076                 {
00077                         if( buttons[i] > 0 )
00078                                 return true;
00079                 }               
00080         
00081                 return false;
00082         }
00083 
00084         void ThymioIRButton::accept(ThymioIRVisitor *visitor) 
00085         { 
00086                 visitor->visit(this); 
00087         }
00088 
00089         ThymioIRButtonSet::ThymioIRButtonSet(ThymioIRButton *event, ThymioIRButton *action) : 
00090                 eventButton(event), 
00091                 actionButton(action) 
00092         {
00093         }
00094                 
00095         void ThymioIRButtonSet::addEventButton(ThymioIRButton *event) 
00096         { 
00097                 eventButton = event; 
00098         }
00099         
00100         void ThymioIRButtonSet::addActionButton(ThymioIRButton *action) 
00101         {
00102                 actionButton = action; 
00103         }
00104                 
00105         ThymioIRButton *ThymioIRButtonSet::getEventButton() 
00106         { 
00107                 return eventButton; 
00108         }
00109         
00110         ThymioIRButton *ThymioIRButtonSet::getActionButton() 
00111         { 
00112                 return actionButton;
00113         }
00114 
00115         bool ThymioIRButtonSet::hasEventButton() const
00116         { 
00117                 return (eventButton == 0 ? false : true); 
00118         }
00119         
00120         bool ThymioIRButtonSet::hasActionButton() const
00121         { 
00122                 return (actionButton == 0 ? false : true); 
00123         }
00124         
00125         void ThymioIRButtonSet::accept(ThymioIRVisitor *visitor) 
00126         { 
00127                 visitor->visit(this); 
00128         }
00129 
00130                 
00131 }; // Aseba


aseba
Author(s): Stéphane Magnenat
autogenerated on Thu Jan 2 2014 11:17:17