dsproxy emulates an OSS device that "virtualizes" itself so each UID that opens /dev/dsp gets its own private sound device. At this point, simultaneous reading of /dev/dsp by another process "samples" the data out of dsproxy. The tagged audio data and ioctls stream may be saved to disk locally as the example program does, retargeted over a network, pushed into an effects generator (3-D sound), etc. The virtualization feature is a stepping stone to adding sound to VNC on a per-desktop basis with each user appearing to have total control over /dev/dsp. Most OSS ioctls are implemented, so applications such as xmame and rvplayer7 may be retargeted through dsproxy.
Re: DeMorgan to the rescue?
> % We have the ability to do a logical
> % greater than, less than and exclusion
> % but why the or is missing I don't
> % (and yes I've written to the rpm.org
> % people.)
> First, I assume you mean logical NOT
> when you say exclusion.
> If you can do AND and NOT, why can't you
> simulate OR?
> A OR B = NOT ( ( NOT A ) AND ( NOT B )
> It certainly doesn't look as clean, but
> it is logically equivalent.
> Of course, I don't know anything about
> RPM .spec files. Does exclusion mean
> NOT? Is it possible to string together
> NOTs and ANDs? If yes to both, then you
> should be able to recreate the above
Actually I really did mean exclusion. Or perhaps a better choice would have been conflict creation. In a spec file I can say that if X is installed Y cannot be installed at the same time. For example if proftpd is installed wu-ftpd could not be installed without first removing proftpd. The logical not is really an implied not in that by using the exclusion characteristic or the > and
Re: Lessons in Packaging Linux Applications
> Have you seen
I've only a couple of "problems" whith this packaging tool as far as making rpms goes.
1. It doesn't allow of the inclusion of "extra" files such as say an init.d script.
2. It doesn't allow for the creation of a src rpm.
3. It doesn't include changelog editing.
However for a self created rpm so that I can (very) easily remove/upgrade a non packaged program, I've found it to be a neccesary tool in my toolkit. For the creation of locally distributed rpms, it's easy, reliable, and so far, it hasn't broken anything.