Common subdirectories: xlvns.orig/CVS and xlvns.new/CVS Common subdirectories: xlvns.orig/English.lproj and xlvns.new/English.lproj Common subdirectories: xlvns.orig/Japanese.lproj and xlvns.new/Japanese.lproj diff -c -N -B xlvns.orig/Lvns.h xlvns.new/Lvns.h *** xlvns.orig/Lvns.h Mon Jul 29 14:24:38 2002 --- xlvns.new/Lvns.h Wed Feb 16 15:45:23 2005 *************** *** 55,64 **** #endif #ifndef USE_MGL ! #define VERSION "LEAF Visual Novel System for X\n"\ ! " ==== XLVNS 1-2-3 Ver 3.0beta ====\n"\ ! "(c) Copyright 1999,2000 Go Watanabe\n"\ ! "Original LVNS (c)LEAF/AQUAPLUS\n" #else #define VERSION "LEAF Visual Novel System for MGL2\n"\ " ==== mglvns 1-2-3 Ver 1.0beta ====\n"\ --- 55,61 ---- #endif #ifndef USE_MGL ! #define VERSION "LEAF Visual Novel System for X\n ==== XLVNS 1-2-3 Ver 3.0beta ====\n(c) Copyright 1999,2000 Go Watanabe\nOriginal LVNS (c)LEAF/AQUAPLUS\n" #else #define VERSION "LEAF Visual Novel System for MGL2\n"\ " ==== mglvns 1-2-3 Ver 1.0beta ====\n"\ diff -c -N -B xlvns.orig/LvnsCoreSound.c xlvns.new/LvnsCoreSound.c *** xlvns.orig/LvnsCoreSound.c Mon Jul 29 14:24:38 2002 --- xlvns.new/LvnsCoreSound.c Wed Feb 16 15:45:17 2005 *************** *** 22,27 **** --- 22,32 ---- #include #include "LvnsCoreP.h" + #include "audioinfo.h" /* SOUND-audio Control */ + + u_char *sound_data = NULL; + size_t sound_len; + AUDIOInfo *ainfo; /* * サウンドプロセス通信処理エンジン *************** *** 30,35 **** --- 35,41 ---- static void SoundControl(XtPointer cl, int *fd, XtInputId *id) { + #if 0 char buf[100]; size_t len; LvnsCoreWidget lcw = (LvnsCoreWidget) cl; *************** *** 45,63 **** --- 51,76 ---- LCW.sound_ctl_id = None; } } + #endif } + /* * データ読み込み */ static void LoadSound(LvnsCoreWidget lcw, const char* name) { + #if 1 + Lvns *lvns = LCW.info; + sound_data = LvnsLoadData(lvns, name, &sound_len); + #else char buf[100]; if (LCW.sound_ctl_fd >= 0 && LCW.sound_ctl_id == None) { snprintf(buf, sizeof buf, "L%s\n", name); write(LCW.sound_ctl_fd, buf, strlen(buf)); } + #endif } /* *************** *** 66,71 **** --- 79,91 ---- static void StartSound(LvnsCoreWidget lcw) { + #if 1 + /* 演奏開始 */ + if (sound_data) { + audioinfo_play(ainfo, sound_data, sound_len); + } + + #else /* 複数のサウンドは同時に鳴らせない… */ if (LCW.sound_ctl_fd >= 0 && LCW.sound_ctl_id == None) { XtAppContext app = XtWidgetToApplicationContext((Widget)lcw); *************** *** 76,81 **** --- 96,102 ---- SoundControl, lcw); } + #endif } /* *************** *** 84,93 **** --- 105,120 ---- static void StopSound(LvnsCoreWidget lcw) { + #if 1 + if (sound_data) + free(sound_data); + sound_data = NULL; + #else dprintf((stderr, "stop sound\n")); if (LCW.sound_ctl_fd >= 0 && LCW.sound_ctl_id) { write(LCW.sound_ctl_fd, "E\n", 2); } + #endif } /* *************** *** 96,106 **** --- 123,141 ---- static int GetSoundState(LvnsCoreWidget lcw) { + #if 1 + if(Mix_Playing(0) == 0){ + return True; + }else{ + return False; + } + #else if (LCW.sound_ctl_fd >= 0 && LCW.sound_ctl_id) { return True; } else { return False; } + #endif } /* *************** *** 124,133 **** /* * サウンド処理用子プロセス */ - #include "audioinfo.h" /* SOUND-audio Control */ static void OpenSound(LvnsCoreWidget lcw) { Lvns *lvns = LCW.info; char *devicename; AUDIOInfo *ainfo; --- 159,168 ---- /* * サウンド処理用子プロセス */ static void OpenSound(LvnsCoreWidget lcw) { + #if 0 Lvns *lvns = LCW.info; char *devicename; AUDIOInfo *ainfo; *************** *** 176,183 **** } while (fgets(buf, sizeof buf, fp)) { ! char *p; if ((p = strchr(buf, '\n'))) { *p = '\0'; } --- 211,219 ---- } while (fgets(buf, sizeof buf, fp)) { ! char *p; + if ((p = strchr(buf, '\n'))) { *p = '\0'; } *************** *** 206,211 **** --- 242,248 ---- } } exit(0); + #endif } void diff -c -N -B xlvns.orig/MadWrapper.c xlvns.new/MadWrapper.c *** xlvns.orig/MadWrapper.c Thu Jan 1 00:00:00 1970 --- xlvns.new/MadWrapper.c Wed Feb 16 15:45:18 2005 *************** *** 0 **** --- 1,287 ---- + /* -*- C++ -*- + * + * MadWrapper.h - SMPEG compatible wrapper functions for MAD: Mpeg Audio Decoder + * + * Copyright (c) 2001-2005 Ogapee. All rights reserved. + * + * ogapee@aqua.dti2.ne.jp + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + #include "MadWrapper.h" + #include + + SDL_AudioSpec audio_format; + extern bool audio_open_flag; + extern SMPEG *mp3_sample; + Mix_Chunk *wave_sample[MAX_CHANNELS]; + + void mp3callback( void *userdata, Uint8 *stream, int len ) + { + if ( SMPEG_playAudio( (SMPEG*)userdata, stream, len ) == 0 ){ + MAD_WRAPPER_replay( mp3_sample ); + } + } + + void waveCallback( int channel ) + { + return; + } + + void openAudio() + { + if ( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, DEFAULT_AUDIOBUF ) < 0 ){ + fprintf(stderr, "Couldn't open audio device!\n" + " reason: [%s].\n", SDL_GetError()); + audio_open_flag = false; + } + else{ + int freq; + Uint16 format; + int channels; + + Mix_QuerySpec( &freq, &format, &channels); + printf("Opened audio at %d Hz %d bit %s\n", freq, + (format&0xFF), + (channels > 1) ? "stereo" : "mono"); + audio_format.format = format; + audio_format.freq = freq; + audio_format.channels = channels; + + audio_open_flag = true; + + Mix_AllocateChannels( MAX_CHANNELS ); + //Mix_ChannelFinished( waveCallback ); + } + } + + void initSDL() + { + /* ---------------------------------------- */ + /* Initialize SDL */ + int i; + + if ( SDL_Init( SDL_INIT_TIMER | SDL_INIT_AUDIO ) < 0 ){ + fprintf( stderr, "Couldn't initialize SDL: %s\n", SDL_GetError() ); + exit(-1); + } + atexit(SDL_Quit); + + openAudio(); + + for (i=0 ; i= MAD_F_ONE) + Fixed = MAD_F_ONE - 1; + else if (Fixed < -MAD_F_ONE) + Fixed = -MAD_F_ONE; + Fixed = Fixed >> (MAD_F_FRACBITS-15); + return ((unsigned short)Fixed); + } + + struct _MAD_WRAPPER{ + SDL_RWops *src; + Uint32 length; + struct mad_stream Stream; + struct mad_frame Frame; + struct mad_synth Synth; + bool is_playing; + int volume; + + unsigned char *input_buf; + unsigned char *output_buf; + unsigned long output_buf_index; + }; + + static MAD_WRAPPER* init( SDL_RWops *src ) + { + MAD_WRAPPER *mad = malloc(sizeof(MAD_WRAPPER)); + + SDL_RWseek( src, 0, SEEK_END ); + mad->length = SDL_RWtell( src ); + SDL_RWseek( src, 0, SEEK_SET ); + + mad->src = src; + + mad_stream_init( &mad->Stream ); + mad_frame_init( &mad->Frame ); + mad_synth_init( &mad->Synth ); + mad->volume = 64; + + mad->input_buf = malloc(sizeof(unsigned char)*INPUT_BUFFER_SIZE); + mad->output_buf = malloc(sizeof(unsigned char)*(1152*4*5)); /* 1152 because that's what mad has as a max; *4 because */ + mad->output_buf_index = 0; + + mad->is_playing = false; + + return mad; + } + + MAD_WRAPPER* MAD_WRAPPER_new( const char *file, void* info, int sdl_audio ) + { + SDL_RWops *src; + + src = SDL_RWFromFile( file, "rb" ); + if ( !src ) return NULL; + + return init( src ); + } + + MAD_WRAPPER* MAD_WRAPPER_new_rwops( SDL_RWops *src, void* info, int sdl_audio ) + { + return init( src ); + } + + int MAD_WRAPPER_playAudio( void *userdata, Uint8 *stream, int len ) + { + MAD_WRAPPER *mad = (MAD_WRAPPER*)userdata; + size_t ReadSize = 1, Remaining; + unsigned char *ReadStart; + + + if ( !mad->is_playing ) return -1; // pause + + do{ + if( mad->Stream.buffer==NULL || mad->Stream.error==MAD_ERROR_BUFLEN ){ + + if ( mad->Stream.next_frame != NULL ){ + Remaining = mad->Stream.bufend - mad->Stream.next_frame; + memmove( mad->input_buf, mad->Stream.next_frame, Remaining); + ReadStart = mad->input_buf + Remaining; + ReadSize = INPUT_BUFFER_SIZE - Remaining; + } + else{ + ReadSize = INPUT_BUFFER_SIZE; + ReadStart = mad->input_buf; + Remaining = 0; + } + + ReadSize = SDL_RWread( mad->src, ReadStart, 1, ReadSize ); + if ( ReadSize <= 0 ) break; // end of stream + + mad_stream_buffer( &mad->Stream, mad->input_buf, ReadSize + Remaining ); + mad->Stream.error = MAD_ERROR_NONE; + } + + if ( mad_frame_decode( &mad->Frame,&mad->Stream ) ){ + if ( MAD_RECOVERABLE( mad->Stream.error ) || + mad->Stream.error == MAD_ERROR_BUFLEN ){ + continue; + } + else{ + fprintf( stderr, "unrecoverable frame level error (%s).\n", + mad_stream_errorstr(&mad->Stream) ); + return 0; // error + } + } + + if ( mad->Frame.header.samplerate == 44100 ) + mad->Frame.options |= MAD_OPTION_HALFSAMPLERATE; + mad_synth_frame( &mad->Synth, &mad->Frame ); + { + char *ptr = (char*)mad->output_buf + mad->output_buf_index; + int i; + + for ( i=0 ; iSynth.pcm.length ; i++ ){ + unsigned short Sample; + + /* Left channel */ + Sample=MadFixedToUshort( mad->Synth.pcm.samples[0][i] ); + #if SDL_BYTEORDER == SDL_LIL_ENDIAN + *(ptr++) = Sample & 0xff; + *(ptr++) = Sample >> 8; + #else + *(ptr++) = Sample >> 8; + *(ptr++) = Sample & 0xff; + #endif + + /* Right channel, if exist. */ + if ( MAD_NCHANNELS(&mad->Frame.header)==2 ) + Sample=MadFixedToUshort( mad->Synth.pcm.samples[1][i] ); + #if SDL_BYTEORDER == SDL_LIL_ENDIAN + *(ptr++) = Sample & 0xff; + *(ptr++) = Sample >> 8; + #else + *(ptr++) = Sample >> 8; + *(ptr++) = Sample&0xff; + #endif + } + } + mad->output_buf_index += mad->Synth.pcm.length * 4; + } + while( mad->output_buf_index < len ); + + if ( ReadSize <= 0 ) return 0; // end of stream + + if ( mad->output_buf_index > len ){ + SDL_MixAudio( stream, mad->output_buf, len, mad->volume ); + memmove( mad->output_buf, mad->output_buf + len, mad->output_buf_index - len ); + mad->output_buf_index -= len; + } + else{ + SDL_MixAudio( stream, mad->output_buf, mad->output_buf_index, mad->volume ); + len = mad->output_buf_index; + mad->output_buf_index = 0; + } + + return len; + } + + void MAD_WRAPPER_replay( MAD_WRAPPER *mad ) + { + SDL_RWseek( mad->src, 0, SEEK_SET ); + mad->output_buf_index = 0; + mad->is_playing = true; + } + + void MAD_WRAPPER_play( MAD_WRAPPER *mad ) + { + mad->is_playing = true; + } + + void MAD_WRAPPER_stop( MAD_WRAPPER *mad ) + { + mad->is_playing = false; + } + + void MAD_WRAPPER_delete( MAD_WRAPPER *mad ) + { + mad_synth_finish( &mad->Synth ); + mad_frame_finish( &mad->Frame ); + mad_stream_finish( &mad->Stream ); + + free(mad->input_buf); + free(mad->output_buf); + SDL_FreeRW( mad->src ); + free(mad); + } + + void MAD_WRAPPER_setvolume( MAD_WRAPPER *mad, int volume ) + { + if ( (volume >= 0) && (volume <= 100) ) { + mad->volume = (volume*SDL_MIX_MAXVOLUME) / 100; + } + } + + const char* MAD_WRAPPER_error( MAD_WRAPPER *mad ) + { + if ( mad ) return NULL; + return "Mad open error"; + } + diff -c -N -B xlvns.orig/MadWrapper.h xlvns.new/MadWrapper.h *** xlvns.orig/MadWrapper.h Thu Jan 1 00:00:00 1970 --- xlvns.new/MadWrapper.h Wed Feb 16 15:45:24 2005 *************** *** 0 **** --- 1,74 ---- + /* -*- C++ -*- + * + * MadWrapper.h - SMPEG compatible wrapper functions for MAD: Mpeg Audio Decoder + * + * Copyright (c) 2001-2004 Ogapee. All rights reserved. + * + * ogapee@aqua.dti2.ne.jp + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + #ifndef __MAD_WRAPPER_H__ + #define __MAD_WRAPPER_H__ + + #include + #include + #include + #include + + typedef struct _WAV_DATA{ + const char *data; + size_t size; + } WAV_DATA; + + typedef unsigned char bool; + #define size_t unsigned int + #define false 0 + #define true 1 + + #define DEFAULT_AUDIOBUF 4096 + #define MAX_CHANNELS 1 + #define INPUT_BUFFER_SIZE (5*8192) + + enum { WAVE_PLAY = 0, + WAVE_PRELOAD = 1, + WAVE_PLAY_LOADED = 2 + }; + + typedef struct _MAD_WRAPPER MAD_WRAPPER; + + MAD_WRAPPER* MAD_WRAPPER_new( const char *file, void* info, int sdl_audio ); + MAD_WRAPPER* MAD_WRAPPER_new_rwops( SDL_RWops *src, void* info, int sdl_audio ); + int MAD_WRAPPER_playAudio( void *userdata, Uint8 *stream, int len ); + void MAD_WRAPPER_stop( MAD_WRAPPER *mad ); + void MAD_WRAPPER_replay( MAD_WRAPPER *mad ); + void MAD_WRAPPER_play( MAD_WRAPPER *mad ); + void MAD_WRAPPER_delete( MAD_WRAPPER *mad ); + void MAD_WRAPPER_setvolume( MAD_WRAPPER *mad, int volume ); + const char* MAD_WRAPPER_error( MAD_WRAPPER *mad ); + + #define SMPEG_new MAD_WRAPPER_new + #define SMPEG_new_rwops MAD_WRAPPER_new_rwops + #define SMPEG_playAudio MAD_WRAPPER_playAudio + #define SMPEG_play MAD_WRAPPER_play + #define SMPEG_stop MAD_WRAPPER_stop + #define SMPEG_delete MAD_WRAPPER_delete + #define SMPEG_setvolume MAD_WRAPPER_setvolume + #define SMPEG MAD_WRAPPER + #define SMPEG_error MAD_WRAPPER_error + + #endif // __MAD_WRAPPER_H__ + diff -c -N -B xlvns.orig/Makefile xlvns.new/Makefile *** xlvns.orig/Makefile Thu Jan 1 00:00:00 1970 --- xlvns.new/Makefile Wed Feb 16 16:15:11 2005 *************** *** 0 **** --- 1,1155 ---- + # Makefile generated by imake - do not edit! + # $Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $ + + # ---------------------------------------------------------------------- + # Makefile generated from "Imake.tmpl" and + # $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $ + # + # + # + # + # $XFree86: xc/config/cf/Imake.tmpl,v 3.156 2004/01/12 21:43:18 herrb Exp $ + # ---------------------------------------------------------------------- + + all:: + + .SUFFIXES: .i + + # $Xorg: Imake.cf,v 1.4 2000/08/17 19:41:45 cpqbld Exp $ + + # $XFree86: xc/config/cf/Imake.cf,v 3.89 2004/01/25 01:12:20 dawes Exp $ + + # Keep cpp from replacing path elements containing i486/i586/i686 + + # ----------------------------------------------------------------------- + # site-specific configuration parameters that need to come before + # the platform-specific parameters - edit site.def to change + + # site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $ + + # site: $XFree86: xc/config/cf/site.def,v 3.25 2002/02/27 00:51:12 dawes Exp $ + + # $XFree86: xc/config/cf/xf86site.def,v 3.187 2003/09/06 23:38:04 dawes Exp $ + + # ---------------------------------------------------------------------- + # platform-specific configuration parameters - edit linux.cf to change + + # platform: $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $ + + # platform: $XFree86: xc/config/cf/linux.cf,v 3.221 2004/01/09 00:35:00 dawes Exp $ + + # operating system: Linux 2.4.26 i686 [ELF] (2.4.26) + # libc: (6.3.2) + # binutils: (214) + + # $Xorg: lnxLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $ + # $XFree86: xc/config/cf/lnxLib.rules,v 3.53 2004/01/27 01:37:39 dawes Exp $ + + # $XFree86: xc/config/cf/xfree86.cf,v 3.467 2004/01/28 01:47:26 dawes Exp $ + + # $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $ + + AFB_DEFS = -DUSE_AFB + + DRIVERSDKDIR = $(USRLIBDIR)/Server + DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules + DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include + + XF86SRC = $(SERVERSRC)/hw/xfree86 + XF86COMSRC = $(XF86SRC)/common + XF86PARSERSRC = $(XF86SRC)/parser + XF86OSSRC = $(XF86SRC)/os-support + XF86DRIVERSRC = $(XF86SRC)/drivers + DRIVERSRC = $(XF86DRIVERSRC) + + XFREE86DOCDIR = $(DOCDIR) + XFREE86PSDOCDIR = $(DOCPSDIR) + XFREE86PDFDOCDIR = $(DOCPDFDIR) + XFREE86HTMLDOCDIR = $(DOCHTMLDIR) + XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese + + # $Xorg: xf86.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $ + + # $XFree86: xc/config/cf/xf86.rules,v 3.35 2003/09/01 21:20:01 tsi Exp $ + + # ---------------------------------------------------------------------- + # site-specific configuration parameters that go after + # the platform-specific parameters - edit site.def to change + + # site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $ + + # site: $XFree86: xc/config/cf/site.def,v 3.25 2002/02/27 00:51:12 dawes Exp $ + + # --------------------------------------------------------------------- + # Imake rules for building libraries, programs, scripts, and data files + # rules: $Xorg: Imake.rules,v 1.3 2000/08/17 19:41:46 cpqbld Exp $ + # + # + # + # + # rules: $XFree86: xc/config/cf/Imake.rules,v 3.129 2004/02/16 18:14:33 dawes Exp $ + + _NULLCMD_ = @ echo -n + + X_BYTE_ORDER = X_LITTLE_ENDIAN + + GLIDE2INCDIR = + + GLIDE3INCDIR = + + GLIDE3LIBNAME = + + TKLIBNAME = + + TKLIBDIR = + + TCLLIBNAME = + + TCLIBDIR = + + PATHSEP = / + SHELL = /bin/sh -e + + TOP = . + CURRENT_DIR = . + + IMAKE = imake + DEPEND = gccmakedep + MKDIRHIER = mkdir -p + REVPATH = revpath + EXPORTLISTGEN = + RMAN = rman + RMANBASENAME = rman + RMANOPTIONS = -f HTML + CONFIGSRC = $(TOP)/config + IMAKESRC = $(CONFIGSRC)/imake + DEPENDSRC = $(CONFIGSRC)/util + + INCROOT = /opt/QtPalmtop/include + USRLIBDIR = /opt/QtPalmtop/lib + VARDIR = /var + VARLIBDIR = $(VARDIR)/lib + SYSTEMUSRLIBDIR = /opt/QtPalmtop/lib + SYSTEMUSRINCDIR = /opt/QtPalmtop/include + SHLIBDIR = /opt/QtPalmtop/lib + LINTLIBDIR = $(USRLIBDIR)/lint + MANPATH = /opt/QtPalmtop/X11R6/man + MANSOURCEPATH = $(MANPATH)/man + MANDIR = $(MANSOURCEPATH)1 + LIBMANDIR = $(MANSOURCEPATH)3 + FILEMANDIR = $(MANSOURCEPATH)5 + MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX) + DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX) + LOGDIRECTORY = $(VARDIR)/log + + VARRUNDIR = $(VARDIR)/run + + VARDBDIR = $(VARDIR)/lib + + AR = ar clq + + # Nice try but useless: make will inherit BOOTSTRAPCFLAGS + # from top Makefile + BOOTSTRAPCFLAGS = + + CC = gcc + AS = gcc -c -x assembler + + .SUFFIXES: .cc + + CXX = c++ + + CXXFILT = c++filt + + CXXLIB = -lstdc++ + + CXXDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing + CXXDEPENDINCLUDES = + CXXEXTRA_DEFINES = + CXXEXTRA_INCLUDES = + CXXSTD_DEFINES = -O2 -Dlinux -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE $(CXXPROJECT_DEFINES) + CXXOPTIONS = + CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES) + CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES) + CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES) + + COMPRESS = compress + GZIPCMD = gzip + + CPP = cpp $(STD_CPP_DEFINES) + RAWCPP = cpp -undef $(STD_CPP_OPTIONS) + PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES) + + INSTALL = install + INSTALLFLAGS = -c + + LD = gcc -nostdlib + + LEX = flex -l + M4 = m4 + M4FLAGS = + LEXLIB = -lfl + YACC = bison -y + CCYACC = bison -y + + LINT = lint + + LINTLIBFLAG = -C + LINTOPTS = -axz + LN = ln -s + MAKE = make + MV = mv -f + CP = cp + + RANLIB = ranlib + + RANLIBINSTFLAGS = + + RM = rm -f + PERL = perl + PERLOPTS = + PERLENVSETUP = env LC_ALL=C + MANSUFFIX = 1x + LIBMANSUFFIX = 3x + FILEMANSUFFIX = 5x + MISCMANSUFFIX = 7 + DRIVERMANSUFFIX = 4 + ADMINMANSUFFIX = 8 + MANSRCSUFFIX = man + MANNEWSUFFIX = _man + MANDEFS = -D__apploaddir__=$(XAPPLOADDIR) -D__filemansuffix__=$(FILEMANSUFFIX) -D__libmansuffix__=$(LIBMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__adminmansuffix__=$(ADMINMANSUFFIX) -D__projectroot__=$(PROJECTROOT) $(XORGMANDEFS) $(VENDORMANDEFS) + + COMPRESSMANCMD = gzip -n + + TROFF = groff -Tps + NROFF = nroff + + MSMACROS = -ms + MANMACROS = -man + TBL = tbl + EQN = eqn + NEQN = neqn + COL = col + COLFLAGS = -b + + MODCC = gcc + + MODCPP = cpp + MODCFLAGS = $(CFLAGS) + MODAS = gcc -c -x assembler + MODASFLAGS = + + MODLD = gcc -nostdlib + + MODLDFLAGS = + MODLDCOMBINEFLAGS = -r + MODAR = ar clq + + MODRANLIB = ranlib + + STD_INCLUDES = + STD_CPP_OPTIONS = -traditional + STD_CPP_DEFINES = -O2 -traditional -Dlinux -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE $(PROJECT_DEFINES) + STD_DEFINES = -O2 -Dlinux -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE $(PROJECT_DEFINES) + EXTRA_LOAD_FLAGS = + EXTRA_LDOPTIONS = + EXTRA_LIBRARIES = + TAGS = ctags + + PARALLELMFLAGS = + + SHAREDCODEDEF = + SHLIBDEF = + + SHLIBLDFLAGS = -shared $(SHLIBGLOBALSFLAGS) + + PICFLAGS = -fPIC + + CXXPICFLAGS = -fPIC + + PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO + + INSTPGMFLAGS = + + INSTBINFLAGS = -m 0755 + INSTUIDFLAGS = -m 4711 + INSTLIBFLAGS = -m 0644 + INSTINCFLAGS = -m 0444 + INSTMANFLAGS = -m 0444 + INSTDATFLAGS = -m 0444 + INSTKMEMFLAGS = -m 4711 + + PROJECTROOT = /opt/QtPalmtop/X11R6 + + CDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing + CCOPTIONS = + + ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES) + ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES) + CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES) + LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES) + LDPRELIB = -L$(USRLIBDIR) $(INSTALLED_LIBS) + LDPOSTLIB = + LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) + CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) + + LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) + + CCLINK = $(CC) + + CXXLINK = $(CXX) + + LDSTRIPFLAGS = -x + LDCOMBINEFLAGS = -r + DEPENDFLAGS = + DEPEND_DEFINES = + + # Not sure this belongs here + TKLIBDIR = + TKINCDIR = + TKLIBNAME = + TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME) + TCLLIBDIR = + TCLINCDIR = + TCLLIBNAME = + TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME) + + MACROFILE = linux.cf + RM_CMD = $(RM) + + IMAKE_DEFINES = + IMAKE_WARNINGS = -Wundef + + IRULESRC = $(CONFIGDIR) + IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS) + + ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xf86site.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES) + + # $Xorg: X11.rules,v 1.4 2000/08/17 19:41:46 cpqbld Exp $ + + # $XFree86: xc/config/cf/X11.rules,v 1.7 2003/11/05 18:15:51 dawes Exp $ + + # ---------------------------------------------------------------------- + # X Window System Build Parameters and Rules + # $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $ + # + # + # + # + # $XFree86: xc/config/cf/X11.tmpl,v 1.249 2004/02/16 18:14:33 dawes Exp $ + + XORGRELSTRING = Release 6.6 + XORGMANNAME = X Version 11 + + VENDORMANNAME = XFree86 + VENDORMANVERSION = `echo 4 4 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'` + + STICKY_DEFINES = -DHAS_STICKY_DIR_BIT + + FCHOWN_DEFINES = -DHAS_FCHOWN + + # ----------------------------------------------------------------------- + # X Window System make variables; these need to be coordinated with rules + + XTOP = $(TOP) + BINDIR = /opt/QtPalmtop/X11R6/bin + BUILDINCROOT = $(TOP)/exports + BUILDINCDIR = $(BUILDINCROOT)/include + BUILDINCTOP = ../.. + BUILDLIBDIR = $(TOP)/exports/lib + BUILDLIBTOP = ../.. + BUILDBINDIR = $(TOP)/exports/bin + BUILDBINTOP = ../.. + BUILDMODULEDIR = $(BUILDLIBDIR)/modules + BUILDMODULETOP = $(BUILDLIBTOP)/.. + XBUILDINCROOT = $(XTOP)/exports + XBUILDINCDIR = $(XBUILDINCROOT)/include/X11 + XBUILDINCTOP = ../../.. + XBUILDBINDIR = $(XBUILDINCROOT)/bin + INCDIR = $(INCROOT) + ADMDIR = /opt/QtPalmtop/adm + LIBDIR = /opt/QtPalmtop/lib/X11 + LIBEXECDIR = /opt/QtPalmtop/lib/exec + MODULEDIR = $(USRLIBDIR)/modules + TOP_X_INCLUDES = + + INSTSRCDIR = /opt/QtPalmtop/X11R6/src + + ETCX11DIR = /etc/X11 + + CONFDIR = $(VARDIR) + + DOCDIR = $(LIBDIR)/doc + DOCHTMLDIR = $(DOCDIR)/html + DOCPSDIR = $(DOCDIR)/PostScript + DOCPDFDIR = $(DOCDIR)/PDF + FONTDIR = $(LIBDIR)/fonts + ENCODINGSDIR = $(FONTDIR)/encodings + XINITDIR = $(LIBDIR)/xinit + XDMDIR = $(LIBDIR)/xdm + XDMVARDIR = $(VARLIBDIR)/xdm + TWMDIR = $(LIBDIR)/twm + XSMDIR = $(LIBDIR)/xsm + NLSDIR = $(LIBDIR)/nls + XLOCALEDIR = $(LIBDIR)/locale + LBXPROXYDIR = $(LIBDIR)/lbxproxy + PROXYMANAGERDIR = $(LIBDIR)/proxymngr + XPRINTDIR = $(LIBDIR)/xserver + XAPPLOADDIR = $(LIBDIR)/app-defaults + FONTCFLAGS = -t + + INSTAPPFLAGS = $(INSTDATFLAGS) + + RGB = $(BINDIR)/rgb + FONTC = $(BINDIR)/bdftopcf + MKFONTSCALE = $(BINDIR)/mkfontscale + MKFONTDIR = $(BINDIR)/mkfontdir + MKHTMLINDEX = $(BINDIR)/mkhtmlindex + UCS2ANY = $(BINDIR)/ucs2any + BDFTRUNCATE = $(BINDIR)/bdftruncate + UCSMAPPREFIX = $(FONTDIR)/util/map- + XCURSORGEN = $(BINDIR)/xcursorgen + + HTMLINDEXCMD = $(MKHTMLINDEX) + + DOCUTILSRC = $(XTOP)/doc/util + CLIENTSRC = $(TOP)/clients + DEMOSRC = $(TOP)/demos + XDOCMACROS = $(DOCUTILSRC)/macros.t + XIDXMACROS = $(DOCUTILSRC)/indexmacros.t + PROGRAMSRC = $(TOP)/programs + LIBSRC = $(XTOP)/lib + FONTSRC = $(XTOP)/fonts + ENCODINGSSRC = $(FONTSRC)/encodings + INCLUDESRC = $(BUILDINCROOT)/include + XINCLUDESRC = $(INCLUDESRC)/X11 + SERVERSRC = $(XTOP)/programs/Xserver + CONTRIBSRC = $(XTOP)/../contrib + UNSUPPORTEDSRC = $(XTOP)/unsupported + DOCSRC = $(XTOP)/doc + RGBSRC = $(XTOP)/programs/rgb + BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf + MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir + FONTSERVERSRC = $(PROGRAMSRC)/xfs + FONTINCSRC = $(XTOP)/include/fonts + EXTINCSRC = $(XTOP)/include/extensions + FTSOURCEDIR = $(TOP)/extras/FreeType + XTTSOURCEDIR = $(TOP)/extras/X-TrueType + MESASRCDIR = $(TOP)/extras/Mesa + OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample + PSWRAPSRC = $(XTOP)/config/pswrap + TRANSCOMMSRC = $(LIBSRC)/xtrans + TRANS_INCLUDES = -I$(TRANSCOMMSRC) + CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES) + + XORGMANDEFS = -D__xorgversion__='"$(XORGRELSTRING)" "$(XORGMANNAME)"' + VENDORMANDEFS = -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)" + + XENVLIBDIR = $(USRLIBDIR) + CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR) + + # $Xorg: lnxLib.tmpl,v 1.3 2000/08/17 19:41:47 cpqbld Exp $ + # $XFree86: xc/config/cf/lnxLib.tmpl,v 3.20 2003/11/04 01:59:31 dawes Exp $ + + XLIBSRC = $(LIBSRC)/X11 + + SOXLIBREV = 6.2 + DEPXONLYLIB = + XONLYLIB = -lX11 + + LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln + + DEPXLIBONLY = $(DEPXONLYLIB) + XLIBONLY = $(XONLYLIB) + + XEXTLIBSRC = $(LIBSRC)/Xext + + SOXEXTREV = 6.4 + DEPEXTENSIONLIB = + EXTENSIONLIB = -lXext + + LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln + + LINTEXTENSIONLIB = $(LINTEXTENSION) + DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB) + XLIB = $(EXTENSIONLIB) $(XONLYLIB) + LINTXLIB = $(LINTXONLYLIB) + + XSSLIBSRC = $(LIBSRC)/Xss + + SOXSSREV = 1.0 + DEPXSSLIB = + XSSLIB = -lXss + + LINTXSS = $(LINTLIBDIR)/llib-lXss.ln + + XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc + + SOXXF86MISCREV = 1.1 + DEPXXF86MISCLIB = + XXF86MISCLIB = -lXxf86misc + + LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln + + XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm + + SOXXF86VMREV = 1.0 + DEPXXF86VMLIB = + XXF86VMLIB = -lXxf86vm + + LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln + + XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga + + SOXXF86DGAREV = 1.0 + DEPXXF86DGALIB = + XXF86DGALIB = -lXxf86dga + + LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln + + XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush + + SOXXF86RUSHREV = 1.0 + DEPXXF86RUSHLIB = + XXF86RUSHLIB = -lXxf86rush + + LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln + + XVLIBSRC = $(LIBSRC)/Xv + + SOXVREV = 1.0 + DEPXVLIB = + XVLIB = -lXv + + LINTXV = $(LINTLIBDIR)/llib-lXv.ln + + XVMCLIBSRC = $(LIBSRC)/XvMC + + SOXVMCREV = 1.0 + DEPXVMCLIB = + XVMCLIB = -lXvMC + + LINTXVMC = $(LINTLIBDIR)/llib-lXvMC.ln + + XINERAMALIBSRC = $(LIBSRC)/Xinerama + + SOXINERAMAREV = 1.0 + DEPXINERAMALIB = + XINERAMALIB = -lXinerama + + LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln + + XRESLIBSRC = $(LIBSRC)/XRes + + SOXRESREV = 1.0 + DEPXRESLIB = + XRESLIB = -lXRes + + LINTXRES = $(LINTLIBDIR)/llib-lXRes.ln + + DPSLIBSRC = $(LIBSRC)/dps + + SODPSREV = 1.0 + DEPDPSLIB = + DPSLIB = -ldps + + LINTDPS = $(LINTLIBDIR)/llib-ldps.ln + + DPSTKLIBSRC = $(LIBSRC)/dpstk + + SODPSTKREV = 1.0 + DEPDPSTKLIB = + DPSTKLIB = -ldpstk + + LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln + + PSRESLIBSRC = $(LIBSRC)/psres + + SOPSRESREV = 1.0 + DEPPSRESLIB = + PSRESLIB = -lpsres + + LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln + + GLULIBSRC = $(LIBSRC)/GLU + + SOGLUREV = 1.3 + DEPGLULIB = + GLULIB = -lGLU + + LINTGLU = $(LINTLIBDIR)/llib-lGLU.ln + + GLXLIBSRC = $(LIBSRC)/GL + + SOGLREV = 1.2 + DEPGLXLIB = + GLXLIB = -lGL + + LINTGLX = $(LINTLIBDIR)/llib-lGL.ln + + GLWIDGETSRC = $(LIBSRC)/GLw + + SOGLWREV = 1.0 + DEPGLWLIB = + GLWLIB = -lGLw + + LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln + + XRENDERLIBSRC = $(LIBSRC)/Xrender + + SOXRENDERREV = 1.2 + DEPXRENDERLIB = + XRENDERLIB = -lXrender + + LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln + + XRANDRRLIBSRC = $(LIBSRC)/Xrandr + + SOXRANDRREV = 2.0 + DEPXRANDRLIB = + XRANDRLIB = -lXrandr + + LINTXRANDR = $(LINTLIBDIR)/llib-lXrandr.ln + + XCURSORRLIBSRC = $(LIBSRC)/Xcursor + + SOXCURSORREV = 1.0 + DEPXCURSORLIB = + XCURSORLIB = -lXcursor + + LINTXCURSOR = $(LINTLIBDIR)/llib-lXcursor.ln + + APPLEWMLIBSRC = $(LIBSRC)/apple + + DEPAPPLEWMLIB = $(USRLIBDIR)/libAppleWM.a + APPLEWMLIB = -lAppleWM + + LINTAPPLEWM = $(LINTLIBDIR)/llib-lAppleWM.ln + + WINDOWSWMLIBSRC = $(LIBSRC)/windows + + DEPWINDOWSWMLIB = $(USRLIBDIR)/libWindowsWM.a + WINDOWSWMLIB = -lWindowsWM + + LINTWINDOWSWM = $(LINTLIBDIR)/llib-lWindowsWM.ln + + XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache + + SOXFONTCACHEREV = 1.2 + DEPXFONTCACHELIB = + XFONTCACHELIB = -lXfontcache + + LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln + + XAUTHSRC = $(LIBSRC)/Xau + + DEPXAUTHLIB = $(USRLIBDIR)/libXau.a + XAUTHLIB = -lXau + + LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln + + XDMCPLIBSRC = $(LIBSRC)/Xdmcp + + DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a + XDMCPLIB = -lXdmcp + + LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln + + XMUSRC = $(LIBSRC)/Xmu + + SOXMUREV = 6.2 + DEPXMULIB = + XMULIB = -lXmu + + LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln + + XMUUSRC = $(LIBSRC)/Xmuu + + SOXMUUREV = 1.0 + DEPXMUULIB = + XMUULIB = -lXmuu + + LINTXMUU = $(LINTLIBDIR)/llib-lXmuu.ln + + OLDXLIBSRC = $(LIBSRC)/oldX + + DEPOLDXLIB = $(USRLIBDIR)/liboldX.a + OLDXLIB = -loldX + + LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln + + XPLIBSRC = $(LIBSRC)/Xp + + SOXPREV = 6.2 + DEPXPLIB = + XPLIB = -lXp + + LINTXP = $(LINTLIBDIR)/llib-lXp.ln + + TOOLKITSRC = $(LIBSRC)/Xt + + SOXTREV = 6.0 + DEPXTOOLONLYLIB = + XTOOLONLYLIB = -lXt + + LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln + + DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB) + XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB) + LINTXTOOLLIB = $(LINTXTOOLONLYLIB) + + XALIBSRC = $(LIBSRC)/Xa + + SOXAREV = 1.0 + DEPXALIB = + XALIB = -lXa + + LINTXA = $(LINTLIBDIR)/llib-lXa.ln + + AWIDGETSRC = $(LIBSRC)/Xaw + + SOXAWREV = 7.0 + DEPXAWLIB = + XAWLIB = -lXaw + + LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln + + AWIDGET6SRC = $(LIBSRC)/Xaw6 + + SOXAW6REV = 6.1 + DEPXAW6LIB = + XAW6LIB = -lXaw + + LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln + + XILIBSRC = $(LIBSRC)/Xi + + SOXINPUTREV = 6.0 + DEPXILIB = + XILIB = -lXi + + LINTXI = $(LINTLIBDIR)/llib-lXi.ln + + XTESTLIBSRC = $(LIBSRC)/Xtst + + SOXTESTREV = 6.1 + DEPXTESTLIB = + XTESTLIB = -lXtst + + LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln + + DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a + XBSDLIB = -lXbsd + + LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln + + ICESRC = $(LIBSRC)/ICE + + SOICEREV = 6.3 + DEPICELIB = + ICELIB = -lICE + + LINTICE = $(LINTLIBDIR)/llib-lICE.ln + + SMSRC = $(LIBSRC)/SM + + SOSMREV = 6.0 + DEPSMLIB = + SMLIB = -lSM + + LINTSM = $(LINTLIBDIR)/llib-lSM.ln + + XKEYSRC = $(LIBSRC)/Xkey + + SOXKEYREV = 6.0 + DEPXKEYLIB = + XKEYLIB = -lXkey + + LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln + + FSLIBSRC = $(LIBSRC)/FS + + SOFSREV = 6.0 + DEPFSLIB = + FSLIB = -lFS + + LINTFS = $(LINTLIBDIR)/llib-lFS.ln + + FONTLIBSRC = $(LIBSRC)/font + + SOFONTREV = 1.5 + DEPFONTLIB = + FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC) -lXfont + + LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln + # + SOFONTREV = 1.5 + DEPXFONTLIB = + XFONTLIB = -lXfont + + LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln + + FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs + + DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a + FONTSTUBLIB = -lfntstubs + + LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln + DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB) + FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB) + + FONTENCLIBSRC = $(LIBSRC)/fontenc + + SOFONTENCREV = 1.0 + DEPXFONTENCLIB = + XFONTENCLIB = -lfontenc + + LINTXFONTENC = $(LINTLIBDIR)/llib-lfontenc.ln + + XPMLIBSRC = $(LIBSRC)/Xpm + + SOXPMREV = 4.11 + DEPXPMLIB = + XPMLIB = -lXpm + + LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln + + FREETYPE2LIBSRC = $(LIBSRC)/freetype2 + + SOFREETYPE2REV = 6.3.6 + DEPFREETYPE2LIB = + FREETYPE2LIB = -lfreetype + + LINTFREETYPE2 = $(LINTLIBDIR)/llib-lfreetype.ln + + FREETYPE2INCDIR=$(INCDIR) + + FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR) -I$(FREETYPE2INCDIR)/freetype2 + + FREETYPE2DEFINES = -DFREETYPE2 + + EXPATLIBSRC = $(LIBSRC)/expat + + SOEXPATREV = 0.4 + DEPEXPATLIB = + EXPATLIB = -lexpat + + LINTEXPAT = $(LINTLIBDIR)/llib-lexpat.ln + + EXPATINCLUDES=$(TOP_X_INCLUDES) + EXPATDEFINES=-DEXPAT + + XFT1LIBSRC = $(LIBSRC)/Xft1 + + SOXFT1REV = 1.1 + DEPXFT1LIB = + XFT1LIB = -lXft + + LINTXFT1 = $(LINTLIBDIR)/llib-lXft.ln + + XFTLIBSRC = $(LIBSRC)/Xft + + SOXFTREV = 2.1 + DEPXFTLIB = + XFTLIB = -lXft + + LINTXFT = $(LINTLIBDIR)/llib-lXft.ln + + FONTCONFIGLIBSRC = $(LIBSRC)/fontconfig + + SOFONTCONFIGREV = 1.0 + DEPFONTCONFIGLIB = + FONTCONFIGLIB = -lfontconfig + + LINTFONTCONFIG = $(LINTLIBDIR)/llib-lfontconfig.ln + + FONTCONFIGINCDIR=$(INCDIR) + + FONTCONFIGINCLUDES = -I$(FONTCONFIGINCDIR) + + FCCACHE = $(BINDIR)/fc-cache + + FONTCONFIGDEFINES = -DFONTCONFIG + + XFTINCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) + + LIBPNGINCDIR = /opt/QtPalmtop/include + + LIBPNGINC= + + LIBPNGDIR = /opt/QtPalmtop + LIBPNGLIBDIR = /opt/QtPalmtop/lib + LIBPNGINCDIR = /opt/QtPalmtop/include + + LIBPNGLIB = -lpng + + XKBFILELIBSRC = $(LIBSRC)/xkbfile + + SOXKBFILEREV = 1.0 + DEPXKBFILELIB = + XKBFILELIB = -lxkbfile + + LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln + + XKBCOMPCMD = $(BINDIR)/xkbcomp + + XKBUILIBSRC = $(LIBSRC)/xkbui + + SOXKBUIREV = 1.0 + DEPXKBUILIB = + XKBUILIB = -lxkbui + + LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln + + XTRAPLIBSRC = $(LIBSRC)/XTrap + + SOXTRAPREV = 6.4 + DEPXTRAPLIB = + XTRAPLIB = -lXTrap + + LINTXTRAP = $(LINTLIBDIR)/llib-lXTrap.ln + + DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) + + DEPLIBS1 = $(DEPLIBS) + DEPLIBS2 = $(DEPLIBS) + DEPLIBS3 = $(DEPLIBS) + DEPLIBS4 = $(DEPLIBS) + DEPLIBS5 = $(DEPLIBS) + DEPLIBS6 = $(DEPLIBS) + DEPLIBS7 = $(DEPLIBS) + DEPLIBS8 = $(DEPLIBS) + DEPLIBS9 = $(DEPLIBS) + DEPLIBS10 = $(DEPLIBS) + + FT2PRELOADPATTERN = libfreetype.so.? + + FCPRELOADPATTERN = libfontconfig.so.? + + XFTPRELOADPATTERN = libXft.so.? + XRENDERPRELOADPATTERN = libXrender.so.? + XFONTPRELOADPATTERN = libXfont*.so.? + + XMULIBONLY = -lXmu + XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB) + + CONFIGDIR = $(LIBDIR)/config + + USRLIBDIRPATH = $(USRLIBDIR) + LDPRELIBS = -L$(USRLIBDIR) $(INSTALLED_LIBS) + LDPOSTLIBS = + TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES) + PROJECT_DEFINES = + + CXXPROJECT_DEFINES = + + # ---------------------------------------------------------------------- + # start of Imakefile + + # + # Common Setup + # + + CC = gcc + CDEBUGFLAGS= -g + CCOPTIONS= #-DDEBUG + + XLVNSPACKDIR = . + CDDEVICE = /dev/cdrom + AUDIODEVICE = /dev/audio + + # - for ESD support - + # AUDIODEVICE = + # AUDIODEFINES = -DESDAUDIO + # AUDIOLIB = -L/opt/QtPalmtop/local/lib -lesddsp -lesd + # AUDIOINC = -I/opt/QtPalmtop/local/include + + # - Solaris - + # CDDEVICE = /vol/dev/aliases/cdrom0 + # AUDIODEVICE = /dev/audio + + # ---------------- + # subdirs + # ---------------- + + DEFINES = -DXLVNSPACKDIR=\"$(XLVNSPACKDIR)\" -DCDDEVICE=\"$(CDDEVICE)\" -DAUDIODEVICE=\"$(AUDIODEVICE)\" $(AUDIODEFINES) -DMITSHM + + EXTRA_INCLUDES += $(AUDIOINC) + MYLIBS = $(AUDIOLIB) + + # DEFINES += -DXVIDMODE + # XVIDOBJ = FullScreenShell.o + + LOCAL_LIBRARIES = $(MYLIBS) $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XPMLIB) $(XLIB) -lm -lSDL -lSDL_mixer -lmad -lqte -lqpe -lpthread + + DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXPMLIB) $(DEPXLIB) + + OBJS = MadWrapper.o filemap_unix.o leafpack.o lvnsimage.o lfg.o lf2.o LvnsEtc.o LvnsFile.o LvnsText.o LvnsDisp.o LvnsEffect.o LvnsBackEffect.o LvnsControl.o LvnsMusic.o LvnsSound.o LvnsAnim.o LvnsScript.o LvnsMenu.o LvnsHistory.o Lvns.o sin_effect.o sin_effect2.o sizuku.o sizuku_etc.o sizuku_jingle.o sizuku_op.o sizuku_ed.o sizuku_file.o sizuku_menu.o kizuato.o kizuato_etc.o kizuato_jingle.o kizuato_op.o kizuato_ed.o kizuato_file.o kizuato_menu.o toheart.o toheart_etc.o toheart_op.o toheart_ed.o toheart_file.o toheart_menu.o toheart_sakura.o toheart_rain.o cdinfo.o audioinfo.o sximage.o lvnsimage_sximage.o LvnsCoreMusic.o LvnsCoreSound.o LvnsCore.o $(XVIDOBJ) XtMain.o + + SRCS = $(OBJS:.o=.c) + + PROGRAM = xlvns + + all:: xlvns + + xlvns: $(OBJS) $(DEPLIBS) + $(RM) $@ + $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) + + install:: xlvns + @if [ -d $(DESTDIR)$(BINDIR) ]; then \ + set +x; \ + else \ + if [ -h $(DESTDIR)$(BINDIR) ]; then \ + (set -x; rm -f $(DESTDIR)$(BINDIR)); \ + fi; \ + (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); \ + fi + $(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS) xlvns $(DESTDIR)$(BINDIR)/xlvns + + all:: xlvns.$(MANSUFFIX).html + + xlvns.$(MANSUFFIX).html: xlvns.$(MANNEWSUFFIX) + $(RM) xlvns.$(MANSUFFIX).html xlvns.$(MANSUFFIX)-html + $(RMAN) $(RMANOPTIONS) < xlvns.$(MANNEWSUFFIX) \ + > xlvns.$(MANSUFFIX)-html && $(MV) xlvns.$(MANSUFFIX)-html $@ + + install.man:: xlvns.$(MANSUFFIX).html + @if [ -d $(DESTDIR)$(DOCHTMLDIR) ]; then \ + set +x; \ + else \ + if [ -h $(DESTDIR)$(DOCHTMLDIR) ]; then \ + (set -x; rm -f $(DESTDIR)$(DOCHTMLDIR)); \ + fi; \ + (set -x; $(MKDIRHIER) $(DESTDIR)$(DOCHTMLDIR)); \ + fi + @(SUF=`expr $(MANSUFFIX) \: '\(.\)'`; \ + set -x; \ + $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xlvns.$(MANSUFFIX).html $(DESTDIR)$(DOCHTMLDIR)/xlvns.$$SUF.html) + + cleandir:: + $(RM) xlvns.$(MANSUFFIX).html xlvns.$(MANSUFFIX)-html + + all:: xlvns.$(MANNEWSUFFIX) + + xlvns.$(MANNEWSUFFIX): xlvns.$(MANSRCSUFFIX) + $(RM) $@ + cd `dirname xlvns` && \ + $(LN) `basename xlvns.$(MANSRCSUFFIX)` `basename $@` + + cleandir:: + $(RM) xlvns.$(MANNEWSUFFIX) + + install.man:: xlvns.$(MANNEWSUFFIX) + @if [ -d $(DESTDIR)$(MANDIR) ]; then \ + set +x; \ + else \ + if [ -h $(DESTDIR)$(MANDIR) ]; then \ + (set -x; rm -f $(DESTDIR)$(MANDIR)); \ + fi; \ + (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); \ + fi + $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xlvns.$(MANNEWSUFFIX) $(DESTDIR)$(MANDIR)/xlvns.$(MANSUFFIX) + + depend:: + $(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS) + + lint: + $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS) + lint1: + $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS) + + cleandir:: + $(RM) xlvns + + install:: XLvns.ad + @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \ + set +x; \ + else \ + if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \ + (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \ + fi; \ + (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \ + fi + $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XLvns.ad $(DESTDIR)$(XAPPLOADDIR)/XLvns + + install:: sizfont.tbl + $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) sizfont.tbl $(DESTDIR) $(XLVNSPACKDIR) + + install:: kizfont.tbl + $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) kizfont.tbl $(DESTDIR) $(XLVNSPACKDIR) + + install:: thfont.tbl + $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) thfont.tbl $(DESTDIR) $(XLVNSPACKDIR) + + # ---------------------------------------------------------------------- + # common rules for all Makefiles - do not edit + + .c.i: + $(RM) $@ + $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@ + + .SUFFIXES: .ii + + .cc.ii: + $(RM) $@ + $(CC) -E $(CFLAGS) $(_NOOP_) $*.cc > $@ + + .SUFFIXES: .s + + .c.s: + $(RM) $@ + $(CC) -S $(CFLAGS) $(_NOOP_) $*.c + + .cc.s: + $(RM) $@ + $(CC) -S $(CFLAGS) $(_NOOP_) $*.cc + + emptyrule:: + + cleandir:: + $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"* + + Makefile:: + -@if [ -f Makefile ]; then set -x; \ + $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ + else exit 0; fi + $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) + + tags:: + $(TAGS) -w *.[ch] + $(TAGS) -xw *.[ch] > TAGS + + man_keywords:: + + html_index:: + $(HTMLINDEXCMD) $(DESTDIR)$(DOCHTMLDIR) + + clean:: cleandir + + distclean:: cleandir + + # ---------------------------------------------------------------------- + # empty rules for directories that do not have SUBDIRS - do not edit + + install:: + @echo "install in $(CURRENT_DIR) done" + + install.man:: + @echo "install.man in $(CURRENT_DIR) done" + + install.sdk:: + @echo "install.sdk in $(CURRENT_DIR) done" + + Makefiles:: + + includes:: + + depend:: + + distclean:: + $(RM) Makefile Makefile.dep + + # ---------------------------------------------------------------------- + # dependencies generated by makedepend + diff -c -N -B xlvns.orig/XtMain.c xlvns.new/XtMain.c *** xlvns.orig/XtMain.c Mon Jul 29 14:24:38 2002 --- xlvns.new/XtMain.c Wed Feb 16 15:45:18 2005 *************** *** 36,41 **** --- 36,43 ---- #include "LvnsCore.h" + extern void initSDL(); + #define APPLICATIONCLASS "XLvns" /* WM Protocol DELETE 用 */ *************** *** 46,51 **** --- 48,54 ---- #ifdef DEBUG {"-scn", "*scenarioNumber", XrmoptionSepArg, NULL}, #endif + {"-name", "*scenarioType", XrmoptionSepArg, (XtPointer)"True"}, {"-demo", "*demoMode", XrmoptionNoArg, (XtPointer)"True"}, {"-seen", "*seenMode", XrmoptionNoArg, (XtPointer)"True"}, {"-fastclick", "*keyClickFast", XrmoptionNoArg, (XtPointer)"True"}, *************** *** 255,260 **** --- 258,265 ---- char *datapath; srandom((unsigned)getpid()); + + initSDL(); /* 保存用ディレクトリのチェック */ { diff -c -N -B xlvns.orig/XtMain.c.orig xlvns.new/XtMain.c.orig *** xlvns.orig/XtMain.c.orig Thu Jan 1 00:00:00 1970 --- xlvns.new/XtMain.c.orig Wed Feb 16 00:58:15 2005 *************** *** 0 **** --- 1,328 ---- + /* + * LEAF Visual Novel System For X + * (c) Copyright 1999,2000 Go Watanabe mailto:go@denpa.org + * All rights reserverd. + * + * ORIGINAL LVNS (c) Copyright 1996-1999 LEAF/AQUAPLUS Inc. + * + * $Id: XtMain.c,v 1.2 2002/07/29 05:24:38 go Exp $ + * + */ + + #ifndef XLVNSPACKDIR + #define XLVNSPACKDIR "/usr/local/share/xlvns" + #endif + + #include + #include + #include + #include + + #include + #include + + #include + #include + #include + #include + #include + #include + #include + #include + + #ifdef XVIDMODE + #include "FullScreenShell.h" + #endif + + #include "LvnsCore.h" + + extern void initSDL(); + + #define APPLICATIONCLASS "XLvns" + + /* WM Protocol DELETE $BMQ(B */ + Atom wm_protocols[2]; + + /* options */ + static XrmOptionDescRec options[] = { + #ifdef DEBUG + {"-scn", "*scenarioNumber", XrmoptionSepArg, NULL}, + #endif + {"-name", "*scenarioType", XrmoptionSepArg, NULL}, + {"-demo", "*demoMode", XrmoptionNoArg, (XtPointer)"True"}, + {"-seen", "*seenMode", XrmoptionNoArg, (XtPointer)"True"}, + {"-fastclick", "*keyClickFast", XrmoptionNoArg, (XtPointer)"True"}, + #ifdef XVIDMODE + {"-screen", "*screenMode", XrmoptionNoArg, (XtPointer)"True"}, + #endif + #ifdef MITSHM + {"-noshared", "*noShared", XrmoptionNoArg, (XtPointer)"True"}, + #endif + }; + + static XtAppContext app; + static void signal_handler(int sig) { + XtAppSetExitFlag(app); + } + + + /* + * WM $B$+$i$N=*N;xclient.data.l[0] == wm_protocols[0] || + e->xclient.data.l[0] == wm_protocols[1]) { + XtAppSetExitFlag(XtWidgetToApplicationContext(w)); + } + } + + static void CreateMenu(Widget w, XEvent *e, String *p, Cardinal *n); + + /* actions */ + static XtActionsRec actions[] = { + {"delete", Delete}, + {"menu", CreateMenu}, + }; + + /* TOP Widget $BMQ(B translations */ + String translations = + "WM_PROTOCOLS: delete()"; + + /* LvnsCore $BMQ(B translations */ + String translations_core = + ": menu()"; + + #ifdef XVIDMODE + /* + * $B%a%K%e!<$+$i8F$S=P$7MQ(B + */ + + static void + ScreenWindowCallback(Widget w, XtPointer dat, XtPointer call) + { + XtFullScreenShellWidgetScreenWindow((FullScreenShellWidget)dat); + } + #endif + + static void + ClearGrab(Widget w, XtPointer dat, XtPointer call) + { + XtUngrabPointer((Widget)dat, CurrentTime); + } + + /* ------------------------------------------------------------------- + * $B%7%9%F%`%a%K%e!<(B + */ + + /* + * $B%a%K%e!pJs2hLLMQ%3!<%k%P%C%/(B + */ + static void + aboutProgram(Widget w, XtPointer dat, XtPointer call) + { + } + + /* + * $B%3%^%s%I5/F0MQ%3!<%k%P%C%/(B + */ + static void + execCommand(Widget w, XtPointer dat, XtPointer call) + { + LvnsCoreExecCommand((LvnsCoreWidget)dat, XtName(w)); + } + + /* + * $B%a%K%e!<:n@.(B + * + * Widget $B$K8=:_MxMQ2DG=$J%3%^%s%I$rLd$$9g$o$;$F(B + * $BF0E*$K%a%K%e!<$r:F9=@.$9$k(B + */ + static void + CreateMenu(Widget widget, XEvent *e, String *p, Cardinal *n) + { + Widget menu, w; + Widget top = XtParent(widget); + LvnsCoreWidget lcw = (LvnsCoreWidget)widget; + LvnsCommandInfo *info; + + menu = XtVaCreatePopupShell("menu", simpleMenuWidgetClass, top, NULL); + + /* $B%3%^%s%IItJ,(B */ + if ((info = LvnsCoreGetCommandList(lcw)) != NULL) { + XtVaCreateManagedWidget("line", smeLineObjectClass, menu, NULL); + while (info->command != NULL) { + w = XtVaCreateManagedWidget(info->command, + smeBSBObjectClass, menu, + XtNsensitive, info->enable, NULL); + XtAddCallback(w, XtNcallback, execCommand, (XtPointer)lcw); + info++; + } + } + + /* $BA42hLL%b!<%I(B */ + #ifdef XVIDMODE + if (XtFullScreenShellWidgetEnableScreenMode(top)) { + XtVaCreateManagedWidget("line", smeLineObjectClass, menu, NULL); + if (XtFullScreenShellWidgetScreenMode(top)) { + w = XtVaCreateManagedWidget("window", smeBSBObjectClass, menu, NULL); + XtAddCallback(w, XtNcallback, ScreenWindowCallback, top); + } else { + w = XtVaCreateManagedWidget("screen", smeBSBObjectClass, menu, NULL); + XtAddCallback(w, XtNcallback, ClearGrab, top); + XtAddCallback(w, XtNcallback, ScreenWindowCallback, top); + } + } + #endif + + #if 0 + /* ABOUT */ + XtVaCreateManagedWidget("line", smeLineObjectClass, menu, NULL); + w = XtVaCreateManagedWidget("about", smeBSBObjectClass, menu, NULL); + XtAddCallback(w, XtNcallback, aboutProgram, NULL); + #endif + + /* $B=*N;(B */ + XtVaCreateManagedWidget("line", smeLineObjectClass, menu, NULL); + w = XtVaCreateManagedWidget("end", smeBSBObjectClass, menu, NULL); + XtAddCallback(w, XtNcallback, endProgram, NULL); + + /* POPDOWN $B$9$k;~$K$OKu>C!D(B */ + #ifdef XVIDMODE + if (!XtFullScreenShellWidgetScreenMode(top)) { + #endif + XtAddCallback(menu, XtNpopdownCallback, ClearGrab, top); + #ifdef XVIDMODE + } + #endif + XtAddCallback(menu, XtNpopdownCallback, destroyMenu, (XtPointer)menu); + + /* $B%a%K%e!<$r0\F0(B */ + { + String param = "menu"; + XtCallActionProc(menu, "XawPositionSimpleMenu", e, ¶m, 1); + } + + XtPopupSpringLoaded(menu); + #ifdef XVIDMODE + if (!XtFullScreenShellWidgetScreenMode(top)) { + #endif + XtGrabPointer(top, + True, 0, + GrabModeAsync, GrabModeAsync, + XtWindow(top), None, CurrentTime); + #ifdef XVIDMODE + } + #endif + } + + typedef void Sigfunc(int); + Sigfunc * + setup_signal(int signo, Sigfunc *func) + { + struct sigaction act, oact; + act.sa_handler = func; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + if (sigaction(signo, &act, &oact) < 0) + return SIG_ERR; + return oact.sa_handler; + } + + + int + main(int argc, char **argv) + { + Widget top; + LvnsCoreWidget core; + Lvns *lvns; + + char savepath[FILENAME_MAX]; + char *datapath; + + srandom((unsigned)getpid()); + + initSDL(); + + /* $BJ]B8MQ%G%#%l%/%H%j$N%A%'%C%/(B */ + { + struct stat sb; + snprintf(savepath, sizeof savepath, "%s/%s", getenv("HOME"), ".xlvns"); + if (stat(savepath, &sb) < 0) { + perror(savepath); + fprintf(stderr, "%s: making...\n", savepath); + if (mkdir(savepath, 0700) < 0) { + perror(savepath); + exit(1); + } + } else if (!(sb.st_mode & S_IFDIR)) { + fprintf(stderr, "%s: not directory!\n", savepath); + exit(1); + } + } + + if (!(datapath = getenv("XLVNSPACKDIR"))) + datapath = XLVNSPACKDIR; + + /* $B%P!<%8%g%sI=<((B */ + fprintf(stderr, VERSION); + + #ifdef XVIDMODE + top = XtVaOpenApplication(&app, APPLICATIONCLASS, + options, XtNumber(options), + &argc, argv, NULL, fullScreenShellWidgetClass, + NULL); + #else + top = XtVaOpenApplication(&app, APPLICATIONCLASS, + options, XtNumber(options), + &argc, argv, NULL, sessionShellWidgetClass, + NULL); + #endif + setup_signal(SIGINT, signal_handler); + setup_signal(SIGTERM, signal_handler); + + XtAppAddActions(app, actions, XtNumber(actions)); + XtOverrideTranslations(top, XtParseTranslationTable(translations)); + + /* making childs */ + core = (LvnsCoreWidget) + XtVaCreateManagedWidget("lvnscore", lvnsCoreWidgetClass, top, NULL); + + + XtOverrideTranslations((Widget)core, + XtParseTranslationTable(translations_core)); + + LvnsCoreSetLvns(core, lvns = LvnsNew()); + LvnsSetDataPath(lvns, datapath); + LvnsSetSaveDataPath(lvns, savepath); + + /* realize */ + XtRealizeWidget(top); + wm_protocols[0] = XInternAtom(XtDisplay(top), "WM_DELETE_WINDOW", False); + wm_protocols[1] = XInternAtom(XtDisplay(top), "WM_SAVEYOURSELF", False); + XSetWMProtocols(XtDisplay(top), XtWindow(top), wm_protocols, 2); + + LvnsMain(lvns); + + XtDestroyWidget(top); + exit(0); + } diff -c -N -B xlvns.orig/audioinfo.c xlvns.new/audioinfo.c *** xlvns.orig/audioinfo.c Mon Jul 29 14:24:38 2002 --- xlvns.new/audioinfo.c Wed Feb 16 15:45:18 2005 *************** *** 41,46 **** --- 41,51 ---- #include #include + #include + #include + #include "MadWrapper.h" + #include + #ifdef ESDAUDIO #include *************** *** 193,198 **** --- 198,343 ---- */ #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) + #if 1 + + extern bool audio_open_flag; + extern Mix_Chunk *wave_sample[]; + extern void chendCallback( int channel ); + + struct _AUDIOInfo { + int fd; + }; + + typedef struct _WAVE_HEADER { + char chunk_riff[4]; + char riff_length[4]; + char fmt_id[8]; + char fmt_size[4]; + char data_fmt[2]; + char channels[2]; + char frequency[4]; + char byte_size[4]; + char sample_byte_size[2]; + char sample_bit_size[2]; + + char chunk_id[4]; + char data_length[4]; + } WAVE_HEADER; + + WAVE_HEADER header; + + AUDIOInfo * + audioinfo_new(const char *audiodevice) + { + AUDIOInfo *ainfo; + + if ((ainfo = malloc(sizeof *ainfo)) == NULL) { + perror("audioinfo_new"); + exit(1); + } + + ainfo->fd = 1; + + return ainfo; + } + + void + audioinfo_delete(AUDIOInfo *ainfo) + { + if (ainfo && ainfo->fd >= 0) { + close(ainfo->fd); + free(ainfo); + } + } + + void setupWaveHeader( unsigned char *buffer, int channels, int rate, unsigned long data_length ) + { + int riff_length; + int sample_byte_size; + int byte_size; + + memcpy( header.chunk_riff, "RIFF", 4 ); + riff_length = sizeof(WAVE_HEADER) + data_length - 8; + header.riff_length[0] = riff_length & 0xff; + header.riff_length[1] = (riff_length >> 8) & 0xff; + header.riff_length[2] = (riff_length >> 16) & 0xff; + header.riff_length[3] = (riff_length >> 24) & 0xff; + memcpy( header.fmt_id, "WAVEfmt ", 8 ); + header.fmt_size[0] = 0x10; + header.fmt_size[1] = header.fmt_size[2] = header.fmt_size[3] = 0; + header.data_fmt[0] = 1; header.data_fmt[1] = 0; // PCM format + header.channels[0] = channels; header.channels[1] = 0; + header.frequency[0] = rate & 0xff; + header.frequency[1] = (rate >> 8) & 0xff; + header.frequency[2] = (rate >> 16) & 0xff; + header.frequency[3] = (rate >> 24) & 0xff; + + sample_byte_size = 2 * channels; // 16bit * channels + byte_size = sample_byte_size * rate; + header.byte_size[0] = byte_size & 0xff; + header.byte_size[1] = (byte_size >> 8) & 0xff; + header.byte_size[2] = (byte_size >> 16) & 0xff; + header.byte_size[3] = (byte_size >> 24) & 0xff; + header.sample_byte_size[0] = sample_byte_size; + header.sample_byte_size[1] = 0; + header.sample_bit_size[0] = 16; + header.sample_bit_size[1] = 0; + + memcpy( header.chunk_id, "data", 4 ); + header.data_length[0] = (char)(data_length & 0xff); + header.data_length[1] = (char)((data_length >> 8) & 0xff); + header.data_length[2] = (char)((data_length >> 16) & 0xff); + header.data_length[3] = (char)((data_length >> 24) & 0xff); + + memcpy( buffer, &header, sizeof(WAVE_HEADER)); + } + + extern SMPEG *mp3_sample; + + void + audioinfo_play(AUDIOInfo *ainfo, const char *data, size_t size) + { + int channel=0; + unsigned char *buffer; + + FILE *fp; + + //fprintf(stderr,"playWave %ld %ld at vol %d ch %d\n", data, size, 100*128/100, channel ); + + if ( !audio_open_flag || size ==0 ) return; + + if ( channel >= MAX_CHANNELS ) channel = MAX_CHANNELS-1; + + Mix_Pause( channel ); + + buffer = malloc(sizeof(WAVE_HEADER) + size); + memcpy( buffer+sizeof(WAVE_HEADER), data, size ); + setupWaveHeader( buffer, 2, 11025, size ); + size += sizeof(WAVE_HEADER); + + if ( wave_sample[channel] ){ + Mix_FreeChunk( wave_sample[channel] ); + } + + wave_sample[channel] = Mix_LoadWAV_RW(SDL_RWFromMem( (void *)buffer, size ), 1); + + //fprintf(stderr,"wave_sample[channel]->abuf =%ld\n",wave_sample[channel]->abuf); + //fprintf(stderr,"wave_sample[channel]->volume =%ld\n",wave_sample[channel]->volume); + //fprintf(stderr,"wave_sample[channel]->allocated=%ld\n",wave_sample[channel]->allocated); + //fprintf(stderr,"wave_sample[channel]->alen =%ld\n",wave_sample[channel]->alen); + + free(buffer); + + if ( !wave_sample[channel] ) return; // if not pre-loaded or the format is MP3 + + Mix_Volume( channel, 100 * 128 / 100 ); + + Mix_PlayChannel( channel, wave_sample[channel], 1 ); + + } + + #else + #if defined(__FreeBSD__) #include #elif defined(__NetBSD__) *************** *** 270,275 **** --- 415,422 ---- /* 演奏完了待ち */ ioctl(ainfo->fd, SNDCTL_DSP_SYNC, NULL); } + + #endif #else diff -c -N -B xlvns.orig/cdinfo.c xlvns.new/cdinfo.c *** xlvns.orig/cdinfo.c Mon Jul 29 14:24:38 2002 --- xlvns.new/cdinfo.c Wed Feb 16 15:45:18 2005 *************** *** 50,55 **** --- 50,59 ---- #include "cdinfo.h" + #include + #include + #include "MadWrapper.h" + static u_int msf2lba (u_char m, u_char s, u_char f); static int cdinfo_get_entry(CDInfo *info); *************** *** 236,241 **** --- 240,408 ---- } #elif defined(__linux__) + #if 1 + + /* for Zaurus */ + #include + + SMPEG *mp3_sample; + SDL_AudioSpec audio_format; + bool audio_open_flag; + int mp3_volume=100; + extern void mp3callback( void *userdata, Uint8 *stream, int len ); + + static struct cdrom_msf lba2msf (u_int from, u_int to); + + static struct cdrom_msf + lba2msf (u_int from, u_int to) + { + struct cdrom_msf msf; + + msf.cdmsf_min0 = (from + 150) / (60 * 75); + msf.cdmsf_sec0 = (from + 150) / 75 - msf.cdmsf_min0 * 60; + msf.cdmsf_frame0 = (from + 150) - msf.cdmsf_sec0 * 75 - msf.cdmsf_min0 * 60 * 75; + + msf.cdmsf_min1 = (to + 150) / (60 * 75); + msf.cdmsf_sec1 = (to + 150) / 75 - msf.cdmsf_min1 * 60; + msf.cdmsf_frame1 = (to + 150) - msf.cdmsf_sec1 * 75 - msf.cdmsf_min1 * 60 * 75; + + return msf; + } + + /* + * トラック情報の取得 + */ + + static int + cdinfo_get_entry(CDInfo *info) + { + int no; + + /* 情報クリア */ + if (info->infos) + free(info->infos); + info->track_no = 0; + + /* ヘッダ情報取得 */ + no = 34; + + info->track_no = no; + if ((info->infos = malloc(sizeof info->infos[0] * no)) == NULL) { + perror("cdinfo_get_entry"); + exit(1); + } + + { + /* 情報取得 */ + int i; + for (i=0; iinfos[i].block = 0; + info->infos[i].len = 0; + /* + fprintf(stderr, "block:%d len:%d\n", + info->infos[i].block, + info->infos[i].len); + */ + } + } + + return 0; + } + + int + cdinfo_play(CDInfo *info, int track_no) + { + #if 1 + char file_name[128]; + + sprintf( file_name, "%s/cd/track%2.2d.mp3", XLVNSPACKDIR,track_no-1 ); + mp3_sample = SMPEG_new( file_name, NULL, 0 ); + //printf("play [%s]\n",file_name); + + if ( SMPEG_error( mp3_sample ) ){ + //printf(" failed. [%s]\n",SMPEG_error( mp3_sample )); + // The line below fails. ????? + //SMPEG_delete( mp3_sample ); + mp3_sample = NULL; + return -1; + } + else{ + SMPEG_play( mp3_sample ); + SMPEG_setvolume( mp3_sample, mp3_volume ); + + Mix_HookMusic( mp3callback, mp3_sample ); + } + + return 0; + #endif + } + + int + cdinfo_stop(CDInfo *info) + { + #if 1 + SMPEG_stop( mp3_sample ); + Mix_HookMusic( NULL, NULL ); + SMPEG_delete( mp3_sample ); + mp3_sample = NULL; + #endif + } + + int + cdinfo_pause(CDInfo *info) + { + return 0; + } + + /* + * 現在の演奏中の時刻を取得 + */ + int + cdinfo_get_current_time(CDInfo *info, CDTimeInfo *current) + { + current->block = 0; + return 0; + } + + int + cdinfo_set_volume(CDInfo *info, int vol) + { + #if 1 + SMPEG_setvolume( mp3_sample, vol/2 ); + if(vol==0){ + SMPEG_stop( mp3_sample ); + Mix_HookMusic( NULL, NULL ); + SMPEG_delete( mp3_sample ); + mp3_sample = NULL; + } + return 0; + #endif + } + + CDInfo * + cdinfo_new(const char *devicename) + { + CDInfo *c; + + if ((c = malloc(sizeof *c)) == NULL) { + perror("cdinfo_new"); + exit(1); + } + + c->track_no = 0; + c->infos = NULL; + + if (cdinfo_get_entry(c)) { + cdinfo_delete(c); + return NULL; + } + + return c; + } + + #else + + /* Original */ #include static struct cdrom_msf lba2msf (u_int from, u_int to); *************** *** 438,443 **** --- 605,611 ---- return c; } + #endif #elif defined(sun) && defined(SVR4) /* Solaris */ #include diff -c -N -B xlvns.orig/kizuato.c xlvns.new/kizuato.c *** xlvns.orig/kizuato.c Mon Jul 29 14:24:38 2002 --- xlvns.new/kizuato.c Wed Feb 16 15:45:18 2005 *************** *** 15,20 **** --- 15,21 ---- * 痕 シナリオ処理エンジン */ + #define size_t unsigned int #include #include "kizuato.h" diff -c -N -B xlvns.orig/kizuato_ed.c xlvns.new/kizuato_ed.c *** xlvns.orig/kizuato_ed.c Mon Jul 29 14:24:38 2002 --- xlvns.new/kizuato_ed.c Wed Feb 16 15:45:18 2005 *************** *** 15,20 **** --- 15,21 ---- * 痕 エンディング */ + #define size_t unsigned int #include #include "kizuato.h" diff -c -N -B xlvns.orig/kizuato_menu.c xlvns.new/kizuato_menu.c *** xlvns.orig/kizuato_menu.c Mon Jul 29 14:24:38 2002 --- xlvns.new/kizuato_menu.c Wed Feb 16 15:45:18 2005 *************** *** 15,20 **** --- 15,21 ---- * 痕 しおり選択メニュー表示 */ + #define size_t unsigned int #include #include "kizuato.h" diff -c -N -B xlvns.orig/kizuato_op.c xlvns.new/kizuato_op.c *** xlvns.orig/kizuato_op.c Mon Jul 29 14:24:38 2002 --- xlvns.new/kizuato_op.c Wed Feb 16 15:45:18 2005 *************** *** 15,20 **** --- 15,21 ---- * 痕 オープニング/タイトル */ + #define size_t unsigned int #include #include #include "kizuato.h" diff -c -N -B xlvns.orig/lvnsimage_sximage.c xlvns.new/lvnsimage_sximage.c *** xlvns.orig/lvnsimage_sximage.c Mon Jul 29 14:24:40 2002 --- xlvns.new/lvnsimage_sximage.c Wed Feb 16 15:45:18 2005 *************** *** 45,52 **** } } ! #define SXIMAGE_TPIXEL_ALPHABLEND(s,r,g,b,r2,g2,b2,p)\ ! (s->tcmap->red[r+cmap_a[p][r2-r+255]] | s->tcmap->green[g+cmap_a[p][g2-g+255]] | s->tcmap->blue[b+cmap_a[p][b2-b+255]]) /* * LvnsImage から SXImage に対してパレットの設定を行う --- 45,51 ---- } } ! #define SXIMAGE_TPIXEL_ALPHABLEND(s,r,g,b,r2,g2,b2,p) (s->tcmap->red[r+cmap_a[p][r2-r+255]] | s->tcmap->green[g+cmap_a[p][g2-g+255]] | s->tcmap->blue[b+cmap_a[p][b2-b+255]]) /* * LvnsImage から SXImage に対してパレットの設定を行う Common subdirectories: xlvns.orig/mgConvert and xlvns.new/mgConvert diff -c -N -B xlvns.orig/sizuku.c xlvns.new/sizuku.c *** xlvns.orig/sizuku.c Mon Jul 29 14:24:40 2002 --- xlvns.new/sizuku.c Wed Feb 16 15:45:19 2005 *************** *** 14,20 **** --- 14,22 ---- /* * 雫 シナリオ処理エンジン */ + #define size_t unsigned int #include + #include #include #include "sizuku.h" diff -c -N -B xlvns.orig/sizuku_ed.c xlvns.new/sizuku_ed.c *** xlvns.orig/sizuku_ed.c Mon Jul 29 14:24:40 2002 --- xlvns.new/sizuku_ed.c Wed Feb 16 15:45:19 2005 *************** *** 14,20 **** /* * 雫 エンディング */ ! #include #include "sizuku.h" --- 14,20 ---- /* * 雫 エンディング */ ! #define size_t unsigned int #include #include "sizuku.h" diff -c -N -B xlvns.orig/sizuku_menu.c xlvns.new/sizuku_menu.c *** xlvns.orig/sizuku_menu.c Mon Jul 29 14:24:40 2002 --- xlvns.new/sizuku_menu.c Wed Feb 16 15:45:19 2005 *************** *** 15,20 **** --- 15,21 ---- * 雫 しおり選択メニュー表示 */ + #define size_t unsigned int #include #include "sizuku.h" diff -c -N -B xlvns.orig/sizuku_op.c xlvns.new/sizuku_op.c *** xlvns.orig/sizuku_op.c Mon Jul 29 14:24:40 2002 --- xlvns.new/sizuku_op.c Wed Feb 16 15:45:19 2005 *************** *** 14,20 **** /* * 雫 オープニング/タイトル */ ! #include #include "sizuku.h" --- 14,20 ---- /* * 雫 オープニング/タイトル */ ! #define size_t unsigned int #include #include "sizuku.h" diff -c -N -B xlvns.orig/sximage.h xlvns.new/sximage.h *** xlvns.orig/sximage.h Mon Jul 29 14:24:40 2002 --- xlvns.new/sximage.h Wed Feb 16 15:45:25 2005 *************** *** 19,26 **** #define STORE24_HSB(p,d) (p[2]= (d) & 0xff, p[1]= ((d) >> 8) & 0xff, p[0]= ((d) >> 16) & 0xff) #define STORE32_HSB(p,d) (p[3]= (d) & 0xff, p[2]= ((d) >> 8) & 0xff, p[1]= ((d) >> 16) & 0xff, p[0]= ((d) >> 24) & 0xf) ! #define SXIMAGE_TPIXEL(s,r,g,b)\ ! (s->tcmap->red[r] | s->tcmap->green[g] | s->tcmap->blue[b]) /* * XImage にディスプレイおよび表示対象になるウィンドウの --- 19,25 ---- #define STORE24_HSB(p,d) (p[2]= (d) & 0xff, p[1]= ((d) >> 8) & 0xff, p[0]= ((d) >> 16) & 0xff) #define STORE32_HSB(p,d) (p[3]= (d) & 0xff, p[2]= ((d) >> 8) & 0xff, p[1]= ((d) >> 16) & 0xff, p[0]= ((d) >> 24) & 0xf) ! #define SXIMAGE_TPIXEL(s,r,g,b) (s->tcmap->red[r] | s->tcmap->green[g] | s->tcmap->blue[b]) /* * XImage にディスプレイおよび表示対象になるウィンドウの diff -c -N -B xlvns.orig/toheart.c xlvns.new/toheart.c *** xlvns.orig/toheart.c Mon Jul 29 14:24:40 2002 --- xlvns.new/toheart.c Wed Feb 16 15:45:19 2005 *************** *** 15,20 **** --- 15,21 ---- * To Heart シナリオ処理エンジン */ + #define size_t unsigned int #include #include "toheart.h" *************** *** 650,655 **** --- 651,658 ---- CommandParser(Lvns *lvns, const u_char **p, Bool history_mode) { ToHeartState *state = (ToHeartState *)lvns->system_state; + + //audioinfo_play(NULL,NULL,0); switch (c[0]) { case 0x20: diff -c -N -B xlvns.orig/toheart_ed.c xlvns.new/toheart_ed.c *** xlvns.orig/toheart_ed.c Mon Jul 29 14:24:40 2002 --- xlvns.new/toheart_ed.c Wed Feb 16 15:45:19 2005 *************** *** 15,20 **** --- 15,21 ---- * ToHeart エンディング */ + #define size_t unsigned int #include #include "toheart.h" diff -c -N -B xlvns.orig/toheart_menu.c xlvns.new/toheart_menu.c *** xlvns.orig/toheart_menu.c Mon Jul 29 14:24:40 2002 --- xlvns.new/toheart_menu.c Wed Feb 16 15:45:19 2005 *************** *** 15,20 **** --- 15,21 ---- * ToHeart しおり選択メニュー表示 */ + #define size_t unsigned int #include #include #include diff -c -N -B xlvns.orig/toheart_op.c xlvns.new/toheart_op.c *** xlvns.orig/toheart_op.c Mon Jul 29 14:24:40 2002 --- xlvns.new/toheart_op.c Wed Feb 16 15:45:19 2005 *************** *** 15,20 **** --- 15,21 ---- * ToHeart オープニング/タイトル */ + #define size_t unsigned int #include #include "toheart.h" Common subdirectories: xlvns.orig/xlvns.orig and xlvns.new/xlvns.orig Common subdirectories: xlvns.orig/xlvns.pbproj and xlvns.new/xlvns.pbproj