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); |