Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jul 1999 20:28:00 +0200 (CEST)
From:      espensk@stud.cs.uit.no
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/12498: Port of Xmms (X Multimedia System)
Message-ID:  <199907031828.UAA98538@hstudb.cs.uit.no>

next in thread | raw e-mail | index | archive | help

>Number:         12498
>Category:       ports
>Synopsis:       Port of Xmms (X Multimedia System)
>Confidential:   yes
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul  3 11:30:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Espen Skoglund
>Release:        FreeBSD 3.1-STABLE i386
>Organization:
University of Tromsų, Norway
>Environment:

	

>Description:

	

>How-To-Repeat:

	

>Fix:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	audio/xmms
#	audio/xmms/Makefile
#	audio/xmms/pkg
#	audio/xmms/pkg/COMMENT
#	audio/xmms/pkg/DESCR
#	audio/xmms/pkg/PLIST
#	audio/xmms/files
#	audio/xmms/files/md5
#	audio/xmms/patches
#	audio/xmms/patches/patch-ab
#	audio/xmms/patches/patch-ac
#	audio/xmms/patches/patch-aa
#
echo c - audio/xmms
mkdir -p audio/xmms > /dev/null 2>&1
echo x - audio/xmms/Makefile
sed 's/^X//' >audio/xmms/Makefile << 'END-of-audio/xmms/Makefile'
X# New ports collection makefile for:	xmms
X# Version required:		0.9.1
X# Date created:			3 July 1999
X# Whom:				Espen Skoglund <espensk@stud.cs.uit.no>
X#
X# $Id:$
X#
X
XDISTNAME=	xmms-0.9.1
XCATEGORIES=	audio
XMASTER_SITES=	ftp://ftp.xmms.org/xmms/0.9/
X
XMAINTAINER=	espensk@stud.cs.uit.no
X
XLIB_DEPENDS=	gtk12.2:${PORTSDIR}/x11-toolkits/gtk12 \
X		glib12.2:${PORTSDIR}/devel/glib12
X
XGNU_CONFIGURE=	yes
X#CONFIGURE_ARGS= "--no-recursion"
XCONFIGURE_ENV=	GTK_CONFIG=${X11BASE}/bin/gtk12-config \
X 		GLIB_CONFIG=${LOCALBASE}/bin/glib12-config
X
Xpost-configure:
X
X
X.include <bsd.port.mk>
END-of-audio/xmms/Makefile
echo c - audio/xmms/pkg
mkdir -p audio/xmms/pkg > /dev/null 2>&1
echo x - audio/xmms/pkg/COMMENT
sed 's/^X//' >audio/xmms/pkg/COMMENT << 'END-of-audio/xmms/pkg/COMMENT'
XX Multimedia System --- An audio player with a Winamp GUI
END-of-audio/xmms/pkg/COMMENT
echo x - audio/xmms/pkg/DESCR
sed 's/^X//' >audio/xmms/pkg/DESCR << 'END-of-audio/xmms/pkg/DESCR'
XXMMS --- X Multimedia System.  XMMS is a multimedia player based on
Xthe look of Winamp.  Currently it plays mpeg layer 1/2/3, wav, au, and
Xall formats supported by libmikmod.  It also plays CD audio.
X
XHomepage is located on <URL:http://www.xmms.org/>.
X
X    eSk
END-of-audio/xmms/pkg/DESCR
echo x - audio/xmms/pkg/PLIST
sed 's/^X//' >audio/xmms/pkg/PLIST << 'END-of-audio/xmms/pkg/PLIST'
Xbin/wmxmms
Xbin/xmms
Xinclude/xmms/configfile.h
Xinclude/xmms/dirbrowser.h
Xinclude/xmms/plugin.h
Xinclude/xmms/xmmsctrl.h
Xlib/libxmms.a
Xlib/libxmms.la
Xlib/libxmms.so.9
X@exec ln -fs %D/%F %B/libxmms.so
X@unexec rm -f %B/libxmms.so
Xlib/xmms/Effect/libecho.la
Xlib/xmms/Effect/libecho.so
Xlib/xmms/Effect/libsrndecho.la
Xlib/xmms/Effect/libsrndecho.so
Xlib/xmms/Effect/libstereo.la
Xlib/xmms/Effect/libstereo.so
Xlib/xmms/Effect/libvoice.la
Xlib/xmms/Effect/libvoice.so
Xlib/xmms/General/libir.la
Xlib/xmms/General/libir.so
Xlib/xmms/General/libsong_change.la
Xlib/xmms/General/libsong_change.so
Xlib/xmms/Input/libcdaudio.la
Xlib/xmms/Input/libcdaudio.so
Xlib/xmms/Input/libmpg123.la
Xlib/xmms/Input/libmpg123.so
Xlib/xmms/Input/libwav.la
Xlib/xmms/Input/libwav.so
Xlib/xmms/Output/libOSS.la
Xlib/xmms/Output/libOSS.so
Xlib/xmms/Output/libdisk_writer.la
Xlib/xmms/Output/libdisk_writer.so
Xshare/xmms/wmxmms.xpm
X@dirrm include/xmms
X@dirrm lib/xmms/Effect
X@dirrm lib/xmms/General
X@dirrm lib/xmms/Input
X@dirrm lib/xmms/Output
X@dirrm lib/xmms
X@dirrm share/xmms
END-of-audio/xmms/pkg/PLIST
echo c - audio/xmms/files
mkdir -p audio/xmms/files > /dev/null 2>&1
echo x - audio/xmms/files/md5
sed 's/^X//' >audio/xmms/files/md5 << 'END-of-audio/xmms/files/md5'
XMD5 (xmms-0.9.1.tar.gz) = 57a3ff0102ece7583c4ed2af876404fb
END-of-audio/xmms/files/md5
echo c - audio/xmms/patches
mkdir -p audio/xmms/patches > /dev/null 2>&1
echo x - audio/xmms/patches/patch-ab
sed 's/^X//' >audio/xmms/patches/patch-ab << 'END-of-audio/xmms/patches/patch-ab'
X*** configure.orig	Sat Jul  3 19:47:22 1999
X--- configure	Sat Jul  3 19:46:47 1999
X***************
X*** 637,642 ****
X--- 637,643 ----
X    fi
X  fi
X  echo "$ac_t""$INSTALL" 1>&6
X+ ac_cv_path_install="$INSTALL"
X  
X  # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
X  # It thinks the first close brace ends the variable substitution.
END-of-audio/xmms/patches/patch-ab
echo x - audio/xmms/patches/patch-ac
sed 's/^X//' >audio/xmms/patches/patch-ac << 'END-of-audio/xmms/patches/patch-ac'
X*** libxmms/configure.orig	Sat Jul  3 19:47:39 1999
X--- libxmms/configure	Sat Jul  3 19:46:37 1999
X***************
X*** 579,585 ****
X  # ./install, which can be erroneously created by make from ./install.sh.
X  echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
X  echo "configure:582: checking for a BSD compatible install" >&5
X! if test -z "$INSTALL"; then
X  if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
X    echo $ac_n "(cached) $ac_c" 1>&6
X  else
X--- 579,585 ----
X  # ./install, which can be erroneously created by make from ./install.sh.
X  echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
X  echo "configure:582: checking for a BSD compatible install" >&5
X! if test -z "$NO___INSTALL"; then
X  if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
X    echo $ac_n "(cached) $ac_c" 1>&6
X  else
END-of-audio/xmms/patches/patch-ac
echo x - audio/xmms/patches/patch-aa
sed 's/^X//' >audio/xmms/patches/patch-aa << 'END-of-audio/xmms/patches/patch-aa'
X*** Output/OSS/audio.c.orig	Wed Jun 16 21:51:12 1999
X--- Output/OSS/audio.c	Sat Jul  3 17:32:16 1999
X***************
X*** 89,95 ****
X  	else
X  		bytes = 0;
X  
X! 	if (!oss_used() && bytes <= 0)
X  		return FALSE;
X  
X  	return TRUE;
X--- 89,95 ----
X  	else
X  		bytes = 0;
X  
X! 	if (!oss_used() /*&& bytes <= 0*/)
X  		return FALSE;
X  
X  	return TRUE;
X***************
X*** 185,198 ****
X  
X  void oss_write(void *ptr, gint length)
X  {
X! 	gint cnt, off = 0, w;
X  
X  	if (!realtime)
X  	{
X- 		while (oss_free() < length)
X- 			xmms_usleep(10000);
X- 
X  		remove_prebuffer = FALSE;
X  		written += length;
X  		while (length > 0)
X  		{
X--- 185,197 ----
X  
X  void oss_write(void *ptr, gint length)
X  {
X! 	gint cnt, off = 0;
X! 	audio_buf_info abuf_info;
X  
X  	if (!realtime)
X  	{
X  		remove_prebuffer = FALSE;
X+ 
X  		written += length;
X  		while (length > 0)
X  		{
X***************
X*** 200,206 ****
X  			memcpy(buffer + wr_index, ptr + off, cnt);
X  			wr_index = (wr_index + cnt) % buffer_size;
X  			length -= cnt;
X! 			off = cnt;
X  
X  		}
X  	}
X--- 199,205 ----
X  			memcpy(buffer + wr_index, ptr + off, cnt);
X  			wr_index = (wr_index + cnt) % buffer_size;
X  			length -= cnt;
X! 			off += cnt;
X  
X  		}
X  	}
X***************
X*** 208,231 ****
X  	{
X  		if (paused)
X  			return;
X! 
X! 		if (frequency == efrequency)
X! 			w = write(fd, ptr, length);
X! 		else
X! 			w = oss_downsample(ptr, length, frequency, efrequency);
X! 
X! 		if (w == -1 && errno == EIO)
X  		{
X! 			close(fd);
X! 			fd = open(device_name, O_WRONLY);
X! 			oss_set_audio_params();
X! 			if (frequency == efrequency)
X! 				w = write(fd, ptr, length);
X! 			else
X! 				w = oss_downsample(ptr, length, frequency, efrequency);
X  		}
X  		written += length;
X- 		output_bytes += w;
X  	}
X  
X  }
X--- 207,223 ----
X  	{
X  		if (paused)
X  			return;
X! 		ioctl(fd,SNDCTL_DSP_GETOSPACE,&abuf_info);
X! 		while(abuf_info.bytes < length)
X  		{
X! 			xmms_usleep(10000);
X! 			ioctl(fd,SNDCTL_DSP_GETOSPACE,&abuf_info);
X  		}
X+ 		if(frequency==efrequency)
X+ 			output_bytes += write(fd,ptr,length);
X+ 		else
X+ 			output_bytes += oss_downsample(ptr,length,frequency,efrequency);
X  		written += length;
X  	}
X  
X  }
X***************
X*** 281,323 ****
X  void *oss_loop(void *arg)
X  {
X  	gint length, cnt, w;
X- 	audio_buf_info abuf_info;
X  	fd_set set;
X  	struct timeval tv;
X  
X  	while (going)
X  	{
X  		if (oss_used() > prebuffer_size)
X- 		{
X  			prebuffer = FALSE;
X- 		}
X  		if (oss_used() > 0 && !paused && !prebuffer)
X  		{
X  			length = min(blk_size, oss_used());
X  			while (length > 0)
X  			{
X  				cnt = min(length, buffer_size - rd_index);
X! 
X! 				if (frequency == efrequency)
X! 					w = write(fd, buffer + rd_index, cnt);
X! 				else
X! 					w = oss_downsample(buffer + rd_index, cnt, frequency, efrequency);
X! 				if (w == -1 && errno == EIO)
X  				{
X! 					close(fd);
X! 					fd = open(device_name, O_WRONLY);
X! 					oss_set_audio_params();
X! 					if (frequency == efrequency)
X! 						w = write(fd, buffer + rd_index, cnt);
X! 					else
X! 						w = oss_downsample(buffer + rd_index, cnt, frequency, efrequency);
X  				}
X! 				output_bytes += w;
X! 				rd_index = (rd_index + cnt) % buffer_size;
X! 				length -= cnt;
X  			}
X! /*			if (!oss_used())
X! 				ioctl(fd, SNDCTL_DSP_POST, 0);*/
X  		}
X  		else
X  			xmms_usleep(10000);
X--- 273,312 ----
X  void *oss_loop(void *arg)
X  {
X  	gint length, cnt, w;
X  	fd_set set;
X  	struct timeval tv;
X+ 	audio_buf_info abuf_info;
X  
X  	while (going)
X  	{
X  		if (oss_used() > prebuffer_size)
X  			prebuffer = FALSE;
X  		if (oss_used() > 0 && !paused && !prebuffer)
X  		{
X  			length = min(blk_size, oss_used());
X  			while (length > 0)
X  			{
X  				cnt = min(length, buffer_size - rd_index);
X! 				ioctl(fd,SNDCTL_DSP_GETOSPACE,&abuf_info);
X! 				if(abuf_info.bytes >= length)
X  				{
X! 					while(length > 0)
X! 					{
X! 						cnt = min(length,buffer_size-rd_index);
X! 						if(frequency==efrequency)
X! 							output_bytes += write(fd,buffer+rd_index,cnt);
X! 						else
X! 							output_bytes += oss_downsample(buffer+rd_index,cnt,frequency,efrequency);
X! 						rd_index=(rd_index+cnt)%buffer_size;
X! 						length-=cnt;
X! 					}
X  				}
X! 				else
X! 					xmms_usleep(10000);
X! 				
X  			}
X! 			if (!oss_used())
X! 				ioctl(fd, SNDCTL_DSP_POST, 0);
X  		}
X  		else
X  			xmms_usleep(10000);
X***************
X*** 450,466 ****
X  
X  	channels = nch;
X  	frequency = rate;
X! 	buffer_size = (oss_cfg.buffer_size * bps) / 1000;
X! 	if (buffer_size < 8192)
X! 		buffer_size = 8192;
X! 	prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
X! 	if (buffer_size - prebuffer_size < 4096)
X! 		prebuffer_size = buffer_size - 4096;
X! 
X! 	buffer_size += device_buffer_size;
X! 	buffer = g_malloc0(buffer_size);
X! 	mlock(buffer, buffer_size);
X! 
X  	going = 1;
X  	flush = -1;
X  	prebuffer = 1;
X--- 439,457 ----
X  
X  	channels = nch;
X  	frequency = rate;
X! 	if(!realtime)
X! 	{
X! 		buffer_size = (oss_cfg.buffer_size * bps) / 1000;
X! 		if (buffer_size < 8192)
X! 			buffer_size = 8192;
X! 		prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
X! 		if (buffer_size - prebuffer_size < 4096)
X! 			prebuffer_size = buffer_size - 4096;
X! 
X! 		buffer_size += device_buffer_size;
X! 		buffer = g_malloc0(buffer_size);
X! 		mlock(buffer, buffer_size);
X! 	}
X  	going = 1;
X  	flush = -1;
X  	prebuffer = 1;
END-of-audio/xmms/patches/patch-aa
exit


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907031828.UAA98538>