Jump to content
3 posts in this topic

Recommended Posts

So I put together a legacy kext loader for the ALC1200 and it was working beautifully, except for the fact that I had to manually switch to the headphone port when I plugged them in. I put a DetectDelegate tag in and it did 50% of what I wanted it to: it detected the insertion and removal of a headphone cord flawlessly. However, to my chagrin, it functions *backwards*. Speakers work when the cord is in, cease to function upon removal of the headphone cord. Presumably this means that the headphone jack is turning on, but I can't test this theory (for obvious reasons). It appears to be doing the polar opposite of what I want it to. Any thoughts? I've attached the info.plist from the legacy kext, look near the bottom under PathMaps.

 

I'm thoroughly confused and more than a little amused by this behaviour :(

Info.plist.zip

Look at "The King's" guide:

 

- 71dXY X=Color Y=Misc

 

Misc is a bit field used to indicate other information about the jack. Currently, only bit 0 is defined. If bit 0 is set, it indicates that the jack has no presence detect capability, so even if a Pin Complex indicates that the codec hardware supports the presence detect functionality on the jack, the external circuitry is not capable of supporting the functionality.

Reserved 3

Reserved 2

Reserved 1

Jack Detect Override 0

 

*Use 0 for Jack Detect - External Device(e.g. Headphones Mic etc)

Use 1 for Jack Detect Disabled - Internal Device(e.g. Internal speakers, Internal mic)

 

Just change your pinconfig verbs accordingly. It's good to know "DetectDelegate" does something because isn't documented anywhere.

I'll give it a go, see what I can find. It's like the jack detection is returning a one instead of a zero... wish we had some source code or at least documentation of APIs and config files. You'd think something like an all-purpose HDA driver wouldn't be on their list of closed-source components.

 

EDIT - Still not working. It's so infuriating; watching the sound control panel, plugging a headphone in switches the display to "Line Out" and unplugging it switches to "Headphone". Arg... why is it backwards!

 

I'm going to go poking into the stock driver codecs to see if I can figure out the exact behaviour. Lets see exactly what my Macbook Pro is doing with the jacks...

 

EDIT 2 - Huh. Stock codec for my MBP doesn't even use the DetectDelegate tag, yet headphone autodetect definitely works. Wierd. Maybe the drivers have to be told that it's an internal speaker rather than line out? Will experiment. Why couldn't Apple just make an all-around, auto-configuring, working HDA driver like all the other OSes? Would have saved themselves some grunt work every time a new machine comes out.

×
×
  • Create New...