Files
sibo-playground/code/SIBOSDK/hwifsrc/rhwif.c
2026-07-06 18:01:36 +01:00

75 lines
1.7 KiB
C

/*
RHWIF.C
Started by DavidW, 1/11/92
Resource file extension to Hwif
*/
#include <appman.g>
#include <wlib.h>
#include <hwif.h>
#include <hwif.g>
#include <epoc.h>
#include <p_gen.h>
#include <s_.rsg>
GLREF_D PR_APPMAN *w_am;
GLREF_D WORD DatLocked;
GLREF_D VOID *DatCommandPtr;
GLDEF_C VOID hDeclareAppRcb(VOID *rcb)
{
w_am->appman.rcb=rcb;
}
GLDEF_C VOID *hInitAppRcb(VOID)
{ /* create and initialise resource file object */
INT ret;
VOID *rcb; /* resource file object handle */
rcb=p_new(1,C_RSCFILE);
ret=p_entersend3(rcb,O_RS_INIT,DatCommandPtr); /* pass file name */
if (ret<0) /* no resource file found */
p_exit(ret); /* fatal (programmer) error */
hDeclareAppRcb(rcb);
return(rcb);
}
GLDEF_C INT hSetSystemResLang(INT lang)
{
TEXT name[12]; /* eg "ROM::s_.~04" */
P_INFO junk;
VOID *srcb;
INT ret;
p_atos(&name[0],"ROM::S_.~%02d",lang);
if (p_finfo(&name[0],&junk))
return(E_FILE_NXIST);
srcb=p_new(CAT_HWIF_OLIB,C_RSCFILE);
if (!srcb)
return(E_GEN_NOMEMORY);
ret=p_entersend3(srcb,O_RS_INIT,&name[0]);
if (!ret)
{
p_send2(w_am->appman.srcb,O_DESTROY);
w_am->appman.srcb=srcb;
}
return(ret);
}
GLDEF_C VOID hRequestReplacePack(VOID *rcb,TEXT *fname)
{
TEXT buf[50];
p_send4(w_am,O_AM_LOAD_RES_BUF,-SYS_REPLACE_DISK,&buf[0]);
do
{
DatLocked++;
wsAlertW(WS_ALERT_CLIENT,0,&buf[0],0);
DatLocked--;
} while (p_entersend3(rcb,O_RS_INIT,fname)<0);
}