#include #include #include #include // Para getch(); #include // Para outtextxy(...); y cleardevice(...); #include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON #include "cd_icons.h" #include "CD_SND.H" #define SIN_COMENTARIO 0 #define CON_COMENTARIO 1 #define DOS 1 #define WINDOWS 2 extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); struct CFG_str { char Nombre_del_Programa[70]; char Comentario_Inicial[70]; char VerHi, VerLow; char Register; long Records; }; struct CFG_str CD_cabecera1; typedef struct { unsigned int Exit_after_EXE : 1; unsigned int With_Out_Sound : 1; unsigned int Auto_Install : 1; unsigned int Check_Free_Size : 1; unsigned int Format_Always : 1; unsigned int Without_Backgr : 1; unsigned int Futura_Ampliac : 4; } Cd_CFG; Cd_CFG CD_CFG1; FILE *CD_CFG; int CFG; void Init_CFG(void); void Abre_Ficha_CD_CFG(int R_W); void Poner_a_cero_estructura_actual_CFG(void); #define SIN_COMENTARIO 0 #define CON_COMENTARIO 1 extern void Imprime_Lista(char Como); extern void Sonido(char Sonido); void Init_CFG(void){ int ok = 0; int Salvar = 0; Abre_Ficha_CD_CFG(0); setfillstyle(SOLID_FILL, 240); bar(395, 140, 625, 410); // Imprime_Estaticos( 4, "cd_out.img"); // Imprime botones estaticos 'Seccion 4' Fichero_cd_img(4); Imprime_Secuencia(2); // Imprime secuencia 1. // Imprime_Estaticos( 5, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' Fichero_cd_img(5); if ( CD_CFG1 . Exit_after_EXE ) Imprime_Bordes(2, 4, 248); if ( CD_CFG1 . With_Out_Sound ) Imprime_Bordes(2, 5, 248); if ( CD_CFG1 . Auto_Install ) Imprime_Bordes(2, 6, 248); if ( CD_CFG1 . Check_Free_Size ) Imprime_Bordes(2, 7, 248); if ( CD_CFG1 . Format_Always ) Imprime_Bordes(2, 8, 248); if ( CD_CFG1 . Without_Backgr ) Imprime_Bordes(2, 9, 248); while(!ok){ // Bucle infinito switch( Comprueba_Secuencia( 2 ) ) { // Iniciamos comprobacion de 2¦ sec case 0: // No se pulso ningun BOTON // Pero el raton fue presionado en // algun sitio... // Sonido("CD_OUT01.WAV"); Sonido( Mouse_Press ); break; case -2: // Hay una tecla normal en BUFFER getch(); // La eliminamos // Sonido("CD_OUT01.WAV"); Sonido( Mouse_Press ); break; case -1: // Hay una tecla especial en BUFFER getch(); // La eliminamos // Sonido("CD_OUT01.WAV"); Sonido( Mouse_Press ); break; // Boton Cancelar case 1: // Sonido("CD_OUT0F.WAV"); Sonido( Cancel ); Salvar = 0; ok = 1; break; // Boton Salvar case 2: // Sonido("CD_OUT10.WAV"); Sonido( Save_until_exit ); Salvar = 1; break; // Boton Anterior case 3: // Sonido("CD_OUT0E.WAV"); Sonido( Ok ); ok = 1; break; // Boton Salir despues de ejecutar case 4: if ( CD_CFG1 . Exit_after_EXE ) { Imprime_Bordes(2, 4, -1); CD_CFG1 . Exit_after_EXE = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . Exit_after_EXE = 1; Imprime_Bordes(2, 4, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton Desactivar sonidos case 5: if ( CD_CFG1 . With_Out_Sound ) { Imprime_Bordes(2, 5, -1); CD_CFG1 . With_Out_Sound = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . With_Out_Sound = 1; Imprime_Bordes(2, 5, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton Auto_Instalaci¢n case 6: if ( CD_CFG1 . Auto_Install ) { Imprime_Bordes(2, 6, -1); CD_CFG1 . Auto_Install = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . Auto_Install = 1; Imprime_Bordes(2, 6, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton Comprobar espacio libre case 7: if ( CD_CFG1 . Check_Free_Size ) { Imprime_Bordes(2, 7, -1); CD_CFG1 . Check_Free_Size = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . Check_Free_Size = 1; Imprime_Bordes(2, 7, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton Formatear en caso de unidades A: y B: case 8: if ( CD_CFG1 . Format_Always ) { Imprime_Bordes(2, 8, -1); CD_CFG1 . Format_Always = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . Format_Always = 1; Imprime_Bordes(2, 8, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton sin dibujo de Fondo case 9: if ( CD_CFG1 . Without_Backgr ) { Imprime_Bordes(2, 9, -1); CD_CFG1 . Without_Backgr = 0; // Sonido("CD_OUT0C.WAV"); Sonido( No ); } else { CD_CFG1 . Without_Backgr = 1; Imprime_Bordes(2, 9, 248); // Sonido("CD_OUT0B.WAV"); Sonido( Yes ); } break; // Boton Imprime Lista Sin Comentarios case 10: // Sonido("CD_OUT0D.WAV"); Sonido( Printing ); Imprime_Lista(SIN_COMENTARIO); break; // // Boton Imprime Lista Con Comentarios // case 10: // Imprime_Lista(CON_COMENTARIOS); // break; default: while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER // Sonido("CD_OUT11.WAV"); Sonido( Unknow_error ); break; } } setfillstyle(SOLID_FILL, 240); bar(395, 140, 625, 410); if ( Salvar == 1 && CFG != 0 ) Abre_Ficha_CD_CFG(1); else Abre_Ficha_CD_CFG(0); return; } //ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ //Û Û //Û ÜÜ ÜÜÜ ÜÜÜ ÜÜÜ ÜÜÜÜÜ Ü Ü ÜÜÜ ÜÜ ÜÜÜ Û //Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û //Û ÛßßÛ Ûßß Ûß ÛßÛ Û Û Û ÛßÛ ÛßßÛ ßßÜ Û //Û Û Û Û ÛÜÜ Û Û Û ÛÜÜÛ Û Û Û Û ÜÜÜß Û //Û Û //ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ void Abre_Ficha_CD_CFG(int R_W){ char ArchivoDatos[]="C:\\CD_out.CFG"; char Memoria; CFG = 1; //ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ// //Û CD_in Apertura de Indice, y Datos, o creaci¢n... Û// //ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß// int LSJ = sizeof(struct CFG_str); int LSC = sizeof(Cd_CFG); if ( (CD_CFG = fopen( ArchivoDatos, "r+b"))==NULL) { FILE *fa; if ( (fa = fopen( ArchivoDatos, "wb" ) )!=NULL ) { Poner_a_cero_estructura_actual_CFG(); CD_cabecera1.Records = 0; rewind(fa); fwrite(&CD_cabecera1, LSJ, 1, fa); fseek(fa, (long)LSJ, SEEK_SET); fwrite(&CD_CFG1, LSC, 1, fa); if (fclose(fa) == EOF ) CFG = 0; } if ( (CD_CFG = fopen( ArchivoDatos, "r+b"))==NULL) CFG = 0; } if ( CFG != 0 ) { rewind(CD_CFG); if ( fread(&CD_cabecera1, LSJ, 1, CD_CFG) != 1 ) CFG = 0; } if( R_W == 0 ) { if ( CFG != 0 ) { fseek(CD_CFG, (long)LSJ, SEEK_SET); if ( fread(&CD_CFG1, LSC, 1, CD_CFG) != 1 ) CFG = 0; } } else { if ( CFG != 0 ) { fseek(CD_CFG, (long)LSJ, SEEK_SET); if ( fwrite(&CD_CFG1, LSC, 1, CD_CFG) != 1 ) CFG = 0; } } if (fclose(CD_CFG) == EOF ) CFG = 0; } void Poner_a_cero_estructura_actual_CFG(void){ char CR = 13, LF = 10, BEEP = 7, ANY = 26; sprintf( CD_cabecera1.Nombre_del_Programa, "%c %c %c - CD_OUT - %c %c Fichero de Configuraci¢n %c %c", CR, LF, BEEP, CR, LF, CR, LF ); sprintf( CD_cabecera1.Comentario_Inicial, "Jos‚ David Guill‚n %c %c %c %c", CR, LF, BEEP, ANY ); CD_cabecera1.VerHi = 1; CD_cabecera1.VerLow = 0; CD_cabecera1.Register = 1; CD_CFG1 . Exit_after_EXE = 1; CD_CFG1 . With_Out_Sound = 0; CD_CFG1 . Auto_Install = 1; CD_CFG1 . Check_Free_Size = 1; CD_CFG1 . Format_Always = 0; CD_CFG1 . Without_Backgr = 0; CD_CFG1 . Futura_Ampliac = 0; }