Skip to content

mix.monitor only checks/sets -m play,mon -s mon at the _end_ of sndiod(8) flags set in rcctl(8) #4

Description

@morgant

As implemented in issue #3 and explained in this comment, the mix.monitor control is only determined/set by -m play,mon -s mon appearing/appending to the end of the sndiod(8) flags set in rcctl(8). Upon further use and reflection, this has a few (potential?) problems:

  1. I'm unsure if a sub-device can be defined with the -s option if no audio device has been defined with prior -f/-F options
  2. There may be issues if a snd/default sub-device (i.e. -s default) is not defined for any audio device specified prior to the snd/mon (i.e. -s mon) sub-device being defined
  3. If multiple sndio(7) audio devices are specified with the -f and/or -F options, the snd/mon sub-device (i.e. -s mon) will only be added to the last device defined. This may not be intended or correct.
  4. There is an order to the various options, especially regarding whether they must be specified before audio device (-f/-F) options or sub-device (-s) options; per sndiod(8):

    "On the command line, per-device parameters (-aew) must precede the device definition (-f), and per-sub-device parameters (-Ccjmtvx) must precede the sub-device definition (-s). Sub-device definitions (-s) must follow the definition of the device (-f) to which they are attached.

    If no audio devices (-f) are specified, settings are applied as if the default device is specified. If no sub-devices (-s) are specified for a device, a default sub-device is created attached to it. If a device (-f) is defined twice, both definitions are merged: parameters of the first one are used but sub-devices (-s) of both definitions are created. The default sndio(7) device used by sndiod is rsnd/0, and the default sub-device exposed by sndiod is snd/default."

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions