openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
epgcache.cpp File Reference
#include <lib/dvb/epgcache.h>
#include <lib/service/event.h>
#include <fcntl.h>
#include <fstream>
#include <regex>
#include <sys/vfs.h>
#include <lib/base/encoding.h>
#include <lib/base/estring.h>
#include <lib/dvb/db.h>
#include <lib/dvb/dvb.h>
#include <lib/dvb/epgchanneldata.h>
#include <lib/dvb/epgtransponderdatareader.h>
#include <lib/dvb/lowlevel/eit.h>
#include <lib/base/nconfig.h>
#include <dvbsi++/content_identifier_descriptor.h>
#include <dvbsi++/descriptor_tag.h>
#include <unordered_set>

Classes

struct  DescriptorPair
 
struct  eventData
 
struct  epgdb_title_s
 
struct  epgdb_channel_s
 
struct  epgdb_alasies_s
 

Macros

#define CLEAN_INTERVAL   (60 * 1000)
 
#define IS_UTF8(x)   (x & 0x01)
 

Typedefs

typedef std::tr1::unordered_map< uint32_t, DescriptorPairDescriptorMap
 
typedef struct epgdb_title_s epgdb_title_t
 
typedef struct epgdb_channel_s epgdb_channel_t
 
typedef struct epgdb_alasies_s epgdb_aliases_t
 

Functions

const eServiceReferencehandleGroup (const eServiceReference &ref)
 
static uint32_t calculate_crc_hash (const uint8_t *data, int size)
 
void fillTuple (ePyObject tuple, const char *argstring, int argcount, ePyObject service_reference, eServiceEvent *ptr, ePyObject service_name, ePyObject nowTime, eventData *evData)
 
int handleEvent (eServiceEvent *ptr, ePyObject dest_list, const char *argstring, int argcount, ePyObject service, ePyObject nowTime, ePyObject service_name, ePyObject convertFunc, ePyObject convertFuncArgs)
 
static void fill_eit_start (eit_event_struct *evt, time_t t)
 
static void fill_eit_duration (eit_event_struct *evt, int time)
 
static uint8_t HI (int x)
 
static uint8_t LO (int x)
 
static const char * getStringFromPython (ePyObject obj)
 

Variables

const uint32_t crc32_table [256]
 
static pthread_mutex_t cache_lock
 
static const char * EPGDAT_IN_FLASH = "/epg.dat"
 
static const unsigned int EPG_MAGIC = 0x98765432
 

Macro Definition Documentation

◆ CLEAN_INTERVAL

#define CLEAN_INTERVAL   (60 * 1000)

◆ IS_UTF8

#define IS_UTF8 (   x)    (x & 0x01)

Typedef Documentation

◆ DescriptorMap

typedef std::tr1::unordered_map<uint32_t, DescriptorPair> DescriptorMap

◆ epgdb_aliases_t

◆ epgdb_channel_t

◆ epgdb_title_t

typedef struct epgdb_title_s epgdb_title_t

Function Documentation

◆ calculate_crc_hash()

static uint32_t calculate_crc_hash ( const uint8_t *  data,
int  size 
)
static

◆ fill_eit_duration()

static void fill_eit_duration ( eit_event_struct evt,
int  time 
)
static

◆ fill_eit_start()

static void fill_eit_start ( eit_event_struct evt,
time_t  t 
)
static

◆ fillTuple()

void fillTuple ( ePyObject  tuple,
const char *  argstring,
int  argcount,
ePyObject  service_reference,
eServiceEvent ptr,
ePyObject  service_name,
ePyObject  nowTime,
eventData evData 
)

◆ getStringFromPython()

static const char* getStringFromPython ( ePyObject  obj)
static

◆ handleEvent()

int handleEvent ( eServiceEvent ptr,
ePyObject  dest_list,
const char *  argstring,
int  argcount,
ePyObject  service,
ePyObject  nowTime,
ePyObject  service_name,
ePyObject  convertFunc,
ePyObject  convertFuncArgs 
)

◆ handleGroup()

const eServiceReference& handleGroup ( const eServiceReference ref)

◆ HI()

static uint8_t HI ( int  x)
inlinestatic

◆ LO()

static uint8_t LO ( int  x)
inlinestatic

Variable Documentation

◆ cache_lock

pthread_mutex_t cache_lock
static
Initial value:
=
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP

◆ crc32_table

const uint32_t crc32_table[256]
extern

◆ EPG_MAGIC

const unsigned int EPG_MAGIC = 0x98765432
static

◆ EPGDAT_IN_FLASH

const char* EPGDAT_IN_FLASH = "/epg.dat"
static