usbaudio | Forward audio from Android devices

 by   rom1v C Version: Current License: MIT

kandi X-RAY | usbaudio Summary

kandi X-RAY | usbaudio Summary

usbaudio is a C library typically used in Internet of Things (IoT), Raspberry Pi applications. usbaudio has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

This tool forwards audio from an Android device to the computer over USB. It works on Linux with PulseAudio. The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently, and does not require USB debugging enabled.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              usbaudio has a low active ecosystem.
              It has 343 star(s) with 30 fork(s). There are 17 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 23 open issues and 10 have been closed. On average issues are closed in 81 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of usbaudio is current.

            kandi-Quality Quality

              usbaudio has 0 bugs and 0 code smells.

            kandi-Security Security

              usbaudio has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              usbaudio code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              usbaudio is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              usbaudio releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of usbaudio
            Get all kandi verified functions for this library.

            usbaudio Key Features

            No Key Features are available at this moment for usbaudio.

            usbaudio Examples and Code Snippets

            No Code Snippets are available at this moment for usbaudio.

            Community Discussions

            QUESTION

            Can I use SetupDiEnumDeviceInterfaces to get a DevicePath from SetupDiGetDeviceInterfaceDetail when no InterfaceClassGUID is known?
            Asked 2021-May-14 at 14:11

            Overview...

            I have read How to get device interface GUID for a device? and How to open a handle to a device using its Device Instance ID?, but I'm still confused about how I am to (or whether I should even) use SetupDiEnumDeviceInterfaces paired with SetupDiGetDeviceInterfaceDetail to get a DevicePath that can be opened with CreateFile to access the device when no device interface class GUID is known. My question is based on the MSDN article here and here which rely on these functions.

            More details...

            The high level of my problem is I've got an audio USB device I need to send control transfer commands. To do so, I want to use WinUSB's API, and to do that I need to get a handle to the device via CreateFile. Unfortunately, there is no .inf file associated with the device and so there is no known device interface class GUID. If one plugs the device in, Windows associates with it usbaudio.sys as the driver. To start talking over WinUSB, I use libwdi to install WinUSB as the device driver so that I can communicate with it via the WinUSB API. To accomplish the install of WinUSB, libwdi dynamically creates a self-signed .cat and .inf file pair, which unfortunately has no device interface class defined. In fact, the INF file has the following in it:

            ...

            ANSWER

            Answered 2021-May-14 at 00:32

            Yes, first you need to get a device information set for devices that implement the interface via SetupDiGetClassDevs, then pick one of the devices and read its device interface data, and use that to get the device interface detail that contains the device path.

            Example:

            Source https://stackoverflow.com/questions/67527315

            QUESTION

            CopyPipe of DriverKit IOUSBHostInterface fails with kIOReturnError (0xe00002bc)
            Asked 2021-Apr-12 at 14:56

            For my own edification, I'm trying to read some audio data from a USB audio interface using a DriverKit System Extension.

            My IOProviderClass is IOUSBHostInterface. I can successfully Open() the interface, but CopyPipe() returns kIOReturnError (0xe00002bc). Why can't I copy the pipe?

            To be able to open the interface at all, I had to outmatch AppleUSBAudio so my IOKitPersonalities explicitly match the bConfigurationValue, bInterfaceNumber, idVendor, idProduct, and bcdDevice keys. This list may not be minimal.

            In ioreg I can normally see the interfaces (sometimes only my matching one is there, although I think this is a degenerate situation). I see a AppleUserUSBHostHIDDevice child on some of my other interfaces. Could this be the problem? Normally the device has no problem being both USBAudio and HID. I am trying unsuccessfully to out match HID too.

            ...

            ANSWER

            Answered 2021-Apr-10 at 20:05

            I was passing the wrong endpoint address to CopyPipe().

            To find an endpoint address you need to enumerate through the IOUSBDescriptorHeaders in the IOUSBConfigurationDescriptor and examine the descriptors with bDescriptorType equal to kIOUSBDescriptorTypeEndpoint.

            IOUSBGetNextDescriptor() from USBDriverKit/AppleUSBDescriptorParsing.h is made for this and will save you from having think about pointer manipulation.

            If the endpoint is in a different alternate setting, then you need to switch the interface to that one with SelectAlternateSetting().

            Source https://stackoverflow.com/questions/67017544

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install usbaudio

            Install the following packages (on Debian):.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/rom1v/usbaudio.git

          • CLI

            gh repo clone rom1v/usbaudio

          • sshUrl

            git@github.com:rom1v/usbaudio.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link