#ifdef __cplusplus #include #else #include #endif #include #include #include "fileAPA.h" #include "time.h" struct dessin { SDL_Surface *rectangle; SDL_Rect position; SDL_Surface *icone; SDL_Rect positionIcon; SDL_Surface* TRSSurface; SDL_Rect positionTRS; SDL_Surface* TRSSSurface; SDL_Rect positionTRSS; SDL_Surface* TRPSurface; SDL_Rect positionTRP; SDL_Surface* TRPPSurface; SDL_Rect positionTRPP; SDL_Surface *RRebutSurface; SDL_Rect positionRRebut; SDL_Surface *RebutSurface; SDL_Rect positionRebut; int next; }; void affichage(Uint32 intervalle, void *parametre); /*****Programme principal****/ int main( int argc, char** argv ) { if ( SDL_Init( SDL_INIT_VIDEO| SDL_INIT_TIMER ) < 0 ) // initialize SDL video { printf( "Unable to init SDL: %s\n", SDL_GetError() ); return 1; } // make sure SDL cleans up before exit atexit(SDL_Quit); SDL_Surface *HHeureSurface; SDL_Rect positionHHeure; SDL_Surface *HeureSurface; SDL_Rect positionheure; SDL_Surface *MMinuteSurface; SDL_Rect positionMMinute; SDL_Surface *MinuteSurface; SDL_Rect positionMinute; SDL_Surface *SSecondeSurface; SDL_Rect positionSSeconde; SDL_Surface *SecondeSurface; SDL_Rect positionSeconde; Uint32 rouge, blanc; SDL_Surface *codb; SDL_Rect positionIcon; SDL_Surface *schema; SDL_Rect positionS; // gére l'affichage de l'heure de la remise à jour positionHHeure.x= 750; positionHHeure.y= 550; positionheure.x=850; positionheure.y=550; positionMMinute.x=860; positionMMinute.y=550; positionMinute.x=865; positionMinute.y=550; positionSSeconde.x=875; positionSSeconde.y=550; positionSeconde.x=880; positionSeconde.y=550; if(TTF_Init() < 0 )// Initialisation de SDL_ttf { printf("Impossible d'initialiser SDL_ttf : %s", TTF_GetError()); return 1; } TTF_Font* Font = TTF_OpenFont("arial.ttf", 9);//Charge une police depuis un fichier, avec une taille de point à 15 if(!Font)//Si la police est nulle, il y a eu une erreur { printf("Erreur de création de la police : %s", TTF_GetError()); return 2; } SDL_Color TextColor;// Couleur du texte: noir TextColor.r = 0; TextColor.g = 0; TextColor.b = 0; SDL_TimerID timer; void * parametre; timer=SDL_AddTimer(100, affichage, ¶metre); SDL_RemoveTimer (timer); return 0; } Uint32 affichage (Uint32 intervalle, void *parametre) { struct machine annuaire[taille]; struct dessin dessin[taille]; char titre[22]="Supervision Ligne APA", trs1[32], trp1[32], heure1[32], tr[32],minute1[32],seconde1[32]; int nb_machine, espaceX=35, espaceY=25, i=0, m=0, v, u=0, f, XX, YY, c, a, y, choix; long heure, minute, seconde; nb_machine= menu_et_traitement (annuaire, nb_machine); // récupère l'annuaire calcul_heure (annuaire[1].tf, &heure, &minute, &seconde); u=2; sprintf (heure1, "%d", heure); sprintf (minute1, "%d", minute); sprintf (seconde1, "%d", seconde); HeureSurface = TTF_RenderText_Solid(Font, heure1, TextColor); MinuteSurface = TTF_RenderText_Solid(Font, minute1, TextColor); SecondeSurface = TTF_RenderText_Solid(Font, seconde1, TextColor); for (y=1; y<44; y++) { sprintf(trs1, "%.2f", annuaire[u].trs); sprintf(trp1, "%.2f", annuaire[u].trp); sprintf (tr, "%.2f", annuaire[u].tr); u++; dessin[y].TRSSurface = TTF_RenderText_Solid(Font, trs1, TextColor); dessin[y].TRPSurface = TTF_RenderText_Solid(Font, trp1, TextColor); dessin[y].RebutSurface = TTF_RenderText_Solid(Font, tr, TextColor); } HHeureSurface = TTF_RenderText_Solid(Font, "Dernière mise à jour :", TextColor); MMinuteSurface = TTF_RenderText_Solid(Font, ":", TextColor); SSecondeSurface = TTF_RenderText_Solid(Font, ":", TextColor); for (c=1; c<44; c++)// intitulé des TRS et TRP { dessin[c].TRSSSurface = TTF_RenderText_Solid(Font, "TRS=", TextColor); dessin[c].TRPPSurface = TTF_RenderText_Solid(Font, "TRP=", TextColor); dessin[c].RRebutSurface = TTF_RenderText_Solid(Font, "TR=", TextColor); } // create a new window SDL_Surface* screen = SDL_SetVideoMode(1024, 768, 32,SDL_HWSURFACE); if ( !screen ) { printf("Unable to set 1024x768 video: %s\n", SDL_GetError()); //return 5; } SDL_WM_SetCaption(titre, NULL);//titre de la fenêtre //image de fond schema=SDL_LoadBMP("ligneAPA.bmp"); positionS.x=0; positionS.y=0; y=2; //gérer les rectangles for (u=1; u<44; u++) //nb_machine mais seulement 8 pour l'instant { // gérer le type d'icone à afficher if (annuaire[y].etat ==2) { dessin[u].icone= SDL_LoadBMP("petit-good.bmp") ; } else if (annuaire[y].etat==1) { dessin[u].icone=SDL_LoadBMP("petit-soso.bmp") ; } else if (annuaire[y].etat==0){ dessin[u].icone=SDL_LoadBMP("petit-bad.bmp") ; } y++; if ( !dessin[u].icone ) { printf("icone: %s\n", SDL_GetError()); //return 8; } } if ( !schema ) { printf("Schema: %s\n", SDL_GetError()); //return 4; } for (u=1; u<44; u++) { //roulage1-2 S46 S47 dessin[u].positionIcon.x=espaceX; dessin[u].positionIcon.y=espaceY+5; XX= espaceX-15; YY= espaceY+45; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+15; YY= espaceY+45; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX-15; YY= espaceY+55; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+15; YY= espaceY+55; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX-15; YY= espaceY+65; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+15; YY= espaceY+65; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; espaceX =espaceX+ 140; if (u==7) { espaceX=595; espaceY=25; } if (u==14) { espaceX=1040; espaceY=25; } if (u==2 || u==7|| u==14) //ctrl1 sz { u++; espaceX =espaceX-200; espaceY= espaceY+155; dessin[u].positionIcon.x=espaceX+95; dessin[u].positionIcon.y=espaceY-40; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; u++; espaceY= espaceY-25; espaceX= espaceX-58; dessin[u].positionIcon.x=espaceX; dessin[u].positionIcon.y=espaceY; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if (u==4) { espaceY=25; espaceX=315; } if(u==6) { espaceY=125; espaceX= 300; } if (u==9)//S54 { espaceY=85; espaceX= 575; u++; dessin[u].positionIcon.x=espaceX+40; dessin[u].positionIcon.y=espaceY-55; XX= espaceX+25; YY= espaceY-15; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-15; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-5; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-5; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY+5; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY+5; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; espaceY=25; espaceX= 760; } if (u==12) { espaceX=750; espaceY=165; } if (u==13) { espaceX= 700; espaceY=220; } if (u==16) { u++; //K4 espaceY= 275; espaceX= 540; dessin[u].positionIcon.x=espaceX; dessin[u].positionIcon.y=espaceY; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; espaceY= 345; espaceX= 35; } if(u==17) // rectif 1 et 2 { espaceY= 345; espaceX= 35; } if (u==19) { u++;// rectif 3 espaceY= 410; espaceX= 255; dessin[u].positionIcon.x=espaceX+45; dessin[u].positionIcon.y=espaceY-65; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if(u==20) { u++; // ctrl Z2-2 espaceY= 270; espaceX= 100; dessin[u].positionIcon.x=espaceX+40; dessin[u].positionIcon.y=espaceY-55; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if (u==21) { u++; //sz2-2 espaceY= 310; espaceX= 40; dessin[u].positionIcon.x=espaceX+40; dessin[u].positionIcon.y=espaceY-55; XX= espaceX+25; YY= espaceY-20; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+55; YY= espaceY-20; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX+25; YY= espaceY-10; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+55; YY= espaceY-10; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX+25; YY= espaceY; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+55; YY= espaceY; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; espaceX=35; //rectif1 ->20 espaceY=530; } if (u==22) { espaceX=455; espaceY=282; } if (u==23) { espaceX=470; espaceY=402; u++; dessin[u].positionIcon.x=espaceX; dessin[u].positionIcon.y=espaceY+5; XX= espaceX-15; YY= espaceY+45; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+15; YY= espaceY+45; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX-15; YY= espaceY+55; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+15; YY= espaceY+55; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX-15; YY= espaceY+65; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+15; YY= espaceY+65; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; espaceX=510; espaceY=340; } if(u==25) { espaceX=45; espaceY=530; } if(u==26) { espaceX=153; espaceY=530; } if(u==27) { espaceX=260; espaceY=530; } if (u==28)//Master { espaceY= 670; espaceX= 40; } if (u==29)//master 2 { espaceY= 670; espaceX= 130; } if (u==30)//k8 { espaceY= 625; espaceX= 200; } if (u==31)//K7 { espaceY= 615; espaceX= 345; } if (u==32)// taillage { espaceY= 488; espaceX= 435; } if (u==33)// indexage et relecture { u++; espaceY= 540; espaceX= 435; dessin[u].positionIcon.x=espaceX+50; dessin[u].positionIcon.y=espaceY+20; XX= espaceX-15; YY= espaceY+40; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+15; YY= espaceY+40; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX-15; YY= espaceY+50; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+15; YY= espaceY+50; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX-15; YY= espaceY+60; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+15; YY= espaceY+60; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if (u==34) //gravage { espaceY= 592; espaceX= 430; u++; dessin[u].positionIcon.x=espaceX-25; dessin[u].positionIcon.y=espaceY+20; XX= espaceX-15; YY= espaceY+40; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+15; YY= espaceY+40; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX-15; YY= espaceY+50; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+15; YY= espaceY+50; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX-15; YY= espaceY+60; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+15; YY= espaceY+60; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if (u==35)// relecture { espaceY= 635; espaceX= 430; u++; dessin[u].positionIcon.x=espaceX+60; dessin[u].positionIcon.y=espaceY+25; XX= espaceX-15; YY= espaceY+45; dessin[u].positionTRSS.x= XX; dessin[u].positionTRSS.y= YY; dessin[u].positionTRSS.w= dessin[u].TRSSSurface->w; dessin[u].positionTRSS.h= dessin[u].TRSSSurface->h; XX= espaceX+15; YY= espaceY+45; dessin[u].positionTRS.x= XX; dessin[u].positionTRS.y= YY; dessin[u].positionTRS.w= dessin[u].TRSSurface->w; dessin[u].positionTRS.h= dessin[u].TRSSurface->h; XX= espaceX-15; YY= espaceY+55; dessin[u].positionTRPP.x= XX; dessin[u].positionTRPP.y= YY; dessin[u].positionTRPP.w= dessin[u].TRPPSurface->w; dessin[u].positionTRPP.h= dessin[u].TRPPSurface->h; XX= espaceX+15; YY= espaceY+55; dessin[u].positionTRP.x= XX; dessin[u].positionTRP.y= YY; dessin[u].positionTRP.w= dessin[u].TRPSurface->w; dessin[u].positionTRP.h= dessin[u].TRPSurface->h; XX= espaceX-15; YY= espaceY+65; dessin[u].positionRRebut.x= XX; dessin[u].positionRRebut.y= YY; dessin[u].positionRRebut.w= dessin[u].RRebutSurface->w; dessin[u].positionRRebut.h= dessin[u].RRebutSurface->h; XX= espaceX+15; YY= espaceY+65; dessin[u].positionRebut.x= XX; dessin[u].positionRebut.y= YY; dessin[u].positionRebut.w= dessin[u].RebutSurface->w; dessin[u].positionRebut.h= dessin[u].RebutSurface->h; } if (u==36)//ctrl stato { espaceY= 600; espaceX= 520; } if (u==37) //bague { espaceY= 600; espaceX= 605; } if (u==38)//Camera { espaceY= 598; espaceX= 685; } if (u==39)//smac { espaceY= 600; espaceX= 770; } if (u==40) //Roulage { espaceY= 600; espaceX= 855; } if (u==41) //Demag { espaceY= 600; espaceX= 945; } if (u==42) { espaceY= 330;// bilan sous zone 20 espaceX= 660; } } /*** program main loop****/ bool done = false; while (!done) { // message processing loop SDL_Event event; while (SDL_PollEvent(&event)) { // check for messages switch (event.type) { // exit if the window is closed case SDL_QUIT: done = true; break; // check for keypresses case SDL_KEYDOWN: { // exit if ESCAPE is pressed if (event.key.keysym.sym == SDLK_ESCAPE) done = true; break; } } // end switch } // end of message processing //Uint32 green= SDL_MapRGB(screen->format, 450,220,220);// couleur des carrées // met le fond d'écran en blanc SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 255, 255, 255)); SDL_BlitSurface(schema, 0, screen, &positionS); // finally, update the screen :) for(m=1; m<44; m++) { SDL_BlitSurface(dessin[m].TRSSurface, NULL, screen, &dessin[m].positionTRS); SDL_BlitSurface(dessin[m].TRSSSurface, NULL, screen, &dessin[m].positionTRSS); SDL_BlitSurface(dessin[m].TRPSurface, NULL, screen, &dessin[m].positionTRP); SDL_BlitSurface(dessin[m].TRPPSurface, NULL, screen, &dessin[m].positionTRPP); SDL_BlitSurface(dessin[m].RebutSurface, NULL, screen, &dessin[m].positionRebut); SDL_BlitSurface(dessin[m].RRebutSurface, NULL, screen, &dessin[m].positionRRebut); SDL_BlitSurface(dessin[m].icone, 0, screen, &dessin[m].positionIcon); } SDL_BlitSurface(HHeureSurface, 0, screen, &positionHHeure); SDL_BlitSurface(HeureSurface, 0, screen, &positionheure); SDL_BlitSurface(MinuteSurface, 0, screen, &positionMinute); SDL_BlitSurface(SecondeSurface, 0, screen, &positionSeconde); SDL_BlitSurface(MMinuteSurface, 0, screen, &positionMMinute); SDL_BlitSurface(SSecondeSurface, 0, screen, &positionSSeconde); /* Affiche toute la surface en 0,0 */ SDL_Flip(screen); } // end main loop // free loaded bitmap //nb_machine mais seulement 8 pour l'instant for(a=1; a<44; a++) { SDL_FreeSurface (schema); SDL_FreeSurface(dessin[a].icone); SDL_FreeSurface(dessin[a].TRSSurface); SDL_FreeSurface(dessin[a].TRSSSurface); SDL_FreeSurface(dessin[a].TRPSurface); SDL_FreeSurface(dessin[a].TRPPSurface); SDL_FreeSurface(dessin[a].RebutSurface); SDL_FreeSurface(dessin[a].RRebutSurface); } SDL_FreeSurface(HeureSurface); SDL_FreeSurface(HHeureSurface); TTF_Quit(); TTF_CloseFont(Font); //free (dessin); //return 1; }