First commit 09/04/1995
This commit is contained in:
312
CD_CFG.CPP
Normal file
312
CD_CFG.CPP
Normal file
@ -0,0 +1,312 @@
|
||||
#include <dos.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <conio.h> // Para getch();
|
||||
#include <graphics.h> // 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<63>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;
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F> <20>
|
||||
//<2F> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20> <20><><EFBFBD> <20><> <20><><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
|
||||
//<2F> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20> <20> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>
|
||||
//<2F> <20> <20> <20> <20><><EFBFBD> <20> <20> <20> <20><><EFBFBD><EFBFBD> <20> <20> <20> <20> <20><><EFBFBD><EFBFBD> <20>
|
||||
//<2F> <20>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Abre_Ficha_CD_CFG(int R_W){
|
||||
|
||||
char ArchivoDatos[]="C:\\CD_out.CFG";
|
||||
char Memoria;
|
||||
CFG = 1;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//
|
||||
//<2F> CD_in Apertura de Indice, y Datos, o creaci<63>n... <20>//
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//
|
||||
|
||||
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<63>n %c %c", CR, LF, BEEP, CR, LF, CR, LF );
|
||||
sprintf( CD_cabecera1.Comentario_Inicial, "Jos<EFBFBD> David Guill<6C>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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user