Giter VIP home page Giter VIP logo

alcplugfix-swift's Introduction

Hello there. Welcome to my Profile! ๐Ÿ‘‹


Thanks for visiting!

alcplugfix-swift's People

Contributors

black-dragon74 avatar sukkaw avatar zhen-zen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

alcplugfix-swift's Issues

Uninstall ?

I have an Acer A515-54G ALC255, I want to use ALCPlugFix to solve the problem with the headset (Phone+Microphone) that currently does not work, can you help me and even inform me if this device works? Thanks, congratulations on the project!

ALC256

Hello, can you help me to add New codec support for ALC256 ? I tried everything but i really don't know what to do. If you want, I can send my Codec Dump file.

[Improvements] Better install instructions

First of all,
I'd like to thank you for your effort into this project and AppleALC.
I successfully removed CodecCommander and every patch earlier applied before testing your project.
Premised that I have enough IQ to understand how to configure your script before proceeding but can you please improve the install instructions?
I admit that it can be difficult for those who'll want to try this project understand them correctly.

e.g. At the moment the only install instructions can be summarized with the following statement "run install.sh" without doing anything.

There's no explanation which talks about com.black-dragon74.ALCPlugFix.plist and REPLACE_ME ProgramArgument. What should we do theorically?
In my ignorance I thought that I should put the absolute path of sample.plist adapted for my audio codec. Is this wrong despite it's currently working in my laptop?

Many thanks again and have a nice day

Use headphone mic as input

Is there any way to make my headphone mic as input source? My laptop has a combojack. I can make it work with VerbStub combojack. But there is no way to configure this wit this Kext. Any ideas?

what does this do?

before i try this, will it fix the buzzing noise in my audio jack on my T440P, the guide doesnt explain what this does?

Error msg on 1st Run

Hi, the Error msg is

** Loading launch daemon **
Warning: Expecting a LaunchDaemons path since the command was ran as root. Got LaunchAgents instead.
launchctl bootstrap is a recommended alternative.

Apply Custom Verb in DSDT / SSDT

It will great if we can put custom verb in DSDT / SSDT like RMCF with CodecCommander.kext.

So no need to keep sample.plist in system or worrying about being delete.

Sorry for bad english

Verb command executed, output code is 0, but not working

My Laptop's speaker requires specific verb commands in order to work.

I have tested the verbs required using AppleALC's alc-verb tool:

#!/usr/bin/bash
# Left speaker
./alc-verb  0x20 0x500 0x24
./alc-verb  0x20 0x400 0x41
./alc-verb  0x20 0x500 0x26
./alc-verb  0x20 0x400 0x2
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x4b0 0x20

# Right speaker
./alc-verb  0x20 0x500 0x24
./alc-verb  0x20 0x400 0x42
./alc-verb  0x20 0x500 0x26
./alc-verb  0x20 0x400 0x2
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x4b0 0x20

And when I run the shell script above, the speaker becomes working as intended. Then I have turned those commands into ALCPlugFix-Swift compatible plist config format:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <array>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x24</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x24</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x41</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x41</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x26</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x26</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x2</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x2</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x4b0 0x20</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x20</string>
      <key>Verb</key>
      <string>0x4b0</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x24</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x24</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x42</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x42</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x26</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x26</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x2</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x2</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x4b0 0x20</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x20</string>
      <key>Verb</key>
      <string>0x4b0</string>
    </dict>
  </array>
</plist>

And I test it with ./ALCPlugFix-Swift ALCPlugFixConfig.plist (without LaunchDaemon, yet). The output log shows:

ALCPlugFix::machineDidBoot
Executing command labelled: 0x20 0x500 0x24
Output: 0

Executing command labelled: 0x20 0x400 0x41
Output: 0

Executing command labelled: 0x20 0x500 0x26
Output: 0

Executing command labelled: 0x20 0x400 0x2
Output: 0

Executing command labelled: 0x20 0x400 0x0
Output: 0

Executing command labelled: 0x20 0x400 0x0
Output: 0

Executing command labelled: 0x20 0x4b0 0x20
Output: 0

Executing command labelled: 0x20 0x500 0x24
Output: 0

Executing command labelled: 0x20 0x400 0x42
Output: 0

Executing command labelled: 0x20 0x500 0x26
Output: 0

Executing command labelled: 0x20 0x400 0x2
Output: 0

Executing command labelled: 0x20 0x400 0x0
Output: 0

Executing command labelled: 0x20 0x400 0x0
Output: 0

Executing command labelled: 0x20 0x4b0 0x20
Output: 0

The log indicates the verb commands did send without error. However, my speaker couldn't work until I manually execute my previous shell script (which uses alc-verb).

Is there any way to listening to system mute/unmute?

I found that on my laptop with ALC295, alc-verb 0x1b 0x707 0x1 will make the mute indicator LED on, and alc-verb 0x1b 0x707 0x0 will make it off. So I'm wondering is there any way to trigger this when mute status changed?

Before asking this question, I've already tried this but since I'm not familiar with Swift, I failed.

Thank you for any reply! :)

Actual viable instructions

This is to address this GitHub specifically:

The instructions you provide do not allow any user to actually configure this correctly. Of course we know what it does and how it works but the instructions do not make it clear in any regard.

How do you correctly edit the plist file?
What do you need to do to make sure this works?

Show an actual example of what you have done to make it work, how to extract the NODE and PARAM to get ALCPlugFix-Swift to work.

How can I make config file for my laptop

Hello,
I have Asus X556UQK laptop
intel i5-7200U, Kabylake
ALC id - 27 everything's works but sometimes audio crackles and (currently I use jack fix by Goodwin) which will not works plug/unplug jack fix properly
OS : 11.0.1 BigSurr
BootLoader: Clover 5127
all kext are updated to last version
THANKS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.