Huhu, ich kann probieren, bin aber auch noch Anfänger.
Schauen wir uns mal das Blockdiagramm vom ALC892 an:
Ein Blockdiagramm ist das "Innenleben" von dem Codec = Chip der auf dem Mainboard sitzt
Da sieht man das der Codec auf der Linken Seite 5 DACs und 2 ADCs hat.
DAC= Digital -> Analog Converter / ADC Analog -> Digital Converter
Auf der Rechten Seite siehst du die Ausgangs Ports, das sind Pins am Chip die ihn mit der Außenwelt verbinden.
Davon müssen aber nicht alle verbunden sein. Es gibt z.b. Mainboards die nur 3 Klinkenbuchsen an der Rückseite haben. Diese würden dann z.b. nur Port C / D / F verwenden.
Mit dem PinConfigurator stellst du ein welche Ports dein Mainboard hat z.b Front Audio usw
Darin sind die Namen gespeichert die OSX verwendet, auch die Bezeichnung "Intern" kommt daher.
Du kannst natürlich nur Ports Konfigurieren die dein Mainboard auch besitzt (oder du musst mit dem Lötkolben dran und Buchsen nachrüsten!).
Inwiefern OSX die Werte verwendet weiß ich nicht. Da wird z.b. auch die Farbe der Buchsen angeben, ich kenne kein Programm welches diese werte verwendet.
Die Knoten oder Nodes übernehmen das Routing vom Signal.
z.b. Die Grüne Linie.
Diese geht vom DAC über 2 mit (M) markierte Mischer knoten an den Port D.
Die Blauen Kästchen markieren die Knotenpunkte.
Da siehst du auch das man z.b. Port B als Mic input oder als Fout konfigurieren kann. Also entweder Eingang oder Ausgang. Je nach dem geht das Signal dann endweder zum DAC oder zum ADC.
In deiner Original Config ist der Port D mit Port E "verbunden" das bedeutet sobald der Codec mitbekommt das du in E einen Stecker einsteckst Routet er das Signal um. Die grüne Linie wird am (M) kurz vor dem Port unterbrochen, wie die Gelbe Linie geführt und am Blau markiertem Knoten auf den Port E gelegt.
Wenn du jetzt beide gleichzeitig verwenden willst musst du die rote Linie realisieren. Diese benutzt einen anderen DAC für den Port E.
Was hab ich gemacht:
PinConfig angepasst
1. Mir das Github von der AppleALC auf den Desktop gelegt.
2. PinConfig geöffnet und bei File die PinConfigs.kext aus dem AppleALC Ordner geöffnet.
3. Deinen Codec und deine LayoutID im Fenster gesucht.
4. PinConfig öffnet jetzt die dazugehörige Port Konfiguration, diese sollte deinem Mainboard entsprechen. Die Daten dafür bekommst du aus dem Dump e.g. welche Physikalische Buchse mit welchem Codec Port elektrisch verbunden ist. Da deine PinConfig ja ok war hab ich nur die Namen geändert:
5. Die Ports so benennen wie du möchtest und es für dich Sinn ergibt. Ich weiß nicht inwiefern man da z.b. auch Speaker Extern konfigurieren könnte und ob OSX damit klar kommt. Ich hab bis jetzt nur Standart sachen eingetragen. Das ist zum teil nur Kosmetisch. Solange die Ports da sind und Eingänge / Ausgänge richtig sind ists scheinbar ok.
6. PinConfigurator -> File->export PinConfigs.kext und damit die alte aus dem AppleALC Ordner überschreiben, bestätigen das dein Layout schon da ist und das du es überschreiben möchtest.
7. Fertig mit PinConfigurator
Knoten geändert
zur Pinconfig gehört auch immer die LayoutID.
Diese findest du im AppleALC->Resources->Codename.
Da du weißt das du Layout ID 1 verändern möchtest schaust du danach, was finden wir da: die layout1.xml aber von der Platform1.xml ist keine spur.
Wie das mit der layoutX.xml funktioniert weiß ich nicht genau. Scheinbar sind da z.b. die Funktionen der knoten festgelegt, manche können z.b. in Hardware Filtern oder Mischen.
In der Info.plist findest du aber das deine LayoutID sich aufd die PlatformT.xml referenziert um die Knoten zu bekommen.
In der layout1.xml findest du das diese die Pathmap 100 verwendet.
Jetzt kannst du die PlatformT.xml öffnen und dort die Pathmap 100 öffnen.
Darin findest du die ganzen Ports wieder. Wenn da unter einem Eintrag 2 Untereinträge sind werden diese umgeschalten. An der ersten NodeID siehst du welcher Ausgang aus dem PinConfigurator das ist. Die 2 nodes drunter sind die Knoten durch die das Signal geht.
Jetzt erzeugst du einen neuen Eintrag und kopierst den Untereintrag der nicht mehr umschalten soll in deinen neuen Eintrag. Danach musst du noch die Knoten für die rote Linie setzen, sonst verwenden beide Ausgänge die selben knoten und DACs (Grüne Linie geht auf beide Ports) Damit verhält es sich so wie du es beschrieben hast. Logisch soweit.
Die Knoten kannst du aus deinem Dump oder einer anderen Layout ID die alle Ports benutzt extrahieren.
Dann Speichern und mit xCode kompilieren.
Äh kurz ;D
Vielleicht kann jemand von den Profis noch was zur layoutX.xml sagen, bei den DSP functions seh ich nämlich noch garnicht durch. Bei.z.b Mic ist nen SoftwareDSP festgelegt, das ist wahrscheinlich nen AU plugin. Beim LineIn ist aber nen MuteGPIO festgelegt, der kommt irgendwo aus der Hardware.
Credit to wern und MacPeet