View Single Post
Old 04-21-2010, 04:40 PM   #7
reader42
Zealot
reader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it isreader42 knows what time it is
 
Posts: 117
Karma: 2097
Join Date: Feb 2010
Device: none
So jetzt gibt es auch ein funktionierendes Beispiel. Ich habe festgestellt, dass man DownloadTo() nicht vor InkViewMain() aufrufen darf. (Das scheint übrigens bei allen Funktionen aus inkview.h der Fall zu sein.)

Code:
#include <inkview.h>
#include <stdio.h>
#include <unistd.h>


FILE * LogFile;

int main_handler(int type, int par1, int par2)
{
  int i, dl;
  iv_sessioninfo * session_info;
  char filename[FILENAME_MAX] = "/mnt/ext1/games/test.png";
  char url[FILENAME_MAX] = "http://b.tile.openstreetmap.org/16/34652/22545.png";

  switch (type) {
    case EVT_INIT:
      int net_session = NewSession();
      dl = DownloadTo(net_session, url, 0, filename, -1);
      fprintf(LogFile, "DownloadTo: %d\n", dl);
      for (i=0; i<15; i++)
      {
        dl = GetSessionStatus(net_session);
        session_info = GetSessionInfo(net_session);
        fprintf(LogFile, "session status: %d\nURL: %s\nctype: %s\nresponse: %d length: %d, progress: %d\n", dl, session_info->url, session_info->ctype, session_info->response, session_info->length, session_info->progress );
        usleep(10000);
      }
      CloseApp();
      break;
  }
}
      

int main(int argc, char **argv) {
  LogFile = fopen("/mnt/ext1/games/dl.log", "w");
  
  InkViewMain(main_handler);
  
  fclose(LogFile);
  return 0;
}
Bisheriges Fazit:
Existiert die Datei, geht der SessionStatus von NET_OK über NET_CONNECT und NET_TRANSFER zurück nach NET_OK und session_info->response liefert 200

Existiert die Datei nicht aber der Server schon: Selbes Spiel, aber session_info->response liefert 404 wie ein Webbrowser halt auch.

Existiert der Server nicht, dann geht SessionStatus von NET_OK über NET_CONNECT nach NET_ERESOLVE

DownloadTo() liefert aber in allen Fällen 0.
Selbst wenn ich zwei Download schnell hinter einander starte liefert DownloadTo() 0. Dann wird aber SessionStatus einmal NET_ABORTED.
reader42 is offline   Reply With Quote