Age | Commit message (Collapse) | Author |
|
longer direcly affect other widgets
- if an unsolicited response is received from a volume knob widget,
adjust outputs.master according to the measured change in level of the
volume knob widget
|
|
function for creating "master" volume control.
- apply gpio quirks separately from and prior to configuring the mixer.
gpio manipulation can cause noise on output channels. configuring
gpio before amps are unmuted in the mixer configuration is a good
thing.
from Alexey Suslikov, thanks
|
|
are not really useful as output devices and fixed speakers are not
really useful as input devices
|
|
recording and playback paths.
- select a subset of controls that are relevant in a default
configuration for each path.
|
|
it and the associated macros. this is part of NetBSD's "converter
pipeline", and it isn't really used there either.
|
|
- quit swapping channels 2:3 with 4:5 when processing 6 or more channels.
hacks deep in drivers to "fix" wrongly encoded files is just wrong.
- try to be sure headphones AND speakers get DAC output by default.
|
|
|
|
keep track of some information about them, such as the DAC they are
connected to by default. this will be used soon.
|
|
speaker isn't very useful as an input device
|
|
- remove a couple pointless comments
|
|
- make the code readable and the comment understandable
|
|
widget X should be disabled as well.
- change the comment about renaming widgets to better explain why
instead of how the renaming is done.
|
|
first codec with an audio function group, use the first codec with
an audio function group that can do analog I/O, if there is one.
codecs that just do digital I/O aren't quite as useful, yet.
|
|
the pin is connected to, make sure the pin is the only device that is
connected to the widget.
|
|
- be careful not to set a direction that the pin doesn't support
- remove a workaround in the generic code which is more or less for a
specific device, there are better ways to deal with such situations now
|
|
move it to one place, instead of scattered thoughout with #define
and DPRINTF. my eyes are happier now.
|
|
now "SPDIF", S/PDIF-in is still "SPDIF-in".
line change because we need to differentiate. S/PDIF change because
SPDIF-out is too long, and for consistency.
|
|
b) members of the widget connection list may be invalid.
so,
- change azalia_nid_to_index to azalia_widget_enabled, and have it only
check that the given nid is valid, and that the corresponding widget
is enabled.
- use azalia_widget_enabled every time members of the connection list
are used.
|
|
|
|
|
|
|
|
disabled widgets any other name.
|
|
a converter than a selector.
|
|
- use "beep" as pin device 0xe
|
|
azalia_widget_label_widgets to right after the generic widget
initialization. nothing uses this yet.
|
|
widget for the widget it's connected to. but be a bit careful
to not end up with duplicate mixer item names.
|
|
e.g. the first DAC in the converter group is now dac, the second
is dac2, etc.
unused converters (not in a converter group) will have a "u-" prefix.
these will disappear completely in the near future, as they are useless.
if there is more than one converter group, converters in the second
group will have a "dig-" prefix, since they are digital converters.
|
|
- move the azalia_widget_init_connection call from
azalia_widget_label_widgets to just after azalia_widget_init
- move azalia_widget_label_widgets to after dacgroup initialization
- move the widget info printing from azalia_widget_init_connection
and azalia_widget_init to new function azalia_widget_dump_info
- call azalia_widget_dump_info right after azalia_widget_init_connection
- in functions that are ony used if AZALIA_DEBUG is defined, use printf
instead of DPRINTF()
|
|
given widget is the sole connection to an ADC, DAC or pin complex.
not used just yet.
|
|
it is useless.
|
|
- MI_TARGET_* are enumerated in hex
from Alexey Suslikov
|
|
- don't try to create formats for converter groups that don't exist
- don't allow playback or recording if there is no corresponding
converter group
- don't try to set audio processing parameters on converter groups
that don't exist
allows playback (or record) only devices to work, such as the
azalias found on ATI graphics devices.
note, the ATI devices generally attach before the onboard devices
do. that means they will be audio0 and onboard devices will be audio1.
don't forget to make sure the /dev/{audio[ctl],mixer,sound} links
point to the nodes of the device you want to be the default.
tested by naddy@, thanks
|
|
items. BIOSes can set the jack detect override bit to tell us that
the jack detection circuirty isn't actually attached.
should remove the _sense controls that never change.
|
|
* configure widgets all in one place
* add a flag on the widget_t to let us know if the widget is not
connected; shaves a lot of connection checking code
* be sure not to add power widgets as connectable sources/sinks
* configure unconnected pins as output pins. should help some
MacBooks and be benign to other devices.
the last change has been tested by several as a separate diff. no
real functional changes otherwise.
from Alexey Suslikov. thanks!
|
|
use it to quiet some debug messages by default, so people don't get
scared when testing completely unrelated changes when AZALIA_DEBUG
is defined.
print out ADC groupings when AZALIA_DEBUG is defined like we do for
DAC groupings.
|
|
being the cause of PR5982. unfortunately, there's no easy and clean
solution to automatic muting. we can't always rely on the codec
giving us the right information. people have different preferences
as to what should be muted and what shouldn't. etc, etc.
so instead, just make the sense state of jacks that support sensing
available through the mixer interface. this allows for any possible
user configuration and supports all pins that have sense capabilities,
not just headpones. codecs that use the generic mixer configuration
(which is the plan for all codecs) and have sensing capable pins will
now get a few more read-only mixer items, such as:
outputs.hp_sense=plugged
outputs.mic_sense=unplugged
outputs.line_sense=unplugged
hopefully what they mean is self-explanatory.
based on much discussion with ratchov@ and Alexey Suslikov
|
|
* DEBUG cleanup
from Alexey Suslikov, thanks
|
|
|
|
|
|
formats and creates an array of unique encodings. use the array in
azalia_query_encoding.
in other words, no more duplicate encodings in `audioctl encodings`.
|
|
|
|
struct audio_encoding in azalia_query_encodings. otherwise it
will be some random value.
makes AUDIO_GETENC and thus sio_getcap(3) much more useful here.
|
|
|
|
instead of using unsolicited events.
Already supported codecs with custom unsolicited event handlers
are not affected, yet.
from Alexey Suslikov, thanks
|
|
sizes and rates.
from NetBSD via brad@
Also,
* use a single variable to hold the number of format variations (from NetBSD)
* initialize a variable (f->frequency_type) before use (from NetBSD)
* fix a typo
from Alexey Suslikov, thanks
|
|
r1.51
pointed out by Alexey Suslikov, thanks
|
|
values of the audio_params structure during AUDIO_SETINFO if the
hardware cannot be set to exactly the requested mode.
some drivers do this sometimes. others always return EINVAL if there
isn't an exact match.
be more consistent. only return EINVAL if an absurd parameter was
requested, otherwise return a supported set of parameters, as close
as possible to what was requested.
with/ok ratchov@
|
|
from Alexey Suslikov, thanks
|
|
Clean up a little while here.
from Alexey Suslikov, thanks
tested by several as part of a larger diff, thanks also
|
|
of a stream, direct the unneeded converters use HDA link stream #0
from NetBSD via Alexey Suslikov, thanks
tested by several, thanks also
|