Exemple #1
0
int main(int argc, char **argv)
{
  time_t starttime, endtime;
  SIsectionsSDT sdtset;

  starttime=time(NULL);
  sdtset.readSections();
  endtime=time(NULL);
  printf("Sections read: %d\n", sdtset.size());
  printf("Time needed: %ds\n", (int)difftime(endtime, starttime));
//  for_each(sdtset.begin(), sdtset.end(), printSmallSectionHeader());
//  for_each(sdtset.begin(), sdtset.end(), printSIsection());
  for_each(sdtset.begin(), sdtset.end(), printSIsectionSDT());
  return 0;
}
Exemple #2
0
int main(int /*argc*/, char** /*argv*/)
{
  time_t starttime, endtime;
  SIsectionsSDT sdtset;
#ifdef READ_PRESENT_INFOS
  SIsectionsEIT epgset;
#else
  SIsectionsEITschedule epgset;
#endif

  tzset(); // TZ auswerten

  starttime=time(NULL);
  epgset.readSections();
  sdtset.readSections();
  endtime=time(NULL);
  printf("EIT Sections read: %d\n", epgset.size());
  printf("SDT Sections read: %d\n", sdtset.size());
  printf("Time needed: %ds\n", (int)difftime(endtime, starttime));
//  for_each(epgset.begin(), epgset.end(), printSmallSectionHeader());
//  for_each(epgset.begin(), epgset.end(), printSIsection());
  SIevents events;
  for(SIsectionsEIT::iterator k=epgset.begin(); k!=epgset.end(); k++)
    events.insert((k->events()).begin(), (k->events()).end());

  SIservices services;
  for(SIsectionsSDT::iterator k=sdtset.begin(); k!=sdtset.end(); k++)
    services.insert((k->services()).begin(), (k->services()).end());

  // Damit wir die Zeiten der nvods richtig einsortiert bekommen
  // Ist bei epgLarge eigentlich nicht noetig, da die NVODs anscheinend nur im present/actual (epgSmall) vorkommen
  events.mergeAndRemoveTimeShiftedEvents(services);

  for_each(events.begin(), events.end(), printSIeventWithService(services));
//  for_each(events.begin(), events.end(), printSIevent());
//  for_each(epgset.begin(), epgset.end(), printSIsectionEIT());

//  int i=0;
//  for(SIsectionsEIT::iterator s=epgset.begin(); s!=epgset.end(); s++, i++) {
//    char fname[20];
//    sprintf(fname, "seit%d", i+1);
//    s->saveBufferToFile(fname);
//  }
  return 0;
}
Exemple #3
0
int main(int argc, char **argv)
{
  SIsectionsSDT sdtset;

  if(argc!=2) {
    fprintf(stderr, "Aufruf: %s Sendername\n", argv[0]);
    return 1;
  }

  tzset(); // TZ auswerten

  sdtset.readSections();

  // Die for-Schleifen sind laestig,
  // Evtl. sollte man aus den sets maps machen, damit man den key einfacher aendern
  // kann und somit find() funktioniert
  for(SIsectionsSDT::iterator k=sdtset.begin(); k!=sdtset.end(); k++)
    for(SIservices::iterator ks=k->services().begin(); ks!=k->services().end(); ks++) {
      // Erst mal die Controlcodes entfernen
//      printf("Servicename: '%s'\n", ks->serviceName.c_str());
      char servicename[50];
      strncpy(servicename, ks->serviceName.c_str(), sizeof(servicename)-1);
      servicename[sizeof(servicename)-1]=0;
      removeControlCodes(servicename);
      // Jetz pruefen ob der Servicename der gewuenschte ist
//      printf("Servicename: '%s'\n", servicename);
      if(!strcmp(servicename, argv[1])) {
        // Event (serviceid) suchen
        SIevent evt=SIevent::readActualEvent(ks->service_id);
	if(evt.service_id != 0)
	  evt.saveXML(stdout); // gefunden
//	  evt.dump(); // gefunden
        else
	  printf("Kein aktuelles EPG fuer %s gefunden!\n", argv[1]);
        return 0;
      }
    }
  return 1;
}