Пример #1
0
void MakeMyDrivers(struct gp2drivernames *tab)
{
  unsigned long i, ii, isdopp;
  unsigned char vorname[50];
  unsigned char name[50];
  unsigned char vorname2[50];
  unsigned char name2[50];

  for (i = 0; i < 40; i++) {
    //if (sscanf(tab->driver[i], "%s %[^\n]", vorname, name) == 2) { // 2 recognized args
    switch ( sscanf(AHFGetStrNrESI(GP2STRCOUNT+i), "%s %[^\n]", vorname, name) ) {

     case 2 : // 2 recognized args

      isdopp = 0;

      for (ii = 0; ii < 40; ii++) {
        if (ii != i) {
          //if (sscanf(tab->driver[ii], "%s %[^\n]", vorname2, name2) == 2) {
            if (sscanf(AHFGetStrNrESI(GP2STRCOUNT+ii), "%s %[^\n]", vorname2, name2) == 2) {
            if (strcmp(name, name2) == 0) {
              isdopp = 1;
              break;
            }
          }
        }
      }
      vorname[1] = 0x20;  // Leerzeichen hinter 1. Buchstaben
      _bprintf(__MyDrivers.driver[i], sizeof(__MyDrivers.driver[i]),
                "%.2s%s", isdopp ? vorname : "", name);

      break;

     case 1 :  // 1 recognized arg, j.i. just "Jon"
      _bprintf(__MyDrivers.driver[i], sizeof(__MyDrivers.driver[i]),
                "%s", vorname);
      break;

     default :
      _bprintf(__MyDrivers.driver[i], sizeof(__MyDrivers.driver[i]),
                "X Unknown");
    } // switch

  }
  for (i = 40; i < 256; i++)
   _bprintf(__MyDrivers.driver[i], sizeof(__MyDrivers.driver[i]),
             "Driver res 0x%02X", i);

} // MakeMyDrivers()
Пример #2
0
static void RainFreeStopped()
{
    int i;
    for(i=0;i<sounds;i++)
        if(!soundGetStatus(&sound[i]))
        {
            _bprintf(errBuf,errBufLen,"end of %i",sound[i].rainhandle);
            errAdd(errBuf);
            soundStop(&sound[i]);
            sound[i--]=sound[--sounds];
        }
}
Пример #3
0
void TestFormatted( void )
{
    char            buf[80];
    int             status, len;
    int             numA, numB;

    status = _bprintf( buf, 3, "%d", 12345 );   /* try to print too much */
    VERIFY( status <= 3 );

    status = _bprintf( buf, 80, "%d", 12345 );  /* print a string */
    VERIFY( status == 5 );
    VERIFY( !strcmp(buf,"12345") );

    status = sprintf( buf, " %d %d", 191, 67 ); /* print a string */
    VERIFY( status == 7 );

    status = sscanf( buf, "%d %d", &numA, &numB );  /* parse string */
    VERIFY( status == 2 );
    VERIFY( numA == 191 );
    VERIFY( numB == 67 );

    Test__vbprintf( buf, "%d %d", 101, 37 );
    status = Test_vsscanf( buf, "%d %d", &numA, &numB );
    VERIFY( status == 2 );
    VERIFY( numA == 101 );
    VERIFY( numB == 37 );

    Test_vsprintf( buf, "%d %d", 101, 37 );
    status = Test_vsscanf( buf, "%d %d", &numA, &numB );
    VERIFY( status == 2 );
    VERIFY( numA == 101 );
    VERIFY( numB == 37 );

    len = Test_vsnprintf( buf, "%d %d", 101, 37 );    /* try to print too much */
    status = Test_vsscanf( buf, "%d", &numA );
    VERIFY( status == 1 );
    VERIFY( numA == 101 );
    /* make sure that we get back the same length for zero size buffer */
    VERIFY( len == snprintf( NULL, 0, "%d %d", 101, 37 ) );
}
Пример #4
0
/*
 * This replaces system() in hc386.lib
 * Note: this is aliased in <tcp.h>
 */
int _mw_watt_system (const char *cmd)
{
  char  buf[150];
  char *env_copy, *env = getenv ("COMSPEC");
  int   rc;

  if (!env || access(env,0))
  {
    (*_printf) ("Bad COMSPEC variable\n");
    return (0);
  }

  if (cmd && *cmd)
       _bprintf (buf, sizeof(buf), " /c %s", cmd);
  else _bprintf (buf, sizeof(buf), "%s", cmd);

  rc = Execute (env, buf, &env_copy);

  if (env_copy)
     free (env_copy);
  return (rc);
}
Пример #5
0
void OnSelectTrackImage(char *pic, unsigned short picnr)
{
  int row = 0;
  unsigned long tracknr = *(unsigned long *)IDACodeReftoDataRef(0x11a69);

  Gp2InfoTags *track = GetTrackTags(tracknr);


  if (track->name[0]) {  // supposing it's a custom track

    /////////////////////////////////
    // show more custom track details
    /////////////////////////////////

    WRITEVERD7KR("Laps: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    _bprintf(atmp, sizeof(atmp), "%d", track->laps); // "?, using %d", DEFAULTLAPS);
    WRITEVERD7K(track->laps>0 ? atmp : "?", pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);

    WRITEVERD7KR("Length: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    _bprintf(atmp, sizeof(atmp), "%dm", track->length); // "?, using %dm", GCLENGTHTOMETERS(DEFAULTLENGTH));
    WRITEVERD7K(track->length>0 ? atmp : "?", pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);

    WRITEVERD7KR("Slot: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    _bprintf(atmp, sizeof(atmp), "%d", track->slot);
    WRITEVERD7K(track->slot>0 ? atmp : "?", pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);

    WRITEVERD7KR("Tyrewear: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    _bprintf(atmp, sizeof(atmp), "%d", track->tyrewear);
    WRITEVERD7K(track->tyrewear>0 ? atmp : "?", pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);

    WRITEVERD7KR("Event, Year: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    if (track->year > 0)
      _bprintf(atmp, sizeof(atmp), "%s, %d", track->event, track->year);
    else
      _bprintf(atmp, sizeof(atmp), "%s, ?", track->event);
    WRITEVERD7K(atmp, pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);

    WRITEVERD7KR("Author: ", pic, TRKINFO_COL1Y + (row*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUYELLOW);
    _bprintf(atmp, sizeof(atmp), "%s", track->author);
    WRITEVERD7K(atmp, pic, TRKINFO_COL1Y + (row++*(fntverd7fk.ydim-0)), TRKINFO_COL1X, GP2MENUWHITE);


    /////////////////////////////////
    // load (or calc) track images
    /////////////////////////////////

    OnDrawFramedTrackImage(pic, track);

  }

  // SearchDseg03();

} // OnSelectTrackImage()
Пример #6
0
void SaveScreenShotNow(void)
{
  FILE *fout;
  void *dest, *source;

  static unsigned long screenshotcnt = 0;
  unsigned int page = 0;
  signed int scr_size = 640*480;    // for svga
  unsigned long xdim, ydim;

  char *GP2_Zielpalette = (void *) IDACodeReftoDataRef(0x7f624);
  unsigned char *GP2_use_svga = (void *) IDACodeReftoDataRef(0x35b36);

  //---- determine the dims (and allocate svga buffer) ------
  if (*GP2_use_svga) {
    xdim = 640; ydim = 480;
  }
  else {
    xdim = 320; ydim = 200;
  }

  //---- fill workbuf, or if it's VGA it's still there ------
  if (*GP2_use_svga) {
    source = (unsigned char *)0x000A0000;
    dest = &picbuf;
    while(scr_size > 0) {
      vesa_setpage(page, GetSvgaGranularity() /*64*/);
      mymemcpy(dest, source, (scr_size > 65536 ? 65536 : scr_size));
      scr_size -= 65536;
      dest = (void *)((unsigned long)dest + 65536);
      page++;
    }
    dest = &picbuf;
  }
  else
    dest = (unsigned char *)0x000A0000;


  //---- now write dest to file ------
  _bprintf(atmp, sizeof(atmp), "gp2_%04u.bmp", screenshotcnt++);
  if ((fout = fopen(atmp, "wb")) != NULL) {
    savestream_svgabmp(dest, 0 /*xpos*/, 0 /*ypos*/, xdim, ydim,
                       GP2_Zielpalette, fout);
    fclose(fout);
  }

  mymemset(&picbuf, 0, sizeof(picbuf));
  ReDrawAllPages(NULL);

} // SaveScreenShotNow()
Пример #7
0
static BOOL AppStarted(const char **argv)
{
#ifdef CHILD
    STARTUPINFO StartupInfo={
      sizeof(STARTUPINFO),
      NULL,
      NULL,
      NULL, // title
      0,0,0,0,0,0,0,0,0, // don't override default window size, position etc
      0,
      0,
      NULL, // hStdInput;
      NULL, // hStdOutput;
      NULL // hStdError;
    };
    char commandline[512];
    int arg=0;
    commandline[0]=0;
    do {
      strcat( commandline, argv[arg] );
      strcat( commandline, " " );
    } while(argv[++arg]);
    APICALLF( CreateProcess(
      NULL,
      commandline,
      NULL, // process attributes
      NULL, // thread attributes
      0, // inherit handles
      0, // ABOVE_NORMAL_PRIORITY_CLASS
      NULL, // environment
      NULL, // current directory name
      &StartupInfo,
      &ProcessInformation
      ) );
    if( !_beginthread(myWaitThread, 8192, argv) )
    {
      _bprintf(error,BUFSIZE,"Couldn't create thread.\n");
      return FALSE;
    }
#endif
    APICALLF(SetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS));
    return TRUE;
}
Пример #8
0
void _call_trace (const char *from, const char *module, unsigned line,
                  const char *to)
{
  static const char *last_module = NULL;
  char   where[30];

  if (!ctrace_on || level >= DIM(caller)-1)
     return;

  _bprintf (where, sizeof(where), "%s(%u)", module, line);

  (*_printf) ("%-16s:%*s %s() -> %s()\n", where, level, "", from, to);

  if (caller[level] == NULL ||
      (strcmp(from,caller[level])) && is_watt32_func(to))
     caller[level++] = from;

  else if (last_module && !strcmp(module,last_module) && level > 0)
     level--;

  last_module = module;
}
Пример #9
0
void PlatformSpecificCore(const char **argv)
{
    int l_temppath;
    char temppath[MAX_PATH];
    l_temppath=GetTempPath(MAX_PATH,temppath);
    if(l_temppath>=MAX_PATH) _bprintf(error,BUFSIZE,"Path to temporary files is too long."); else {
     strcpy(argpart1,"RAIN=FILE ");
     strcpy(argpart2,",");
     if(!GetTempFileName(temppath,"raincmd",0,raincmdname)) _bprintf(error,BUFSIZE,"Unable to create temporary filename."); else {
      if(!GetTempFileName(temppath,"rainrep",0,rainrepname)) _bprintf(error,BUFSIZE,"Unable to create temporary filename."); else {
       rainout=fopen(rainrepname,"w+t");
       if (!rainout) _bprintf(error,BUFSIZE,"Unable to open rain reply file."); else {
        setbuf(rainout,NULL);
        fprintf(rainout,FULL "\n");
        if (remove(raincmdname)) _bprintf(error,BUFSIZE,"Unable to remove rain command file."); else {
         input[0]=0;
         if ( putenv(strcat(strcpy(argfull,argpart1),argpart2)) ) _bprintf(error,BUFSIZE,"Too small environment.\n"); else {

          if (!quiet)
          {
              printf("Resident Audio Interface installed.\n");
              installed=1;
          }
          if ( AppStarted(argv) )
          {
            while ( !endRain )
            {
              TalkPoll();
              Sleep(5); //max 15ms, longer sleep interrupts mp3 decoding
            }
            AppClose();
          }
          putenv("RAIN=");
         }
        }
        if(rainin) fclose(rainin);
       }
       fclose(rainout);
      }
      remove(rainrepname);
     }
     remove(raincmdname);
    }
}
Пример #10
0
static void reportErr(int err)
{
    _bprintf(errBuf,errBufLen," %s: %s",hint,MIDASgetErrorMessage(err));
    errAdd(errBuf);
}
Пример #11
0
int RainCommand(int command,int param1,int param2,int param3,
                 char *filename,int fileofs,int filesize)
{
    int result=0;
    int i;
    if (command==CMD_PLAY)
        _bprintf(hint,hintlen,"%s,%i,%i",filename,fileofs,filesize);
    else
        _bprintf(hint,hintlen,"%i(%i,%i)",command,param1,param2);
    switch (command)
    {
        case CMD_NONE:
            RainFreeStopped();
            MIDASpoll();
            break;
        case CMD_PLAY:
            rainhandles++;
            if (sounds<SOUNDS)
            {
                sound[sounds].type=None;
                sound[sounds].rainhandle=rainhandles;
                sound[sounds].datahandle=0;
                sound[sounds].playhandle=0;
                soundPlay(&sound[sounds],filename,fileofs,filesize,param1);
                soundSetVolume(&sound[sounds],param2);
                soundSetPanning(&sound[sounds],param3);
                sounds++;
            }
            result=rainhandles;
            break;
        case CMD_VOL:
            for(i=0;i<sounds;i++)
              if(sound[i].rainhandle==param1)
              {
                  soundSetVolume(&sound[i],param2);
              }
            break;
        case CMD_PAN:
            for(i=0;i<sounds;i++)
              if(sound[i].rainhandle==param1)
              {
                  soundSetPanning(&sound[i],param2);
              }
            break;
        case CMD_STOP:
            for(i=0;i<sounds;i++)
              if(sound[i].rainhandle==param1)
              {
                  soundStop(&sound[i]);
                  sound[i--]=sound[--sounds];
              }
            break;
        case CMD_AMPLIFY:
            MIDASsetAmplification(AMPLIFY_ALL*AMPLIFY_MP3*param1);
            break;
        default:
            _bprintf(errBuf,errBufLen," Unknown command %i.",command);
            errAdd(errBuf);
    }
    MIDASreportErr();
    return result;
}