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()
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]; } }
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 ) ); }
/* * 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); }
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()
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()
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; }
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; }
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); } }
static void reportErr(int err) { _bprintf(errBuf,errBufLen," %s: %s",hint,MIDASgetErrorMessage(err)); errAdd(errBuf); }
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; }