PERFORCE change 100119 for review

Ryan Beasley ryanb at FreeBSD.org
Tue Jun 27 06:44:00 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=100119

Change 100119 by ryanb at ryanb_yuki on 2006/06/27 06:43:43

	Install stub ioctls for 
	  SNDCTL_DSP_GET_PLAYTGT_NAMES
	  SNDCTL_DSP_GET_PLAYTGT
	  SNDCTL_DSP_SET_PLAYTGT

Affected files ...

.. //depot/projects/soc2006/rbeasley_sound/sys/dev/sound/pcm/dsp.c#7 edit

Differences ...

==== //depot/projects/soc2006/rbeasley_sound/sys/dev/sound/pcm/dsp.c#7 (text+ko) ====

@@ -408,6 +408,7 @@
 	int kill;
     	int ret = 0, *arg_i = (int *)arg, tmp;
 #ifdef OSSV4_EXPERIMENT
+	oss_mixer_enuminfo *ei;
 	int xcmd;
 
 	xcmd = 0;
@@ -1082,6 +1083,42 @@
 			/** @todo verify error correctness */
 			ret = EINVAL;
 		break;
+
+	/*
+	 * The following 3 ioctls aren't very useful at the moment.  For
+	 * now, only a single channel is associated with a cdev (/dev/dspN
+	 * instance), so there's only a single output routing to use (i.e.,
+	 * the wrch bound to this cdev).
+	 */
+	case SNDCTL_DSP_GET_PLAYTGT_NAMES:
+		ei = (oss_mixer_enuminfo *)arg;
+		ei->dev = 0;
+		ei->ctrl = 0;
+		ei->version = 0; /* static for now */
+		ei->strindex[0] = 0;
+
+		if (wrch != NULL) {
+			ei->nvalues = 1;
+			strlcpy(ei->strings, wrch->name, sizeof(ei->strings));
+		} else {
+			ei->nvalues = 0;
+			ei->strings[0] = '\0';
+		}
+		break;
+	case SNDCTL_DSP_GET_PLAYTGT:
+	case SNDCTL_DSP_SET_PLAYTGT:	/* yes, they are the same for now */
+		/*
+		 * Re: SET_PLAYTGT
+		 *   OSSv4: "The value that was accepted by the device will
+		 *   be returned back in the variable pointed by the
+		 *   argument."
+		 */
+		if (wrch != NULL)
+			*arg_i = 0;
+		else
+			ret = EINVAL;
+		break;
+
 #endif	/* !OSSV4_EXPERIMENT */
     	case SNDCTL_DSP_MAPINBUF:
     	case SNDCTL_DSP_MAPOUTBUF:


More information about the p4-projects mailing list