Date: Tue, 22 Dec 2015 04:49:25 +0000 (UTC) From: Martin Wilke <miwi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r404212 - in head/games/xscavenger: . files Message-ID: <201512220449.tBM4nPK6041914@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: miwi Date: Tue Dec 22 04:49:24 2015 New Revision: 404212 URL: https://svnweb.freebsd.org/changeset/ports/404212 Log: - Update to 1.4.5 - Update WWW PR: 205208 Submitted by: Ports Fury Approved by: mat (mentor) Differential Revision: D4632 Modified: head/games/xscavenger/Makefile head/games/xscavenger/distinfo head/games/xscavenger/files/patch-sound.c head/games/xscavenger/pkg-descr Modified: head/games/xscavenger/Makefile ============================================================================== --- head/games/xscavenger/Makefile Tue Dec 22 04:39:55 2015 (r404211) +++ head/games/xscavenger/Makefile Tue Dec 22 04:49:24 2015 (r404212) @@ -2,16 +2,13 @@ # $FreeBSD$ PORTNAME= xscavenger -PORTVERSION= 1.4.4 -PORTREVISION= 2 +PORTVERSION= 1.4.5 CATEGORIES= games -MASTER_SITES= http://www.xdr.com/dash/ +MASTER_SITES= http://www.linuxmotors.com/scavenger/downloads/ MAINTAINER= ports@FreeBSD.org COMMENT= Lode Runner clone for X11 -BROKEN= unfetchable - LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/../copyright @@ -22,6 +19,18 @@ USE_XORG= x11 xext CFLAGS+= -Wno-return-type -Wno-pointer-sign +DESKTOP_ENTRIES="XScavenger" "" "" "scavenger" "" "" + +OPTIONS_DEFINE= ALSA +OPTIONS_DEFAULT= ALSA + +ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib +ALSA_CFLAGS_OFF= -DNO_ALSA + +post-patch-ALSA-off: + @${REINPLACE_CMD} -e \ + 's|-lasound||' ${WRKSRC}/Imakefile + pre-configure: @${LN} -sf scavenger.6 ${WRKSRC}/scavenger.man @${ECHO_CMD} "MANSUFFIX=6" >> ${WRKSRC}/Imakefile Modified: head/games/xscavenger/distinfo ============================================================================== --- head/games/xscavenger/distinfo Tue Dec 22 04:39:55 2015 (r404211) +++ head/games/xscavenger/distinfo Tue Dec 22 04:49:24 2015 (r404212) @@ -1,2 +1,2 @@ -SHA256 (xscavenger-1.4.4.tgz) = 65c8d2224068151fcac704f34b91fb46056f77b708b1a60170a955d93751553e -SIZE (xscavenger-1.4.4.tgz) = 193346 +SHA256 (xscavenger-1.4.5.tgz) = f719ffd4ed2abaed9f34b5d22bc392f3067b5c4b19bea2e9a02be07243a4d406 +SIZE (xscavenger-1.4.5.tgz) = 192990 Modified: head/games/xscavenger/files/patch-sound.c ============================================================================== --- head/games/xscavenger/files/patch-sound.c Tue Dec 22 04:39:55 2015 (r404211) +++ head/games/xscavenger/files/patch-sound.c Tue Dec 22 04:49:24 2015 (r404212) @@ -1,11 +1,227 @@ ---- sound.c.orig Tue May 22 17:45:42 2001 -+++ sound.c Tue May 22 17:45:53 2001 -@@ -5,7 +5,7 @@ - #include <unistd.h> - #include <fcntl.h> - #include <sys/ioctl.h> --#include <linux/soundcard.h> -+#include <sys/soundcard.h> - #include <sys/time.h> - #include <signal.h> +--- sound.c.orig 2014-11-18 23:26:13 UTC ++++ sound.c +@@ -10,7 +10,13 @@ #include <string.h> + #include <errno.h> + ++#ifdef NO_ALSA ++#include <sys/ioctl.h> ++#include <sys/soundcard.h> ++#define SOUNDDEV "/dev/dsp" ++#else + #include <alsa/asoundlib.h> ++#endif + + + #include "scav.h" +@@ -42,10 +48,14 @@ sample samples[NUMSOUNDS]; + + int soundworking=0; + int fragment; ++#ifdef NO_ALSA ++int dsp; ++#endif + int soundwrite,soundread; + int *soundbuffer; + int soundbufferlen; + ++#ifndef NO_ALSA + snd_pcm_t *playback_handle; + + void opendsp(int samplerate) +@@ -122,6 +132,7 @@ void opendsp(int samplerate) + } + + } ++#endif + + + void soundinit(void) +@@ -129,26 +140,50 @@ void soundinit(void) + int fd[2]; + char devname[256]; + int value; ++#ifndef NO_ALSA + int res; ++#endif + + sprintf(dirlist,"%s/%s,%s",localname,localdirname,libname); + soundworking=0; ++#ifdef NO_ALSA ++ pipe(fd); ++#else + res=pipe(fd);res=res;//STFU ++#endif + soundread=fd[0]; + soundwrite=fd[1]; ++#ifdef NO_ALSA ++ if(fork()) ++#else + res = fork(); + if(res>0) ++#endif + { + close(soundread); + return; + } + close(soundwrite); + memset(samples,0,sizeof(samples)); ++#ifdef NO_ALSA ++ strcpy(devname,SOUNDDEV); ++ dsp=open(devname,O_WRONLY); ++ if(dsp<0) goto failed; ++ fragment=0x20009; ++ ioctl(dsp,SNDCTL_DSP_SETFRAGMENT,&fragment); ++ value=10000; ++ ioctl(dsp,SNDCTL_DSP_SPEED,&value); ++ value=0; ++ ioctl(dsp,SNDCTL_DSP_STEREO,&value); ++ ioctl(dsp,SNDCTL_DSP_GETBLKSIZE,&fragment); ++ if(!fragment) {close(dsp);goto failed;} ++#else + + // 10,000 hz mono 8bit samples + fragment = 256; + opendsp(10000); + ++#endif + soundbufferlen=fragment*sizeof(int); + soundbuffer=malloc(soundbufferlen); + if(!soundbuffer) goto failed; +@@ -180,12 +215,21 @@ int i,file,size,len; + } + size=lseek(file,0,SEEK_END); + lseek(file,0,SEEK_SET); ++#ifdef NO_ALSA ++ len=samples[num].len=(size+fragment-1)/fragment; ++#else + int expand = 1; + len=samples[num].len=(size*expand+fragment-1)/fragment; ++#endif + len*=fragment; + p1=samples[num].data=malloc(len); + if(p1) + { ++#ifdef NO_ALSA ++ i=read(file,p1,size); ++ if(len-size) memset(p1+size,0,len-size); ++ while(size--) *p1++ ^= 0x80; ++#else + memset(p1, 0, len); + int got=read(file,p1,size); + for(i=got-1;i>=0;--i) +@@ -194,6 +238,7 @@ int i,file,size,len; + for(j=expand-1;j>=0;--j) + p1[i*expand+j] = p1[i] - 0x80; + } ++#endif + } else + samples[num].data=0; + close(file); +@@ -207,8 +252,12 @@ signed char *p; + int *ip; + int playing[MIXMAX],position[MIXMAX]; + int which; ++#ifdef NO_ALSA ++unsigned char clip[8192]; ++#else + int *mixbuffer; + short *outbuffer; ++#endif + + while(!soundworking) + { +@@ -223,12 +272,21 @@ short *outbuffer; + com=*commands; + if(com==SOUND_EXIT) exit(0); + } ++#ifdef NO_ALSA ++ for(i=0;i<8192;i++) ++ { ++ j=i-4096; ++ clip[i]=j > 127 ? 255 : (j<-128 ? 0 : j+128); ++ } ++#endif + for(i=0;i<NUMSOUNDS;++i) + readsound(i); + memset(playing,0,sizeof(playing)); + memset(position,0,sizeof(position)); ++#ifndef NO_ALSA + mixbuffer = malloc(fragment * sizeof(*mixbuffer)); + outbuffer = malloc(fragment * sizeof(*outbuffer)); ++#endif + for(;;) + { + commandlen=read(soundread,commands,64); +@@ -238,10 +296,18 @@ short *outbuffer; + commandlen=0; + if(errno==EPIPE) exit(0); + } else if(commandlen==0) exit(0); ++#ifdef NO_ALSA ++ p=commands; ++#else + signed char *comp=commands; ++#endif + while(commandlen--) + { ++#ifdef NO_ALSA ++ com=*p++; ++#else + com=*comp++; ++#endif + if(com==SOUND_QUIET) {memset(position,0,sizeof(position));continue;} + if(com==SOUND_EXIT) exit(0); + if(com<NUMSOUNDS) +@@ -261,7 +327,11 @@ short *outbuffer; + position[i]=0; + } + } ++#ifdef NO_ALSA ++ memset(soundbuffer,0,soundbufferlen); ++#else + memset(mixbuffer, 0, fragment * sizeof(*mixbuffer)); ++#endif + for(i=0;i<MIXMAX;++i) + { + if(!position[i]) continue; +@@ -274,6 +344,17 @@ short *outbuffer; + p=samples[which].data; + if(!p) continue; + p+=fragment*(position[i]++ -1); ++#ifdef NO_ALSA ++ ip=soundbuffer; ++ j=fragment; ++ while(j--) *ip++ += *p++; ++ } ++ j=fragment; ++ ip=soundbuffer; ++ p=(char *) soundbuffer; ++ while(j--) *p++ = clip[4096+*ip++]; ++ write(dsp,(char *)soundbuffer,fragment); ++#else + + for(j=0;j<fragment;++j) + mixbuffer[j] += 255*p[j]; +@@ -289,15 +370,22 @@ short *outbuffer; + res = snd_pcm_writei(playback_handle, outbuffer, fragment); + //printf("res=%d\n", res); + ++#endif + } + } + + void playsound(int n) + { + char c; ++#ifndef NO_ALSA + int res; ++#endif + c=n; ++#ifdef NO_ALSA ++ write(soundwrite,&c,1); ++#else + res=write(soundwrite,&c,1);res=res;//STFU ++#endif + } + + void endsound(void) Modified: head/games/xscavenger/pkg-descr ============================================================================== --- head/games/xscavenger/pkg-descr Tue Dec 22 04:39:55 2015 (r404211) +++ head/games/xscavenger/pkg-descr Tue Dec 22 04:49:24 2015 (r404212) @@ -1,12 +1,12 @@ -Scavenger is like Lode Runner. You've got to run around gathering objects -while avoiding enemies. You can dig down through some of the blocks to get -at buried objects. After you've collected everything, ladders may appear. -To finish the level you've got to exit through the top of the screen. If -an enemy falls into a dug brick, he is stunned for a while. If the brick -fills in with him in it, he is killed, and he will reappear at the top of -the screen. +Scavenger is like Lode Runner. You've got to run around gathering +objects while avoiding enemies. You can dig down through some of the +blocks to get at buried objects. After you've collected everything, +ladders may appear. To finish the level you've got to exit through the +top of the screen. If an enemy falls into a dug brick, he is stunned for +a while. If the brick fills in with him in it, he is killed, and he will +reappear at the top of the screen. This version has a level editor for designing your own levels, and a graphics editor for drawing your own artwork. -WWW: http://www.xdr.com/dash/scavenger.html +WWW: http://www.linuxmotors.com/scavenger/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201512220449.tBM4nPK6041914>