Example #1
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->serviceID);
	if(evt.serviceID!=0)
	  evt.saveXML(stdout); // gefunden
//	  evt.dump(); // gefunden
        else
	  printf("Kein aktuelles EPG fuer %s gefunden!\n", argv[1]);
        return 0;
      }
    }
  return 1;
}