diff options
author | hselasky <hselasky@FreeBSD.org> | 2014-08-05 18:35:34 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2014-08-05 18:35:34 +0000 |
commit | 272d9252ab1b42128afee34e985ca1b51bd9fb30 (patch) | |
tree | 8efcd00a4334505e67adb987c304b896d9476350 /sys/dev | |
parent | 222c2c3d8072036484c31f02fdd7b9da32fc06cf (diff) | |
download | FreeBSD-src-272d9252ab1b42128afee34e985ca1b51bd9fb30.zip FreeBSD-src-272d9252ab1b42128afee34e985ca1b51bd9fb30.tar.gz |
Add handler for read-back of USB audio volume levels.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/usb/gadget/g_audio.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/usb/gadget/g_audio.c b/sys/dev/usb/gadget/g_audio.c index a1d2394..fdcb5c8 100644 --- a/sys/dev/usb/gadget/g_audio.c +++ b/sys/dev/usb/gadget/g_audio.c @@ -587,6 +587,16 @@ g_audio_handle_request(device_t dev, *plen = 0; } return (0); + } else if ((req->bmRequestType == UT_READ_CLASS_INTERFACE) && + (req->bRequest == 0x81 /* get value */ )) { + + if (offset == 0) { + *plen = sizeof(sc->sc_volume_setting); + *pptr = &sc->sc_volume_setting; + } else { + *plen = 0; + } + return (0); } else if ((req->bmRequestType == UT_WRITE_CLASS_INTERFACE) && (req->bRequest == 0x01 /* set value */ )) { |