head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.168 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.166 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.164 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.3.0.162 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.160 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.158 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.156 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.154 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.3.0.152 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.3.0.150 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.148 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.146 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.144 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.142 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.140 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.138 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.136 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.3.0.134 pkgsrc-2021Q4-base:1.3 pkgsrc-2021Q3:1.3.0.132 pkgsrc-2021Q3-base:1.3 pkgsrc-2021Q2:1.3.0.130 pkgsrc-2021Q2-base:1.3 pkgsrc-2021Q1:1.3.0.128 pkgsrc-2021Q1-base:1.3 pkgsrc-2020Q4:1.3.0.126 pkgsrc-2020Q4-base:1.3 pkgsrc-2020Q3:1.3.0.124 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.3.0.120 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.3.0.100 pkgsrc-2020Q1-base:1.3 pkgsrc-2019Q4:1.3.0.122 pkgsrc-2019Q4-base:1.3 pkgsrc-2019Q3:1.3.0.118 pkgsrc-2019Q3-base:1.3 pkgsrc-2019Q2:1.3.0.116 pkgsrc-2019Q2-base:1.3 pkgsrc-2019Q1:1.3.0.114 pkgsrc-2019Q1-base:1.3 pkgsrc-2018Q4:1.3.0.112 pkgsrc-2018Q4-base:1.3 pkgsrc-2018Q3:1.3.0.110 pkgsrc-2018Q3-base:1.3 pkgsrc-2018Q2:1.3.0.108 pkgsrc-2018Q2-base:1.3 pkgsrc-2018Q1:1.3.0.106 pkgsrc-2018Q1-base:1.3 pkgsrc-2017Q4:1.3.0.104 pkgsrc-2017Q4-base:1.3 pkgsrc-2017Q3:1.3.0.102 pkgsrc-2017Q3-base:1.3 pkgsrc-2017Q2:1.3.0.98 pkgsrc-2017Q2-base:1.3 pkgsrc-2017Q1:1.3.0.96 pkgsrc-2017Q1-base:1.3 pkgsrc-2016Q4:1.3.0.94 pkgsrc-2016Q4-base:1.3 pkgsrc-2016Q3:1.3.0.92 pkgsrc-2016Q3-base:1.3 pkgsrc-2016Q2:1.3.0.90 pkgsrc-2016Q2-base:1.3 pkgsrc-2016Q1:1.3.0.88 pkgsrc-2016Q1-base:1.3 pkgsrc-2015Q4:1.3.0.86 pkgsrc-2015Q4-base:1.3 pkgsrc-2015Q3:1.3.0.84 pkgsrc-2015Q3-base:1.3 pkgsrc-2015Q2:1.3.0.82 pkgsrc-2015Q2-base:1.3 pkgsrc-2015Q1:1.3.0.80 pkgsrc-2015Q1-base:1.3 pkgsrc-2014Q4:1.3.0.78 pkgsrc-2014Q4-base:1.3 pkgsrc-2014Q3:1.3.0.76 pkgsrc-2014Q3-base:1.3 pkgsrc-2014Q2:1.3.0.74 pkgsrc-2014Q2-base:1.3 pkgsrc-2014Q1:1.3.0.72 pkgsrc-2014Q1-base:1.3 pkgsrc-2013Q4:1.3.0.70 pkgsrc-2013Q4-base:1.3 pkgsrc-2013Q3:1.3.0.68 pkgsrc-2013Q3-base:1.3 pkgsrc-2013Q2:1.3.0.66 pkgsrc-2013Q2-base:1.3 pkgsrc-2013Q1:1.3.0.64 pkgsrc-2013Q1-base:1.3 pkgsrc-2012Q4:1.3.0.62 pkgsrc-2012Q4-base:1.3 pkgsrc-2012Q3:1.3.0.60 pkgsrc-2012Q3-base:1.3 pkgsrc-2012Q2:1.3.0.58 pkgsrc-2012Q2-base:1.3 pkgsrc-2012Q1:1.3.0.56 pkgsrc-2012Q1-base:1.3 pkgsrc-2011Q4:1.3.0.54 pkgsrc-2011Q4-base:1.3 pkgsrc-2011Q3:1.3.0.52 pkgsrc-2011Q3-base:1.3 pkgsrc-2011Q2:1.3.0.50 pkgsrc-2011Q2-base:1.3 pkgsrc-2011Q1:1.3.0.48 pkgsrc-2011Q1-base:1.3 pkgsrc-2010Q4:1.3.0.46 pkgsrc-2010Q4-base:1.3 pkgsrc-2010Q3:1.3.0.44 pkgsrc-2010Q3-base:1.3 pkgsrc-2010Q2:1.3.0.42 pkgsrc-2010Q2-base:1.3 pkgsrc-2010Q1:1.3.0.40 pkgsrc-2010Q1-base:1.3 pkgsrc-2009Q4:1.3.0.38 pkgsrc-2009Q4-base:1.3 pkgsrc-2009Q3:1.3.0.36 pkgsrc-2009Q3-base:1.3 pkgsrc-2009Q2:1.3.0.34 pkgsrc-2009Q2-base:1.3 pkgsrc-2009Q1:1.3.0.32 pkgsrc-2009Q1-base:1.3 pkgsrc-2008Q4:1.3.0.30 pkgsrc-2008Q4-base:1.3 pkgsrc-2008Q3:1.3.0.28 pkgsrc-2008Q3-base:1.3 cube-native-xorg:1.3.0.26 cube-native-xorg-base:1.3 pkgsrc-2008Q2:1.3.0.24 pkgsrc-2008Q2-base:1.3 cwrapper:1.3.0.22 pkgsrc-2008Q1:1.3.0.20 pkgsrc-2008Q1-base:1.3 pkgsrc-2007Q4:1.3.0.18 pkgsrc-2007Q4-base:1.3 pkgsrc-2007Q3:1.3.0.16 pkgsrc-2007Q3-base:1.3 pkgsrc-2007Q2:1.3.0.14 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.3.0.12 pkgsrc-2007Q1-base:1.3 pkgsrc-2006Q4:1.3.0.10 pkgsrc-2006Q4-base:1.3 pkgsrc-2006Q3:1.3.0.8 pkgsrc-2006Q3-base:1.3 pkgsrc-2006Q2:1.3.0.6 pkgsrc-2006Q2-base:1.3 pkgsrc-2006Q1:1.3.0.4 pkgsrc-2006Q1-base:1.3 pkgsrc-2005Q4:1.3.0.2 pkgsrc-2005Q4-base:1.3 pkgsrc-2005Q3:1.2.0.24 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.22 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.20 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.18 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.16 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.14 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.12 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.2.0.10 pkgsrc-2003Q4-base:1.2 netbsd-1-6-1:1.2.0.6 netbsd-1-6-1-base:1.2 netbsd-1-6:1.2.0.8 netbsd-1-6-RELEASE-base:1.2 pkgviews:1.2.0.4 pkgviews-base:1.2 buildlink2:1.2.0.2 buildlink2-base:1.2 netbsd-1-5-PATCH003:1.2 netbsd-1-5-PATCH001:1.2 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2005.12.11.22.24.03; author joerg; state Exp; branches; next 1.2; 1.2 date 2001.05.05.10.05.34; author wiz; state Exp; branches; next 1.1; 1.1 date 2000.11.21.06.01.49; author hubertf; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2000.11.21.06.01.49; author hubertf; state Exp; branches; next ; desc @@ 1.3 log @Fix errno usage. @ text @$NetBSD$ --- streams.c.orig 2000-05-23 18:08:00.000000000 +0000 +++ streams.c @@@@ -36,7 +36,11 @@@@ #ifdef HAVE_SYS_SOUNDCARD_H #include #else +#ifdef __NetBSD__ +#include +#else #include +#endif /* __NetBSD__ */ #endif #endif #include @@@@ -44,8 +48,6 @@@@ #define BUF_SIZE BUF_LENGTH*2 #define BUFLEN 1024*32 -extern int errno; - FILE *ds; /* suggested legal sample rates */ @@@@ -77,11 +79,23 @@@@ void check_soundcard(void) { int format,stereo,speed,caps; #ifdef SOUNDCARD_SUPPORT + +#ifdef __NetBSD__ + audio_info_t ctlinfo; +#endif /* __NetBSD__ */ + fprintf(stderr,"Initialising Soundcard\n"); +#ifdef __NetBSD__ + if((g_conf.audioctl_fd=open(g_conf.netbsd_audioctl_file,O_RDWR))==-1) + fatal("Failed to open audioctl device"); + if((g_conf.audio_fd=open(g_conf.netbsd_audio_file,O_RDONLY))==-1) +#else if((g_conf.audio_fd=open(g_conf.sound_input_file,O_RDWR))==-1) +#endif /* __NetBSD__ */ fatal("Failed to open sound device"); +#ifndef __NetBSD__ /* see if the card can do full_duplex */ if(g_conf.full_duplex){ ioctl(g_conf.audio_fd, SNDCTL_DSP_GETCAPS, &caps); @@@@ -97,7 +111,33 @@@@ void check_soundcard(void) g_conf.full_duplex=0; } } +#endif /* __NetBSD__ */ + +#ifdef __NetBSD__ + if(ioctl(g_conf.audioctl_fd, AUDIO_GETINFO, &(g_conf.ctlrestore)) < 0) + fatal("ioctl(AUDIO_GETINFO) failed"); + + /* in theory, we should pull ctlrestore.record.buffer_size and use + that to malloc() our audio buffer, but in practice, this has + shown to be unneccesary. This will minimize impact to the + original source and reduce the amount of patching we need. + */ + + /* somewhere in here, we should be able to check/set full duplex, + but I don't know enough about the internals of this driver yet. + */ + g_conf.full_duplex = 0; + + AUDIO_INITINFO(&ctlinfo); + ctlinfo.record.sample_rate = g_conf.sample_rate; + ctlinfo.record.channels = (g_conf.stereo ? 2 : 1); + ctlinfo.record.precision = 16; + ctlinfo.record.encoding = AUDIO_ENCODING_SLINEAR_LE; + ctlinfo.mode = AUMODE_RECORD; + if(ioctl(g_conf.audioctl_fd, AUDIO_SETINFO, &ctlinfo) < 0) + fatal("ioctl(AUDIO_SETINFO) failed"); +#else ioctl(g_conf.audio_fd, SNDCTL_DSP_GETFMTS, &format); if(!(format&AFMT_S16_LE)) fatal("16bit mode not supported by driver"); @@@@ -113,6 +153,7 @@@@ void check_soundcard(void) speed=g_conf.sample_rate; if(ioctl(g_conf.audio_fd,SNDCTL_DSP_SPEED,&speed)==-1) fatal("Speed Setting failed\n"); +#endif /* __NetBSD__ */ fprintf(stderr,"16Bit %dHz ",g_conf.sample_rate); @@@@ -121,8 +162,10 @@@@ void check_soundcard(void) if(g_conf.full_duplex) fprintf(stderr,"Full Duplex "); fprintf(stderr,"\n"); +#ifndef __NetBSD__ close(g_conf.audio_fd); g_conf.audio_fd=0; +#endif /* __NetBSD__ */ #else write_message("This executable Doesn't Support Soundcards",0); #endif @@@@ -136,9 +179,10 @@@@ void open_soundcard(int flags){ #ifdef SOUNDCARD_SUPPORT write_message("Opening Soundcard",1); +#ifndef __NetBSD__ if((g_conf.audio_fd=open(g_conf.sound_input_file,flags))==-1) fatal("Failed to open sound device"); - + if(g_conf.full_duplex) #ifdef HAVE_SYS_SOUNDCARD_H ioctl(g_conf.audio_fd, SNDCTL_DSP_SETDUPLEX, 0); @@@@ -157,6 +201,7 @@@@ void open_soundcard(int flags){ speed=g_conf.sample_rate; if(ioctl(g_conf.audio_fd,SNDCTL_DSP_SPEED,&speed)==-1) fatal("Speed Setting failed\n"); +#endif /* __NetBSD__ */ #else write_message("This executable Doesn't Support Soundcards",0); #endif @@@@ -166,8 +211,21 @@@@ void close_soundcard(void) { #ifdef SOUNDCARD_SUPPORT write_message("Closing Soundcard",1); +#ifdef __NetBSD__ + close(g_conf.audio_fd); + + /* In theory, we should reset the device. In practice, this + segfaults. I haven't figured out why. + + if(ioctl(g_conf.audioctl_fd, AUDIO_SETINFO, &(g_conf.ctlrestore)) < 0) + fatal("ioctl(AUDIO_SETINFO) failed"); + */ + + close(g_conf.audioctl_fd); +#else ioctl(g_conf.audio_fd, SNDCTL_DSP_RESET, 0); close(g_conf.audio_fd); +#endif /* __NetBSD__ */ #else write_message("This executable Doesn't Support Soundcards",0); #endif @ 1.2 log @Use patches supplied by Andrew Hobgood in pkg/12159 to support NetBSD's native audio system instead of liboss emulation. Fix PLIST while I'm here. @ text @d3 1 a3 1 --- streams.c.orig Tue May 23 20:08:00 2000 d17 10 a26 1 @@@@ -77,11 +81,23 @@@@ d50 1 a50 1 @@@@ -97,7 +113,33 @@@@ d55 1 a55 1 d77 1 a77 1 + d84 1 a84 1 @@@@ -113,6 +155,7 @@@@ d92 1 a92 1 @@@@ -121,8 +164,10 @@@@ d103 1 a103 1 @@@@ -136,9 +181,10 @@@@ d115 1 a115 1 @@@@ -157,6 +203,7 @@@@ d123 1 a123 1 @@@@ -166,8 +213,21 @@@@ @ 1.1 log @Initial revision @ text @d3 1 a3 1 --- streams.c.orig Tue Nov 21 03:30:12 2000 d10 1 a10 1 +#include d17 119 @ 1.1.1.1 log @Add liveice-0.20001121: LiveIce is the source client for Icecast which encodes an mpeg stream for broadcast as it is created. Unlike clients such as Shout and IceDJ this permits the broadcast of live audio, rather than prerecorded mp3's. To start: 0. start icecast 1. find $HOME/mp3 -type f >playlist 2. liveiceconfigure.tk, save 3. In /bin/sh: liveice -M 2>/dev/null @ text @@