From owner-freebsd-multimedia Sat Mar 22 12:27:18 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id MAA28595 for multimedia-outgoing; Sat, 22 Mar 1997 12:27:18 -0800 (PST) Received: from Ilsa.StevesCafe.com (sc-gw.StevesCafe.com [205.168.119.191]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id MAA28589 for ; Sat, 22 Mar 1997 12:27:15 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by Ilsa.StevesCafe.com (8.7.5/8.6.12) with SMTP id NAA11610; Sat, 22 Mar 1997 13:27:08 -0700 (MST) Message-Id: <199703222027.NAA11610@Ilsa.StevesCafe.com> X-Authentication-Warning: Ilsa.StevesCafe.com: Host localhost [127.0.0.1] didn't use HELO protocol X-Mailer: exmh version 1.6.5 12/11/95 From: Steve Passe To: Randall Hopper cc: multimedia@freebsd.org Subject: Re: FXTV v0.3.1 In-reply-to: Your message of "Sat, 22 Mar 1997 13:03:59 EST." <19970322130359.59843@ct.picker.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 22 Mar 1997 13:27:08 -0700 Sender: owner-multimedia@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi, > BTW, this is a small thing, but I noticed that the driver doesn't preserve > the mute state across channel, frequency, and input device changes. Might > be nice if it did in a future version, but for now I've accounted for this > by reseting mute state after setting one of these three parameters. I don't understand why TVTUNER_SETFREQ would be a problem, the audio support for that ioctl() isn't enabled (AUDIO_SUPPORT_XXX). The others definately act as described. below are changes to fix the problem. The added tsleep() in TVTUNER_SETCHNL removes the 'click' when changing channels, not sure if this is the correct way to do it, comments welcome. for the input device changes I just removed the calls to MUTE/UNMUTE, they were really redundant and no 'click' occurs without them. forgive lack of a formal patch, I have so many pending versions lying around I'm not sure what to patch to.... brooktree848.c: --- case TVTUNER_SETCHNL: #if defined( AUDIO_SUPPORT ) tmp_int = bktr->audio_mute_state; set_audio( bktr, AUDIO_MUTE ); /* prevent 'click' */ tsleep((caddr_t)bktr, PZERO, "tuning", hz/8 ); #endif /* AUDIO_SUPPORT */ temp = tv_channel( bktr, (int)*(unsigned long *)arg ); #if defined( AUDIO_SUPPORT ) tsleep((caddr_t)bktr, PZERO, "tuning", hz/8 ); if ( tmp_int == FALSE ) set_audio( bktr, AUDIO_UNMUTE ); #endif /* AUDIO_SUPPORT */ if ( temp < 0 ) return EINVAL; *(unsigned long *)arg = temp; break; --- case METEOR_INPUT_DEV0: ... #if defined( AUDIO_SUPPORT ) set_audio( bktr, AUDIO_EXTERN ); #endif /* AUDIO_SUPPORT */ --- case METEOR_INPUT_DEV1: ... #if defined( AUDIO_SUPPORT ) set_audio( bktr, AUDIO_TUNER ); #endif /* AUDIO_SUPPORT */ --- case METEOR_INPUT_DEV2: case METEOR_INPUT_DEV_SVIDEO: ... #if defined( AUDIO_SUPPORT ) set_audio( bktr, AUDIO_EXTERN ); #endif /* AUDIO_SUPPORT */ -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD