fix comment for epgcache lookupEvent method (useable from python)
[enigma2.git] / lib / dvb / epgcache.cpp
index 10ca29fb84b0e9de611b9300c302a1acf27e79f4..189fcfc46ae8cc2b81ce5b182f5838a4c3fefa10 100644 (file)
@@ -701,6 +701,7 @@ void eEPGCache::thread()
 
 void eEPGCache::load()
 {
+       singleLock s(cache_lock);
        FILE *f = fopen("/hdd/epg.dat", "r");
        if (f)
        {
@@ -1445,25 +1446,28 @@ PyObject *handleEvent(ePtr<eServiceEvent> &ptr, PyObject *dest_list, char* argst
        return 0;
 }
 
-// here we get a list with tuples
-// first tuple entry is the servicereference
-// the second is the type of query (0 = time, 1 = event_id)
-// the third
-//             when type is eventid it is the event_id
-//             when type is time then it is the start_time ( 0 for now_time )
-// the fourth is the end_time .. ( optional )
-
-/* argv is a python string
-   I = Event Id
-   B = Event Begin Time
-   D = Event Duration
-   T = Event Title
-   S = Event Short Description
-   E = Event Extended Description
-   C = Current Time
-   R = Service Reference
-   N = Service Name
-*/
+// here we get a python list
+// the first entry in the list is a python string to specify the format of the returned tuples (in a list)
+//   I = Event Id
+//   B = Event Begin Time
+//   D = Event Duration
+//   T = Event Title
+//   S = Event Short Description
+//   E = Event Extended Description
+//   C = Current Time
+//   R = Service Reference
+//   N = Service Name
+// then for each service follows a tuple
+//   first tuple entry is the servicereference (as string... use the ref.toString() function)
+//   the second is the type of query
+//     2 = event_id
+//    -1 = event before given start_time
+//     0 = event intersects given start_time
+//    +1 = event after given start_time
+//   the third
+//      when type is eventid it is the event_id
+//      when type is time then it is the start_time ( 0 for now_time )
+//   the fourth is the end_time .. ( optional .. for query all events in time range)
 
 PyObject *eEPGCache::lookupEvent(PyObject *list, PyObject *convertFunc)
 {
@@ -1541,7 +1545,7 @@ PyObject *eEPGCache::lookupEvent(PyObject *list, PyObject *convertFunc)
                                                if (!PyString_Check(entry))
                                                {
                                                        eDebug("tuple entry 0 is no a string");
-                                                       continue;
+                                                       goto skip_entry;
                                                }
                                                service = entry;
                                                break;
@@ -1551,7 +1555,7 @@ PyObject *eEPGCache::lookupEvent(PyObject *list, PyObject *convertFunc)
                                                if (type < -1 || type > 2)
                                                {
                                                        eDebug("unknown type %d", type);
-                                                       continue;
+                                                       goto skip_entry;
                                                }
                                                break;
                                        case 2:
@@ -1623,6 +1627,8 @@ PyObject *eEPGCache::lookupEvent(PyObject *list, PyObject *convertFunc)
                        if (service_name)
                                Py_DECREF(service_name);
                }
+skip_entry:
+               ;
        }
        if (convertFuncArgs)
                Py_DECREF(convertFuncArgs);