Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1379 → Rev 1378

/demos/trunk/jumpball/demo.c
18,11 → 18,11
 
/**
------------
CVS : $Id: demo.c,v 1.5 2004-04-17 17:16:46 giacomo Exp $
CVS : $Id: demo.c,v 1.4 2003-05-01 19:43:16 pj Exp $
 
File: $File$
Revision: $Revision: 1.5 $
Last update: $Date: 2004-04-17 17:16:46 $
Revision: $Revision: 1.4 $
Last update: $Date: 2003-05-01 19:43:16 $
------------
**/
 
49,7 → 49,12
#include <kernel/func.h>
#include <string.h>
#include <stdlib.h>
#include <drivers/keyb.h>
#include <drivers/glib.h>
 
/* graphic mutex... */
mutex_t mutex;
 
/* useful colors... */
int white;
int black;
56,75 → 61,8
int red;
int gray;
 
PID shutdown_task_PID = -1;
void app_mutex_init(mutex_t *m);
 
int device_drivers_close() {
FB26_close(FRAME_BUFFER_DEVICE);
KEYB26_close();
INPUT26_close();
return 0;
}
 
int device_drivers_init() {
 
int res;
 
KEYB_PARMS kparms = BASE_KEYB;
LINUXC26_register_module();
 
PCI26_init();
 
INPUT26_init();
 
keyb_def_ctrlC(kparms, NULL);
 
KEYB26_init(&kparms);
 
FB26_init();
res = FB26_open(FRAME_BUFFER_DEVICE);
if (res) {
cprintf("Error: Cannot open graphical mode\n");
KEYB26_close();
INPUT26_close();
sys_end();
}
FB26_use_grx(FRAME_BUFFER_DEVICE);
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16");
return 0;
 
}
 
TASK shutdown_task_body(void *arg) {
 
device_drivers_close();
 
sys_shutdown_message("-- S.Ha.R.K. Closed --\n");
 
sys_end();
 
return NULL;
 
}
 
void set_shutdown_task() {
 
NRT_TASK_MODEL nrt;
 
nrt_task_default_model(nrt);
 
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL);
if (shutdown_task_PID == NIL) {
sys_shutdown_message("Error: Cannot create shutdown task\n");
sys_end();
}
 
}
 
static void version( void )
{
cprintf( "S.Ha.R.K. Jumpball Demo 1.0\n" );
197,9 → 135,17
#endif
}
 
void my_close(void *arg)
{
grx_close();
kern_printf("my_close\n");
}
 
 
void endfun(KEY_EVT *k)
{
task_activate(shutdown_task_PID);
cprintf("Ending...\n");
sys_end();
}
 
void zerofun(KEY_EVT *k)
210,38 → 156,43
 
int main(int argc, char **argv)
{
int modenum;
 
KEY_EVT k;
 
srand(4);
 
version();
 
set_shutdown_task();
 
device_drivers_init();
 
srand(4);
 
keyb_set_map(itaMap);
k.flag = CNTR_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
k.flag = CNTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
k.flag = ALTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,zerofun,FALSE);
keyb_hook(k,zerofun);
k.flag = 0;
k.scan = KEY_ENT;
k.ascii = 13;
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
 
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT);
 
 
grx_init();
modenum = grx_getmode(640, 480, 16);
 
grx_setmode(modenum);
 
/* init the graphic mutex */
app_mutex_init(&mutex);
 
/* useful colors ... */
white = rgb16(255,255,255);
black = rgb16(0,0,0);