FreeBSD Bugzilla – Attachment 13909 Details for
Bug 26276
New port: audio/wmix: An audio mixer for the WindowMaker dock with TV-like OSD
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
file.shar
file.shar (text/plain), 8.46 KB, created by
kkonstan
on 2001-04-01 23:40:01 UTC
(
hide
)
Description:
file.shar
Filename:
MIME Type:
Creator:
kkonstan
Created:
2001-04-01 23:40:01 UTC
Size:
8.46 KB
patch
obsolete
># 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: ># ># wmix ># wmix/pkg-plist ># wmix/pkg-descr ># wmix/pkg-comment ># wmix/distinfo ># wmix/Makefile ># wmix/files ># wmix/files/patch-aa ># wmix/files/patch-ab ># wmix/files/patch-ac ># >echo c - wmix >mkdir -p wmix > /dev/null 2>&1 >echo x - wmix/pkg-plist >sed 's/^X//' >wmix/pkg-plist << 'END-of-wmix/pkg-plist' >Xbin/wmix >END-of-wmix/pkg-plist >echo x - wmix/pkg-descr >sed 's/^X//' >wmix/pkg-descr << 'END-of-wmix/pkg-descr' >XWindowMaker dockapp mixer that allows toggling record source, muting individual >Xchannels, adjusting volume and balance, all in a compact dockapp size, with >XTV-like on-screen-display for volume levels. Supports mousewheel to adjust >Xcurrent channel volume, and can be controlled remotely with SIGUSR1 / SIGUSR2 >Xto adjust the volume, too. Keeps a simple configuration file for user-defined >Xsettings. >X >XWWW: http://www.ne.jp/asahi/linux/timecop/ >X >X-- K. Konstantinidis <kkonstan@daemon.gr> >END-of-wmix/pkg-descr >echo x - wmix/pkg-comment >sed 's/^X//' >wmix/pkg-comment << 'END-of-wmix/pkg-comment' >XAn audio mixer for the WindowMaker dock with TV-like OSD >END-of-wmix/pkg-comment >echo x - wmix/distinfo >sed 's/^X//' >wmix/distinfo << 'END-of-wmix/distinfo' >XMD5 (wmix-2.2-oss.tar.gz) = d8f7a51e0130c89e168631e2504477cb >END-of-wmix/distinfo >echo x - wmix/Makefile >sed 's/^X//' >wmix/Makefile << 'END-of-wmix/Makefile' >X# New ports collection makefile for: wmix >X# Date created: 2 April 2001 >X# Whom: Konstantinos Konstantinidis <kkonstan@daemon.gr> >X# >X# $FreeBSD$ >X# >X >XPORTNAME= wmix >XPORTVERSION= 2.2-oss >XCATEGORIES= audio windowmaker >XMASTER_SITES= http://www.ne.jp/asahi/linux/timecop/ >X >XMAINTAINER= kkonstan@daemon.gr >X >XUSE_XPM= YES >XUSE_X_PREFIX= YES >X >Xdo-install: >X @${INSTALL_PROGRAM} ${WRKSRC}/wmix ${PREFIX}/bin >X >X.include <bsd.port.mk> >END-of-wmix/Makefile >echo c - wmix/files >mkdir -p wmix/files > /dev/null 2>&1 >echo x - wmix/files/patch-aa >sed 's/^X//' >wmix/files/patch-aa << 'END-of-wmix/files/patch-aa' >X*** Makefile.orig Fri Mar 30 00:49:38 2001 >X--- Makefile Sun Apr 1 22:50:23 2001 >X*************** >X*** 1,6 **** >X! CC = gcc >X! CFLAGS = -O2 -Wall -I/usr/X11R6/include -DCUSTOM >X! LIBS = -L/usr/X11R6/lib -lX11 -lXpm -lXext >X >X SRCS = mix.c config.c >X OBJS = mix.o config.o >X--- 1,6 ---- >X! CC = cc >X! CFLAGS += -Wall -I/usr/local/include -I/usr/X11R6/include -DCUSTOM >X! LDFLAGS+= -L/usr/local/lib -L/usr/X11R6/lib -lX11 -lXpm -lXext >X >X SRCS = mix.c config.c >X OBJS = mix.o config.o >X*************** >X*** 8,14 **** >X all: mixer >X >X mixer: $(OBJS) >X! $(CC) $(CFLAGS) -o wmix $(OBJS) $(LIBS) >X >X clean: >X rm -f *.o *~ wmix trace >X--- 8,14 ---- >X all: mixer >X >X mixer: $(OBJS) >X! $(CC) $(CFLAGS) $(LDFLAGS) -o wmix $(OBJS) >X >X clean: >X rm -f *.o *~ wmix trace >END-of-wmix/files/patch-aa >echo x - wmix/files/patch-ab >sed 's/^X//' >wmix/files/patch-ab << 'END-of-wmix/files/patch-ab' >X*** mix.c.orig Fri Mar 30 00:38:55 2001 >X--- mix.c Sun Apr 1 22:54:26 2001 >X*************** >X*** 20,26 **** >X--- 20,30 ---- >X #include <stdlib.h> >X #include <string.h> >X #include <ctype.h> >X+ #ifdef __FreeBSD__ >X+ #include <popt.h> >X+ #else >X #include <getopt.h> >X+ #endif >X #include <time.h> >X #include <unistd.h> >X #include <fcntl.h> >X*************** >X*** 887,899 **** >X #ifdef CUSTOM >X #undef SOUND_DEVICE_NAMES >X >X! #define SOUND_DEVICE_NAMES {"Master Volume", "Bass", "Treble", "FM Synth Volume", "PCM - Wave Volume", "PC Speaker", "Line In Level", \ >X! "Microphone Level", "CD Input Volume", "Mixer Level", "PCM2 - Wave Volume", "Recording Volume", "Input Gain", "Output Gain", \ >X! "Line1 Input", "Line2 Input", "Line3 Input", "Digital 1", "Digital 2", "Digital 3", \ >X! "Phone Input", "Phone Output", "Video Card Volume", "Radio Card volume", "Monitor Volume"} >X #endif >X char *names[] = SOUND_DEVICE_NAMES; >X struct mixer_info mixer_info; >X >X if ((mixer_fd = open(value("mixerdev"), O_RDWR)) == -1) { >X printf("error: cannot open mixer device %s\n", value("mixerdev")); >X--- 891,905 ---- >X #ifdef CUSTOM >X #undef SOUND_DEVICE_NAMES >X >X! #define SOUND_DEVICE_NAMES {" Master Volume", " Bass", " Treble", " Synth Volume", " Wave Volume", " PC Speaker", " Line In Level", \ >X! " Microphone Level", " CD Volume", " Mixer Level", " Wave 2 Volume", " Recording Volume", " Input Gain", " Output Gain", \ >X! " Line1 Input", " Line2 Input", " Line3 Input", " Digital 1", " Digital 2", " Digital 3", \ >X! " Phone Input", " Phone Output", " Video Card Volume", " Radio Card Volume", " Monitor Volume"} >X #endif >X char *names[] = SOUND_DEVICE_NAMES; >X+ #ifndef __FreeBSD__ >X struct mixer_info mixer_info; >X+ #endif >X >X if ((mixer_fd = open(value("mixerdev"), O_RDWR)) == -1) { >X printf("error: cannot open mixer device %s\n", value("mixerdev")); >X*************** >X*** 921,932 **** >X exit(1); >X } >X >X if (ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info) == -1) { >X printf("error: cannot get mixer info off mixer\n"); >X exit(1); >X } >X- >X printf("%s (%s) [", mixer_info.name, mixer_info.id); >X for (count = 0; count < SOUND_MIXER_NRDEVICES; count++) { >X if ((1 << count) & devmask) { >X strcpy(mixer[nchannels].name, names[count]); >X--- 927,942 ---- >X exit(1); >X } >X >X+ #ifdef __FreeBSD__ >X+ printf("["); >X+ #else >X if (ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info) == -1) { >X printf("error: cannot get mixer info off mixer\n"); >X exit(1); >X } >X printf("%s (%s) [", mixer_info.name, mixer_info.id); >X+ #endif >X+ >X for (count = 0; count < SOUND_MIXER_NRDEVICES; count++) { >X if ((1 << count) & devmask) { >X strcpy(mixer[nchannels].name, names[count]); >X*************** >X*** 946,951 **** >X--- 956,962 ---- >X printf("0"); >X } >X } >X+ >X printf("]\n"); >X } >X >X*************** >X*** 953,971 **** >X { >X int i; >X int left, right, foo; >X int retry = 3; >X int stat = 1; >X struct mixer_info mixer_info; >X static int modify_counter; >X- static Mixer old_mix[SOUND_MIXER_NRDEVICES]; >X >X /* check for possible failure here - happens with older kernels */ >X if (ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info)) { >X while (retry-- && stat) >X stat = ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info); >X } >X >X! if (mixer_info.modify_counter != modify_counter) { >X i = 0; >X /* this happens if mixer was changed by another program, >X * so we need to update the values. We do not know, under OSS, >X--- 964,989 ---- >X { >X int i; >X int left, right, foo; >X+ char doupdate = 0; >X+ static Mixer old_mix[SOUND_MIXER_NRDEVICES]; >X+ #ifndef __FreeBSD__ >X int retry = 3; >X int stat = 1; >X struct mixer_info mixer_info; >X static int modify_counter; >X >X /* check for possible failure here - happens with older kernels */ >X if (ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info)) { >X while (retry-- && stat) >X stat = ioctl(mixer_fd, SOUND_MIXER_INFO, &mixer_info); >X } >X+ doupdate = mixer_info.modify_counter != modify_counter; >X+ #else >X+ /* clearly something better would be nice, but hey, it works! */ >X+ doupdate = 1; >X+ #endif >X >X! if (doupdate) { >X i = 0; >X /* this happens if mixer was changed by another program, >X * so we need to update the values. We do not know, under OSS, >X*************** >X*** 1022,1028 **** >X--- 1040,1048 ---- >X } >X } >X } >X+ #ifndef __FreeBSD__ >X modify_counter = mixer_info.modify_counter; >X+ #endif >X memcpy(old_mix, mixer, sizeof(mixer)); >X } >X >END-of-wmix/files/patch-ab >echo x - wmix/files/patch-ac >sed 's/^X//' >wmix/files/patch-ac << 'END-of-wmix/files/patch-ac' >X*** config.c.orig Sun Apr 1 22:43:30 2001 >X--- config.c Sun Apr 1 22:43:51 2001 >X*************** >X*** 135,141 **** >X free((struct var *) vars); >X vars = vp; >X } >X! if (vars) >X for (new = vars; new->v_next;) >X if (!strcmp(new->v_next->v_name, name)) { >X vp = new->v_next->v_next; >X--- 135,141 ---- >X free((struct var *) vars); >X vars = vp; >X } >X! if (vars) { >X for (new = vars; new->v_next;) >X if (!strcmp(new->v_next->v_name, name)) { >X vp = new->v_next->v_next; >X*************** >X*** 143,148 **** >X--- 143,149 ---- >X new->v_next = vp; >X } else >X new = new->v_next; >X+ } >X } >X >X char *vcopy(char *str) >END-of-wmix/files/patch-ac >exit
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 26276
: 13909