/* System includes */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

/* libhomeradar header include */
#include "libhomeradar.h"

/* Show new contacted aircrafts */
void onair(LHR handle,const int *id, LHR_CONTACT *C) {
  char tstr[64];

  printf("*** NEW CONTACT ***\n");
  if (id != NULL) printf("[%s]\n",homeradar_gethostbyid(handle,*(id)));
  printf("Contact: %s [%s]\n",
          C->icao24,(C->reg)?C->reg:"UNKNOWN - Lookup not enabled?!");
  strftime(tstr,sizeof(tstr),"%d %m %Y %H:%M:%S",localtime(&C->contacted));
  printf("Date: %s\n",tstr);

  /* Free used memory */
  homeradar_freecontact(C);
}

/* Main program */
int main(int argc, char **argv) {
  int e;
  LHR H = homeradar_init(1,LHR_AUTOCONNECT,&e,NULL);

  /* No error */
  if (H == NULL) {
    printf("Error initializing libhomeradar. Errorcode #%d\n",e);
    return 255;
  }

  /* Add host without event listener */
  e = homeradar_addhost(H, "sbs1.libhomeradar.org", 33033, LHR_SBS1, 0, NULL);

  /* Setup the event listener for the LHR_ONCONTACT event */
  if (homeradar_onhandler(H, LHR_ONAIRCONTACT, e, onair)==0) {
    printf("Unable to add event listener\n");
  }

  /* Do nothing - in this example - loop will be finished after 5 minutes
     In your real program you can do now what you want */
  e = 50;
  while (e--) sleep(6);

  /* Shutdown libhomeradar and free all alocated memory */
  printf("Shutdown libhomeradar...\n");
  homeradar_destroy(H);

  /* Return success */
  return 0;
}
