-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is there any way to enable/disable UAC1 when headset plugin/plugout? #5
Comments
單純用 UAC 可能沒辦法實現,據我所知 UAC 的控制請求都是 host to device 的。如果要確認可以詳讀規格書 https://www.usb.org/sites/default/files/audio10.pdf 第五章 Requests。 我有兩個想法:
|
AudioControl interface可以定义一个interrupt endpoint通知host状态有改变,可以实现device端主动更换input(muc换line-in等),主动更改音量/静音等。通知后host会主动来获取。但是感觉他没有来获取interface的alt-setting(0xA GET-INTERFACE),不然可以主动切换到zero-bandwidth实现? 目前就是按照你说的第二种方式在做。体验不是很好,我有用其他EP传输数据,插拔耳机会导致数据会断开。 |
UAC1.0 DOC 3.7.2 AudioStreaming Interface
不知道这个“dynamic interfaces” 和 “bInterfaceClass=0x00”怎么实现,我查了很多文档,都没有找到相关资料,你有什么印象或者资料能分享一下吗?能否用来实现动态切换UAC呢? |
翻了下文檔,有個想法,但不知道正不正確。 UAC1.0 DOC 3.7.1.2 Status Interrupt Endpoint
[1] 5.2.4.1.2 Get Memory Request 整個串起來可能是: 也許這就是所謂的 dynamic interfaces ? |
看他文档感觉就是应该这么做, 目前我还有另外一个想法,还没做测试,如下: |
我在DIY一个USB手机底座,底座上有3.5寸耳机转接插口
底座USB上用UAC1获取手机音频,现在可以用耳机听音乐了
但是手机插上底座后,如果不插耳机,声音也是传给USB底座了,没法从手机中直接播放
有没有办法做到插上耳机后才让手机把音频数据传过来?
也就是插上耳机的时候,底座播放;没插耳机的时候就禁用UAC手机自己播放音频?
目前想到断开USB重连,重新发一个新的Descriptor可以实现,但这样断开重连会打乱其他interface的数据传输。不知道UAC层面是否有方法实现这个功能?
The text was updated successfully, but these errors were encountered: