diff options
author | Frank van de Pol <fvdpol@gentoo.org> | 2006-04-23 18:54:44 +0000 |
---|---|---|
committer | Frank van de Pol <fvdpol@gentoo.org> | 2006-04-23 18:54:44 +0000 |
commit | 15a7e931abeb3946f1e04996aa2a7dcef0a81fc7 (patch) | |
tree | 69864b922526513f07c42f8fa6ce3e4e60d138e7 /media-sound | |
parent | Marked stable on amd64 (diff) | |
download | gentoo-2-15a7e931abeb3946f1e04996aa2a7dcef0a81fc7.tar.gz gentoo-2-15a7e931abeb3946f1e04996aa2a7dcef0a81fc7.tar.bz2 gentoo-2-15a7e931abeb3946f1e04996aa2a7dcef0a81fc7.zip |
Added support for MMAP_COMPLEX.
(Portage version: 2.1_pre9-r4)
Diffstat (limited to 'media-sound')
7 files changed, 367 insertions, 1 deletions
diff --git a/media-sound/jack-audio-connection-kit/ChangeLog b/media-sound/jack-audio-connection-kit/ChangeLog index 29256f7c64e6..891053e65eab 100644 --- a/media-sound/jack-audio-connection-kit/ChangeLog +++ b/media-sound/jack-audio-connection-kit/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-sound/jack-audio-connection-kit # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-sound/jack-audio-connection-kit/ChangeLog,v 1.67 2006/04/01 17:26:15 fvdpol Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/jack-audio-connection-kit/ChangeLog,v 1.68 2006/04/23 18:54:43 fvdpol Exp $ + +*jack-audio-connection-kit-0.100.7-r2 (23 Apr 2006) + + 23 Apr 2006; Frank van de Pol <fvdpol@gentoo.org> + +files/jack-audio-connection-kit-mmap_complex.patch, + +jack-audio-connection-kit-0.100.7-r2.ebuild: + Added support for MMAP_COMPLEX. *jack-audio-connection-kit-0.100.7-r1 (01 Apr 2006) diff --git a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0 b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0 index 0c2a3c52a9f0..f7b300b12e06 100644 --- a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0 +++ b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0 @@ -1 +1,3 @@ MD5 dc28b3e8a663c090227e83be6fc1f2d4 jack-audio-connection-kit-0.100.0.tar.gz 682799 +RMD160 31548d58e545cb117428ca72e256a395363ff9b6 jack-audio-connection-kit-0.100.0.tar.gz 682799 +SHA256 2b858acc76d2d6e6a4b9d40c377c7040fcc41aa7d444b068caa69e80e1dc0295 jack-audio-connection-kit-0.100.0.tar.gz 682799 diff --git a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0-r1 b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0-r1 index 0c2a3c52a9f0..f7b300b12e06 100644 --- a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0-r1 +++ b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.0-r1 @@ -1 +1,3 @@ MD5 dc28b3e8a663c090227e83be6fc1f2d4 jack-audio-connection-kit-0.100.0.tar.gz 682799 +RMD160 31548d58e545cb117428ca72e256a395363ff9b6 jack-audio-connection-kit-0.100.0.tar.gz 682799 +SHA256 2b858acc76d2d6e6a4b9d40c377c7040fcc41aa7d444b068caa69e80e1dc0295 jack-audio-connection-kit-0.100.0.tar.gz 682799 diff --git a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7 b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7 index 12b208bafef3..e3e4d68d31c9 100644 --- a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7 +++ b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7 @@ -1 +1,3 @@ MD5 7a53b0af6a4005810e331bb3b0d84880 jack-audio-connection-kit-0.100.7.tar.gz 2119224 +RMD160 f445d8c40fa88e21500082ad2b5c60aafb925bd6 jack-audio-connection-kit-0.100.7.tar.gz 2119224 +SHA256 fd8e5ce630002a08200fdb0e7ca098c4a25b9052b4ed8219845b22091db50fa8 jack-audio-connection-kit-0.100.7.tar.gz 2119224 diff --git a/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7-r2 b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7-r2 new file mode 100644 index 000000000000..8e9478bc27d2 --- /dev/null +++ b/media-sound/jack-audio-connection-kit/files/digest-jack-audio-connection-kit-0.100.7-r2 @@ -0,0 +1,6 @@ +MD5 7a53b0af6a4005810e331bb3b0d84880 jack-audio-connection-kit-0.100.7.tar.gz 2119224 +RMD160 f445d8c40fa88e21500082ad2b5c60aafb925bd6 jack-audio-connection-kit-0.100.7.tar.gz 2119224 +SHA256 fd8e5ce630002a08200fdb0e7ca098c4a25b9052b4ed8219845b22091db50fa8 jack-audio-connection-kit-0.100.7.tar.gz 2119224 +MD5 b7a09c2299cea9876d4022c371c79dbd netjack-0.11rc2.tar.bz2 23207 +RMD160 8f29b9e9923dde990e3d9b950376ea0298329ed5 netjack-0.11rc2.tar.bz2 23207 +SHA256 c934521cfb1c85c83411e05ed453d81fc26f690527627c5a7d7a576bcc90fa3c netjack-0.11rc2.tar.bz2 23207 diff --git a/media-sound/jack-audio-connection-kit/files/jack-audio-connection-kit-mmap_complex.patch b/media-sound/jack-audio-connection-kit/files/jack-audio-connection-kit-mmap_complex.patch new file mode 100644 index 000000000000..cb2b54c75cb5 --- /dev/null +++ b/media-sound/jack-audio-connection-kit/files/jack-audio-connection-kit-mmap_complex.patch @@ -0,0 +1,196 @@ +diff -ru jack-audio-connection-kit-0.100.0.orig/drivers/alsa/alsa_driver.c jack-audio-connection-kit-0.100.0/drivers/alsa/alsa_driver.c +--- jack-audio-connection-kit-0.100.0.orig/drivers/alsa/alsa_driver.c 2005-09-23 19:33:25.000000000 +0200 ++++ jack-audio-connection-kit-0.100.0/drivers/alsa/alsa_driver.c 2005-09-23 19:34:11.000000000 +0200 +@@ -70,6 +70,16 @@ + driver->capture_addr = 0; + } + ++ if (driver->playback_interleave_skip) { ++ free (driver->playback_interleave_skip); ++ driver->playback_interleave_skip = NULL; ++ } ++ ++ if (driver->capture_interleave_skip) { ++ free (driver->capture_interleave_skip); ++ driver->capture_interleave_skip = NULL; ++ } ++ + if (driver->silent) { + free (driver->silent); + driver->silent = 0; +@@ -377,6 +387,9 @@ + if ((err = snd_pcm_hw_params_set_access ( + handle, hw_params, + SND_PCM_ACCESS_MMAP_INTERLEAVED)) < 0) { ++ if ((err = snd_pcm_hw_params_set_access ( ++ handle, hw_params, ++ SND_PCM_ACCESS_MMAP_COMPLEX)) < 0) { + jack_error ("ALSA: mmap-based access is not possible" + " for the %s " + "stream of this audio interface", +@@ -384,6 +397,7 @@ + return -1; + } + } ++ } + + format = sample_width == 4 ? 0 : NOFORMATS - 1; + while (1) { +@@ -683,7 +697,8 @@ + err = snd_pcm_hw_params_get_access (driver->playback_hw_params, + &access); + driver->playback_interleaved = +- (access == SND_PCM_ACCESS_MMAP_INTERLEAVED); ++ (access == SND_PCM_ACCESS_MMAP_INTERLEAVED) ++ || (access == SND_PCM_ACCESS_MMAP_COMPLEX); + + if (p_period_size != driver->frames_per_cycle) { + jack_error ("alsa_pcm: requested an interrupt every %" +@@ -705,8 +720,8 @@ + err = snd_pcm_hw_params_get_access (driver->capture_hw_params, + &access); + driver->capture_interleaved = +- (access == SND_PCM_ACCESS_MMAP_INTERLEAVED); +- ++ (access == SND_PCM_ACCESS_MMAP_INTERLEAVED) ++ || (access == SND_PCM_ACCESS_MMAP_COMPLEX); + + if (c_period_size != driver->frames_per_cycle) { + jack_error ("alsa_pcm: requested an interrupt every %" +@@ -765,15 +780,11 @@ + driver->alsa_name_playback); + return -1; + } +- driver->playback_interleave_skip = my_areas[0].step / 8; + driver->interleave_unit = + snd_pcm_format_physical_width ( + driver->playback_sample_format) / 8; + } else { + driver->interleave_unit = 0; /* NOT USED */ +- driver->playback_interleave_skip = +- snd_pcm_format_physical_width ( +- driver->playback_sample_format) / 8; + } + + if (driver->capture_interleaved) { +@@ -785,11 +796,6 @@ + driver->alsa_name_capture); + return -1; + } +- driver->capture_interleave_skip = my_areas[0].step / 8; +- } else { +- driver->capture_interleave_skip = +- snd_pcm_format_physical_width ( +- driver->capture_sample_format) / 8; + } + + if (driver->playback_nchannels > driver->capture_nchannels) { +@@ -819,6 +825,10 @@ + malloc (sizeof (char *) * driver->playback_nchannels); + memset (driver->playback_addr, 0, + sizeof (char *) * driver->playback_nchannels); ++ driver->playback_interleave_skip = (unsigned long *) ++ malloc (sizeof (unsigned long *) * driver->playback_nchannels); ++ memset (driver->playback_interleave_skip, 0, ++ sizeof (unsigned long *) * driver->playback_nchannels); + driver->silent = (unsigned long *) + malloc (sizeof (unsigned long) + * driver->playback_nchannels); +@@ -841,6 +851,10 @@ + malloc (sizeof (char *) * driver->capture_nchannels); + memset (driver->capture_addr, 0, + sizeof (char *) * driver->capture_nchannels); ++ driver->capture_interleave_skip = (unsigned long *) ++ malloc (sizeof (unsigned long *) * driver->capture_nchannels); ++ memset (driver->capture_interleave_skip, 0, ++ sizeof (unsigned long *) * driver->capture_nchannels); + } + + driver->clock_sync_data = (ClockSyncStatus *) +@@ -897,6 +911,7 @@ + &driver->capture_areas[chn]; + driver->capture_addr[chn] = (char *) a->addr + + ((a->first + a->step * *capture_offset) / 8); ++ driver->capture_interleave_skip[chn] = (unsigned long ) (a->step / 8); + } + } + +@@ -915,6 +930,7 @@ + &driver->playback_areas[chn]; + driver->playback_addr[chn] = (char *) a->addr + + ((a->first + a->step * *playback_offset) / 8); ++ driver->playback_interleave_skip[chn] = (unsigned long ) (a->step / 8); + } + } + +@@ -1991,6 +2007,8 @@ + + driver->playback_addr = 0; + driver->capture_addr = 0; ++ driver->playback_interleave_skip = NULL; ++ driver->capture_interleave_skip = NULL; + + + driver->silent = 0; +Only in jack-audio-connection-kit-0.100.0/drivers/alsa: alsa_driver.c.orig +diff -ru jack-audio-connection-kit-0.100.0.orig/drivers/alsa/alsa_driver.h jack-audio-connection-kit-0.100.0/drivers/alsa/alsa_driver.h +--- jack-audio-connection-kit-0.100.0.orig/drivers/alsa/alsa_driver.h 2005-09-23 19:33:25.000000000 +0200 ++++ jack-audio-connection-kit-0.100.0/drivers/alsa/alsa_driver.h 2005-09-23 19:34:11.000000000 +0200 +@@ -65,8 +65,8 @@ + unsigned int playback_nfds; + unsigned int capture_nfds; + unsigned long interleave_unit; +- unsigned long capture_interleave_skip; +- unsigned long playback_interleave_skip; ++ unsigned long *capture_interleave_skip; ++ unsigned long *playback_interleave_skip; + channel_t max_nchannels; + channel_t user_nchannels; + channel_t playback_nchannels; +@@ -155,7 +155,7 @@ + (driver->playback_addr[chn], + 0, nframes * driver->playback_sample_bytes, + driver->interleave_unit, +- driver->playback_interleave_skip); ++ driver->playback_interleave_skip[chn]); + } else { + memset (driver->playback_addr[chn], 0, + nframes * driver->playback_sample_bytes); +@@ -171,7 +171,7 @@ + (driver->playback_addr[chn], + 0, nframes * driver->playback_sample_bytes, + driver->interleave_unit, +- driver->playback_interleave_skip); ++ driver->playback_interleave_skip[chn]); + } else { + memset (driver->playback_addr[chn], 0, + nframes * driver->playback_sample_bytes); +@@ -187,7 +187,7 @@ + driver->read_via_copy (buf, + driver->capture_addr[channel], + nsamples, +- driver->capture_interleave_skip); ++ driver->capture_interleave_skip[channel]); + } + + static inline void +@@ -199,7 +199,7 @@ + driver->write_via_copy (driver->playback_addr[channel], + buf, + nsamples, +- driver->playback_interleave_skip, ++ driver->playback_interleave_skip[channel], + driver->dither_state+channel); + alsa_driver_mark_channel_done (driver, channel); + } +@@ -213,8 +213,8 @@ + driver->channel_copy (driver->playback_addr[output_channel], + driver->capture_addr[input_channel], + nsamples * driver->playback_sample_bytes, +- driver->playback_interleave_skip, +- driver->capture_interleave_skip); ++ driver->playback_interleave_skip[output_channel], ++ driver->capture_interleave_skip[input_channel]); + alsa_driver_mark_channel_done (driver, output_channel); + } + diff --git a/media-sound/jack-audio-connection-kit/jack-audio-connection-kit-0.100.7-r2.ebuild b/media-sound/jack-audio-connection-kit/jack-audio-connection-kit-0.100.7-r2.ebuild new file mode 100644 index 000000000000..7676ee11d857 --- /dev/null +++ b/media-sound/jack-audio-connection-kit/jack-audio-connection-kit-0.100.7-r2.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/jack-audio-connection-kit/jack-audio-connection-kit-0.100.7-r2.ebuild,v 1.1 2006/04/23 18:54:43 fvdpol Exp $ + +inherit flag-o-matic eutils multilib + +NETJACK=netjack-0.11rc2 + +DESCRIPTION="A low-latency audio server" +HOMEPAGE="http://www.jackaudio.org" +SRC_URI="mirror://sourceforge/jackit/${P}.tar.gz http://netjack.sourceforge.net/${NETJACK}.tar.bz2" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="-alpha ~amd64 ~arm -hppa -ia64 -mips ~ppc ~ppc-macos -ppc64 ~sh -sparc ~x86" +IUSE="altivec alsa caps coreaudio doc debug jack-tmpfs mmx oss portaudio sndfile sse netjack" + +RDEPEND="dev-util/pkgconfig + sndfile? ( >=media-libs/libsndfile-1.0.0 ) + sys-libs/ncurses + caps? ( sys-libs/libcap ) + portaudio? ( =media-libs/portaudio-18* ) + alsa? ( >=media-libs/alsa-lib-0.9.1 ) + !media-sound/jack-cvs" +DEPEND="${RDEPEND} + doc? ( app-doc/doxygen )" + +pkg_setup() { + if ! use sndfile ; then + ewarn "sndfile not in USE flags. jack_rec will not be installed!" + fi + + if use caps; then + if [[ "${KV:0:3}" == "2.4" ]]; then + einfo "will build jackstart for 2.4 kernel" + else + einfo "using compatibility symlink for jackstart" + fi + fi + +} + +src_unpack() { + unpack ${A} + use netjack && unpack ${NETJACK}.tar.bz2 + cd ${S} + + # the docs option is in upstream, I'll leave the pentium2 foobage + # for the x86 folks...... kito@gentoo.org + + # Add doc option and fix --march=pentium2 in caps test + #epatch ${FILESDIR}/${PN}-doc-option.patch + + # compile and install jackstart, see #92895, #94887 + #if use caps ; then + # epatch ${FILESDIR}/${PN}-0.99.0-jackstart.patch + #fi + + epatch ${FILESDIR}/${PN}-transport.patch + epatch ${FILESDIR}/${PN}-mmap_complex.patch +} + +src_compile() { + local myconf + + sed -i "s/^CFLAGS=\$JACK_CFLAGS/CFLAGS=\"\$JACK_CFLAGS $(get-flag -march)\"/" configure + + use doc && myconf="--with-html-dir=/usr/share/doc/${PF}" + + if use jack-tmpfs; then + myconf="${myconf} --with-default-tmpdir=/dev/shm" + else + myconf="${myconf} --with-default-tmpdir=/var/run/jack" + fi + + if use userland_Darwin ; then + append-flags -fno-common + use altivec && append-flags -force_cpusubtype_ALL \ + -maltivec -mabi=altivec -mhard-float -mpowerpc-gfxopt + fi + + use sndfile && \ + export SNDFILE_CFLAGS="-I/usr/include" \ + export SNDFILE_LIBS="-L/usr/$(get_libdir) -lsndfile" + + econf \ + $(use_enable altivec) \ + $(use_enable alsa) \ + $(use_enable caps capabilities) $(use_enable caps stripped-jackd) \ + $(use_enable coreaudio) \ + $(use_enable debug) \ + $(use_enable doc html-docs) \ + $(use_enable mmx) \ + $(use_enable oss) \ + $(use_enable portaudio) \ + $(use_enable sse) $(use_enable sse dynsimd) \ + --with-pic \ + ${myconf} || die "configure failed" + emake || die "compilation failed" + + if use caps && [[ "${KV:0:3}" == "2.4" ]]; then + einfo "Building jackstart for 2.4 kernel" + cd ${S}/jackd + emake jackstart || die "jackstart build failed." + fi + + if use netjack; then + cd ${WORKDIR}/${NETJACK} + scons jack_source_dir=${S} + fi + +} + +src_install() { + make DESTDIR=${D} datadir=/usr/share/doc install || die + + if use caps; then + if [[ "${KV:0:3}" == "2.4" ]]; then + cd ${S}/jackd + dobin jackstart + else + dosym /usr/bin/jackd /usr/bin/jackstart + fi + fi + + if ! use jack-tmpfs; then + keepdir /var/run/jack + chmod 4777 ${D}/var/run/jack + fi + + if use doc; then + mv ${D}/usr/share/doc/${PF}/reference/html \ + ${D}/usr/share/doc/${PF}/ + + insinto /usr/share/doc/${PF} + doins -r ${S}/example-clients + else + rm -rf ${D}/usr/share/doc + fi + + rm -rf ${D}/usr/share/doc/${PF}/reference + + if use netjack; then + cd ${WORKDIR}/${NETJACK} + dobin alsa_in + dobin alsa_out + dobin jacknet_client + insinto /usr/lib/jack + doins jack_net.so + fi +} |