29 #include "trm/TunerState.h"
30 #include "trm/Activity.h"
47 const Enum<TunerState> TunerState::kFree (MAKE_PAIR(Free));
48 const Enum<TunerState> TunerState::kLive (MAKE_PAIR(Live));
49 const Enum<TunerState> TunerState::kRecord(MAKE_PAIR(Record));
50 const Enum<TunerState> TunerState::kHybrid(MAKE_PAIR(Hybrid));
51 const Enum<TunerState> TunerState::kEAS (MAKE_PAIR(EAS));
53 const std::vector<const Enum<TunerState> * > & TunerState::getEnums(
void)
55 static std::vector<const Enum<TunerState> * > enums_;
56 if (enums_.size() == 0) {
57 enums_.push_back(&TunerState::kFree);
58 enums_.push_back(&TunerState::kLive);
59 enums_.push_back(&TunerState::kRecord);
60 enums_.push_back(&TunerState::kHybrid);
61 enums_.push_back(&TunerState::kEAS);
63 Assert(enums_.size() == MAX_ENUM_NUMBER);
70 TunerState::TunerState(
const Enum<TunerState> &state)
75 TunerState::TunerState(
const char *name)
76 : state((Enum<TunerState>::at(name)))
80 TunerState::~TunerState(
void)
84 const Enum<TunerState> & TunerState::getState(
void)
const
89 TunerState TunerState::operator + (
const Enum<Activity> & activity)
91 const Enum<TunerState> origState = state;
93 if (state == TunerState::kFree) {
94 if (activity == Activity::kLive) {
95 state = TunerState::kLive;
97 else if(activity == Activity::kRecord){
98 state = TunerState::kRecord;
100 else if(activity == Activity::kEAS){
101 state = TunerState::kEAS;
105 if (state == TunerState::kLive) {
106 if(activity == Activity::kRecord){
107 state = TunerState::kHybrid;
111 if (state == TunerState::kRecord) {
112 if(activity == Activity::kLive){
113 state = TunerState::kHybrid;
117 if (state == origState) {
124 TunerState TunerState::operator - (
const Enum<Activity> &activity)
126 const Enum<TunerState> origState = state;
127 std::cout <<
"State(" << (
const char *) state <<
") - Activity ("
128 << (
const char *)activity <<
")" << std::endl;
130 if (state == TunerState::kHybrid) {
131 if (activity == Activity::kLive) {
132 state = TunerState::kRecord;
134 else if(activity == Activity::kRecord){
135 state = TunerState::kLive;
139 if (state == TunerState::kLive) {
140 if(activity == Activity::kLive){
141 state = TunerState::kFree;
145 if (state == TunerState::kRecord) {
146 if(activity == Activity::kRecord){
147 state = TunerState::kFree;
151 if (state == origState) {
159 bool TunerState::operator == (
const TunerState &that)
const
161 return ((this->state)) == ((that.state));
164 bool TunerState::operator != (
const TunerState &that)
const
166 return (!(*
this == that));
169 void TunerState::print(
void)
const