--- np2/x11/main.c 2004/03/23 15:16:43 1.14 +++ np2/x11/main.c 2007/01/23 15:48:20 1.27 @@ -10,8 +10,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -48,6 +46,7 @@ #include "toolwin.h" #include "viewer.h" #include "debugwin.h" +#include "skbdwin.h" #include "commng.h" #include "fontmng.h" @@ -101,7 +100,6 @@ sighandler(int signo) static struct option longopts[] = { { "config", required_argument, 0, 'c' }, { "timidity-config", required_argument, 0, 'C' }, - { "shared-pixmap", no_argument, 0, 'p' }, #if defined(USE_SDL) || defined(USE_SYSMENU) { "ttfont", required_argument, 0, 't' }, #endif @@ -120,7 +118,6 @@ usage(void) printf("\t--help [-h] : print this message\n"); printf("\t--config [-c] : specify config file\n"); printf("\t--timidity-config [-C] : specify timidity config file\n"); - printf("\t--shared-pixmap [-p] : use MIT-SHM pixmap extention\n"); #if defined(USE_SDL) || defined(USE_SYSMENU) printf("\t--ttfont [-t] : specify TrueType font\n"); #endif @@ -139,14 +136,13 @@ 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:t:ph", longopts, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "c:C:t:vh", longopts, NULL)) != -1) { switch (ch) { case 'c': if (stat(optarg, &sb) < 0 || !S_ISREG(sb.st_mode)) { @@ -177,8 +173,8 @@ main(int argc, char *argv[]) milstr_ncpy(fontfilename, optarg, sizeof(fontfilename)); break; - case 'p': - shared_pixmap_flag = TRUE; + case 'v': + verbose = 1; break; case 'h': @@ -248,16 +244,15 @@ main(int argc, char *argv[]) initload(); toolwin_readini(); kdispwin_readini(); + skbdwin_readini(); rand_setseed((SINT32)time(NULL)); -#if defined(__GNUC__) && (defined(i386) || defined(__i386__)) +#if defined(GCC_CPU_ARCH_IA32) mmxflag = havemmx() ? 0 : MMXFLAG_NOTSUPPORT; mmxflag += np2oscfg.disablemmx ? MMXFLAG_DISABLE : 0; #endif - use_shared_pixmap = np2oscfg.shared_pixmap && shared_pixmap_flag; - TRACEINIT(); if (fontmng_init() != SUCCESS) @@ -265,12 +260,13 @@ main(int argc, char *argv[]) kdispwin_initialize(); viewer_init(); + skbdwin_initialize(); toolkit_widget_create(); scrnmng_initialize(); kbdmng_init(); inputmng_init(); - keystat_reset(); + keystat_initialize(); scrnmode = 0; if (np2cfg.RASTER) { @@ -284,7 +280,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 "/wav/fddseek.wav"); + result = soundmng_pcmload(SOUND_PCMSEEK, SYSRESPATH "/fddseek.wav"); } if (result) { soundmng_pcmvolume(SOUND_PCMSEEK, np2cfg.MOTORVOL); @@ -292,13 +288,14 @@ main(int argc, char *argv[]) result = soundmng_pcmload(SOUND_PCMSEEK1, file_getcd("fddseek1.wav")); if (!result) { - result = soundmng_pcmload(SOUND_PCMSEEK1, SYSRESPATH "/wav/fddseek1.wav"); + result = soundmng_pcmload(SOUND_PCMSEEK1, SYSRESPATH "/fddseek1.wav"); } if (result) { soundmng_pcmvolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL); } } + joymng_initialize(); mousemng_initialize(); if (np2oscfg.MOUSE_SW) { mouse_running(MOUSE_ON); @@ -308,7 +305,6 @@ main(int argc, char *argv[]) sysmng_initialize(); taskmng_initialize(); - joy_init(); pccore_init(); S98_init(); @@ -324,17 +320,21 @@ main(int argc, char *argv[]) if (np2oscfg.keydisp) { kdispwin_create(); } + if (np2oscfg.softkbd) { + skbdwin_create(); + } } +#if !defined(CPUCORE_IA32) if (np2oscfg.resume) { flagload(np2resumeext, "Resume", FALSE); } +#endif sysmng_workclockreset(); drvmax = (argc < 4) ? argc : 4; for (i = 0; i < drvmax; i++) { - milstr_ncpy(diskdrv_fname[i],argv[i],sizeof(diskdrv_fname[0])); - diskdrv_delay[i] = 1; + diskdrv_readyfdd(i, argv[i], 0); } setup_signal(SIGINT, sighandler); @@ -345,17 +345,21 @@ main(int argc, char *argv[]) kdispwin_destroy(); toolwin_destroy(); + skbdwin_destroy(); pccore_cfgupdate(); mouse_running(MOUSE_OFF); + joymng_deinitialize(); S98_trash(); +#if !defined(CPUCORE_IA32) if (np2oscfg.resume) { flagsave(np2resumeext); } else { flagdelete(np2resumeext); } +#endif pccore_term(); debugwin_destroy(); @@ -374,8 +378,11 @@ fontmng_failure: initsave(); toolwin_writeini(); kdispwin_writeini(); + skbdwin_writeini(); } + skbdwin_deinitialize(); + TRACETERM(); dosio_term();