home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Spanish Scene 3
/
SpanishScene3.iso
/
programas
/
d_barbion-ind
/
backclock-2_24.lha
/
BackClock
/
sources
/
conf.c
next >
Wrap
C/C++ Source or Header
|
1998-05-31
|
3KB
|
117 lines
/*****************************************************************************
*
* name : conf.c
* description : load & save prefs file
* version : 1.1a
*
* created : 08-03-98
* last change : 31-05-98
*
*****************************************************************************
*/
#include <dos/dos.h>
#include <exec/memory.h>
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/intuition.h>
#include <string.h>
#include "utils.h"
#include "conf.h"
#include "obp.h"
void SaveEnv(idWin * prj, BOOL envarc) {
UBYTE * txtform = NULL ;
if (!SaveConf(prj, CF_NAMEENV)) {
/* error during saving
*/
if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
/* open an info request
*/
strcat(txtform, ERR_ENV) ;
Fault(prj->lastError, ERR_ENV, txtform, 100) ;
ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
FreeVec(txtform) ;
}
}
if (envarc) {
if (!SaveConf(prj, CF_NAMEENVARC)) {
/* error during saving
*/
if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
/* open an info request
*/
strcat(txtform, ERR_ENVARC) ;
Fault(prj->lastError, ERR_ENVARC, txtform, 100) ;
ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
FreeVec(txtform) ;
}
}
}
}
BOOL SaveConf(idWin * prj, UBYTE * fl_name) {
struct ConfFile cf_save ;
ULONG file ;
BOOL ret=FALSE ;
int i ;
CopyMem("BACK", cf_save.id, 4) ;
cf_save.posX = prj->backWin.posX ;
cf_save.posY = prj->backWin.posY ;
cf_save.lenX = prj->backWin.width ;
cf_save.lenY = prj->backWin.height ;
for(i = 0; i<NUM_COLORS; i++)
CopyMem(&(prj->backWin.cmap[i]), &(cf_save.cmap[i]), sizeof(struct RGB)) ;
cf_save.fill = prj->backWin.fill ;
if (cf_save.fill !=0) cf_save.fill = -1 ;
if (file = Open(fl_name, MODE_NEWFILE)) {
Write(file, &cf_save, sizeof(struct ConfFile)) ;
Close(file) ;
prj->lastError = OK ;
ret=TRUE ;
}else prj->lastError = IoErr() ;
return ret ;
}
BOOL LoadConf(idWin * prj) {
/* Reload configuration file
*/
struct ConfFile cf_load ;
ULONG file ;
BOOL ret = FALSE ;
int i ;
if (file = Open("ENV:backclock.prefs", MODE_OLDFILE)) {
Read(file, &cf_load, sizeof(struct ConfFile)) ;
prj->backWin.posX = cf_load.posX ;
prj->backWin.posY = cf_load.posY ;
prj->backWin.width = cf_load.lenX ;
prj->backWin.height = cf_load.lenY ;
for(i = 0; i < NUM_COLORS; i++)
CopyMem(&(cf_load.cmap[i]), &(prj->backWin.cmap[i]), sizeof(struct RGB)) ;
prj->backWin.fill = (BOOL)cf_load.fill ;
initColors(prj) ;
ret = TRUE ;
prj->lastError = OK ;
Close(file) ;
}else {
prj->lastError = IoErr() ;
prj->backWin.posX = 0 ;
prj->backWin.posY = 0 ;
prj->backWin.width = 100 ;
prj->backWin.height = 100 ;
prj->backWin.cmap[COL_SEC].reg = (UBYTE)getPen(prj, 0, 100, 200) ;
prj->backWin.cmap[COL_MIN].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
prj->backWin.cmap[COL_HEU].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
prj->backWin.cmap[COL_TIC].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
prj->backWin.cmap[COL_BAC].reg = (UBYTE)getPen(prj, 255, 0, 0) ;
prj->backWin.fill = -1 ;
}
return(ret) ;
}