diff options
Diffstat (limited to 'lib/epgservice.c')
-rw-r--r-- | lib/epgservice.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/lib/epgservice.c b/lib/epgservice.c new file mode 100644 index 0000000..69e5a8e --- /dev/null +++ b/lib/epgservice.c @@ -0,0 +1,121 @@ +/* + * epgservice.c + * + * See the README file for copyright information and how to reach the author. + * + */ + +#include "epgservice.h" + +//*************************************************************************** +// Timer State / Action +//*************************************************************************** + +const char* toName(TimerState s) +{ + switch (s) + { + case tsPending: return "pending"; + case tsRunning: return "running"; + case tsFinished: return "finished"; + case tsDeleted: return "deleted"; + case tsError: return "failed"; + case tsIgnore: return "ignore"; + case tsUnknown: return "unknown"; + } + + return "unknown"; +} + +const char* toName(TimerAction a, int nice) +{ + switch (a) + { + case taCreate: return "create"; + case taModify: return "modify"; + case taAdjust: return "adjust"; + case taDelete: return "delete"; + case taAssumed: return nice ? "-" : "assumed"; + case taFailed: return "failed"; + case taReject: return "reject"; + } + + return nice ? "-" : "unknown"; +} + +//*************************************************************************** +// cEpgdState +//*************************************************************************** + +const char* cEpgdState::states[] = +{ + "init", + "standby", + "stopped", + + "busy (events)", + "busy (match)", + "busy (scraping)", + "busy (images)", + + 0 +}; + +const char* cEpgdState::toName(cEpgdState::State s) +{ + if (!isValid(s)) + return "unknown"; + + return states[s]; +} + +cEpgdState::State cEpgdState::toState(const char* name) +{ + for (int i = 0; i < esCount; i++) + if (strcmp(states[i], name) == 0) + return (State)i; + + return esUnknown; +} + +//*************************************************************************** +// Field Filter +//*************************************************************************** + +FieldFilterDef fieldFilters[] = +{ + { ffAll, "all" }, + { ffEpgd, "epgd" }, + { ffEpgHttpd, "httpd" }, + { ffEpg2Vdr, "epg2vdr" }, + { ffScraper2Vdr, "scraper" }, + + { 0, 0 } +}; + +const char* toName(FieldFilter f) +{ + for (int i = 0; fieldFilters[i].name; i++) + if (fieldFilters[i].filter == f) + return fieldFilters[i].name; + + return "unknown"; +} + +int toFieldFilter(const char* name) +{ + for (int i = 0; fieldFilters[i].name; i++) + if (strcasecmp(fieldFilters[i].name, name) == 0) + return fieldFilters[i].filter; + + return ffAll; +} + +//*************************************************************************** +// User Rights Check +//*************************************************************************** + +int hasUserMask(unsigned int rights, UserMask mask) +{ + return rights & mask; +} |