--- np2/x11/main.c 2003/11/16 16:43:45 1.1 +++ np2/x11/main.c 2003/11/28 16:29:57 1.8 @@ -42,7 +42,7 @@ #include "timing.h" #include "toolkit.h" -#include "keydisp.h" +#include "kdispwin.h" #include "toolwin.h" #include "commng.h" @@ -94,6 +94,7 @@ sighandler(int signo) static struct option longopts[] = { { "config", required_argument, 0, 'c' }, { "timidity-config", required_argument, 0, 'C' }, + { "shared-pixmap", no_argument, 0, 'p' }, { "help", no_argument, 0, 'h' }, { 0, 0, 0, 0 }, }; @@ -104,7 +105,7 @@ static void usage(void) { - printf("Usage: %s [options] [[FD0 image] [[FD1 image] [[FD2 image] [FD3 image]]]]\n", progname); + printf("Usage: %s [options] [[FD1 image] [[FD2 image] [[FD3 image] [FD4 image]]]]\n", progname); exit(1); } @@ -120,13 +121,14 @@ main(int argc, char *argv[]) int rv = 1; int ch; int i, drvmax; + BOOL shared_pixmap_flag = FALSE; progname = argv[0]; toolkit_initialize(); toolkit_arginit(&argc, &argv); - while ((ch = getopt_long(argc, argv, "c:C:h", longopts, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "c:C:nh", longopts, NULL)) != -1) { switch (ch) { case 'c': if (stat(optarg, &sb) < 0 || !S_ISREG(sb.st_mode)) { @@ -149,6 +151,10 @@ main(int argc, char *argv[]) sizeof(timidity_cfgfile_path)); break; + case 'p': + shared_pixmap_flag = TRUE; + break; + case 'h': case '?': default: @@ -203,12 +209,19 @@ main(int argc, char *argv[]) } } } + if (timidity_cfgfile_path[0] == '\0') { + file_cpyname(timidity_cfgfile_path, modulefile, + sizeof(timidity_cfgfile_path)); + file_cutname(timidity_cfgfile_path); + file_catname(timidity_cfgfile_path, "timidity.cfg", + sizeof(timidity_cfgfile_path)); + } dosio_init(); file_setcd(modulefile); initload(); toolwin_readini(); - keydisp_readini(); + kdispwin_readini(); rand_setseed((SINT32)time(NULL)); @@ -217,10 +230,14 @@ main(int argc, char *argv[]) mmxflag += np2oscfg.disablemmx ? MMXFLAG_DISABLE : 0; #endif + use_shared_pixmap = np2oscfg.shared_pixmap && shared_pixmap_flag; + TRACEINIT(); keystat_reset(); + kdispwin_initialize(); + toolkit_widget_create(); scrnmng_initialize(); kbdmng_init(); @@ -235,7 +252,7 @@ main(int argc, char *argv[]) if (soundmng_initialize() == SUCCESS) { result = soundmng_pcmload(SOUND_PCMSEEK, file_getcd("fddseek.wav")); if (!result) { - result = soundmng_pcmload(SOUND_PCMSEEK, SYSRESPATH "/fddseek.wav"); + result = soundmng_pcmload(SOUND_PCMSEEK, SYSRESPATH "/wav/fddseek.wav"); } if (result) { soundmng_pcmvolume(SOUND_PCMSEEK, np2cfg.MOTORVOL); @@ -243,7 +260,7 @@ main(int argc, char *argv[]) result = soundmng_pcmload(SOUND_PCMSEEK1, file_getcd("fddseek1.wav")); if (!result) { - soundmng_pcmload(SOUND_PCMSEEK1, SYSRESPATH "/fddseek1.wav"); + result = soundmng_pcmload(SOUND_PCMSEEK1, SYSRESPATH "/wav/fddseek1.wav"); } if (result) { soundmng_pcmvolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL); @@ -272,7 +289,7 @@ main(int argc, char *argv[]) toolwin_create(); } if (np2oscfg.keydisp) { - keydisp_create(); + kdispwin_create(); } } @@ -295,7 +312,7 @@ main(int argc, char *argv[]) np2running = FALSE; rv = 0; - keydisp_destroy(); + kdispwin_destroy(); toolwin_destroy(); pccore_cfgupdate(); @@ -318,11 +335,13 @@ resource_cleanup: if (sys_updates & (SYS_UPDATECFG|SYS_UPDATEOSCFG)) { initsave(); toolwin_writeini(); - keydisp_writeini(); + kdispwin_writeini(); } TRACETERM(); dosio_term(); + toolkit_terminate(); + return rv; }