view src/main/qtopia/SDL_qtopia_main.cc @ 864:0c892e99b65b

Date: Sun, 29 Feb 2004 20:28:27 +0200 From: Martin_Storsj Subject: Slight bug in ESD and aRts When I experimented with the ALSA-patch, I found a slight bug in the Load{ESD,ARTS}Library-functions. The check of whether a function pointer was correctly loaded looks like this right now: *esd_functions[i].func = SDL_LoadFunction(esd_handle, esd_functions[i].name); if ( ! esd_functions[i].func ) Isn't that supposed to be ( ! *esd_functions[i].func )?
author Sam Lantinga <slouken@libsdl.org>
date Tue, 02 Mar 2004 12:45:22 +0000
parents 623b453a3219
children 782fd950bd46 c121d94672cb
line wrap: on
line source


/* Include the SDL main definition header */
#include "SDL_main.h"
#include <stdlib.h>
#include <unistd.h>
#ifdef main
#undef main
#endif
#ifdef QWS
#include <qpe/qpeapplication.h>
#include <qapplication.h>
#include <qpe/qpeapplication.h>
#include <stdlib.h>

// Workaround for OPIE to remove taskbar icon. Also fixes
// some issues in Qtopia where there are left-over qcop files in /tmp/.
// I'm guessing this will also clean up the taskbar in the Sharp version
// of Qtopia.
static inline void cleanupQCop() {
  QString appname(qApp->argv()[0]);
  int slash = appname.findRev("/");
  if(slash != -1) {  appname = appname.mid(slash+1); }
  QString cmd = QPEApplication::qpeDir() + "bin/qcop QPE/System 'closing(QString)' '"+appname+"'";
  system(cmd.latin1());
  cmd = "/tmp/qcop-msg-"+appname;
  unlink(cmd.latin1());
}

static QPEApplication *app;
#endif

extern int SDL_main(int argc, char *argv[]);

int main(int argc, char *argv[])
{
#ifdef QWS
  // This initializes the Qtopia application. It needs to be done here
  // because it parses command line options.
  app = new QPEApplication(argc, argv);
  QWidget dummy;
  app->showMainWidget(&dummy);
  atexit(cleanupQCop);
#endif
  // Exit here because if return is used, the application
  // doesn't seem to quit correctly.
  exit(SDL_main(argc, argv));
}