3 Replies Latest reply on Jan 26, 2020 10:22 PM by RashiV_61

    FX3 Audio Class - device specific extension unit

    BoNi_1254346

      Hello,

      based on the "cyfxuac" firmware example, I have implemented an audio device (spec 2.0).

      I also modified the descriptor to add a device specific extension descriptor like below (according to USB Audio spec 4.7.2.12):

       

      Unknown Descriptor:

      bDescriptorType:      0x24

      bLength:              0x10

      10 24 09 05 00 00 01 20 02 03 00 00 00 00 FF 00

       

      In the cyfxuac.c file I added some code to the section below.

      /* Check for UAC Class Requests */

       

      On Windows, the streaming works fine. Also, I can evenenumerate the extension node as a KSNODETYPE_DEV_SPECIFIC.

      However, I cannot do anything with it, it always gives me error 0x80070492 (Property set not supported) when trying to query KSPROPERTY_AUDIO_DEV_SPECIFIC

       

      However, it seems there is not even USB traffic, so it seems the driver doesn't even issue a USB request.

      Do you have any sample code on how to send a device specific request on windows through the KS model?

       

      Best regards

      Boris

        • 1. Re: FX3 Audio Class - device specific extension unit
          RashiV_61

          Hello Boris,

           

          The application note AN75779 (UVC application) has the functionality of Extension unit.

          Please refer firmware folder with the application note. The folder consists of UVC Extension Application to send device specific requests through KS model.

          For more information you can refer to section 5 readme.txt of the AN75779 firmware

           

          Please refer to the source of the application attached with the response. Similarly, you develop application for UAC device.

           

          Please let me know if any queries

           

          Regards,

          Rashi

          • 2. Re: FX3 Audio Class - device specific extension unit
            BoNi_1254346

            Hi Rashi,

            thanks for your answer.

             

            actually, I already successfully implemented a UVC extension unit and also could access it from the host PC (using DShow and KS).

            However, for USB Audio, it seems the extension units are defined and used differently (e.g. every property has a separate descriptor)

            Also, to my understanding, an audio extension node is not identified by a GUID, but only an 16bit value.

             

            Are you sure, this example is applicable for USB Audio?

             

            Regards

            Boris

            • 3. Re: FX3 Audio Class - device specific extension unit
              RashiV_61

              Hello Boris,

               

              Apologies for the late response.

               

              - Please share the descriptor file (audio part) of the application. So that we can reproduce the same at our end.

              - Also let me know the return value for the following request GET_INFO_REQ which mentions whether SET/GET requests are handled.

               

              For UVC application:

               

              case CY_FX_USB_UVC_GET_INFO_REQ: /* Both GET and SET requests are supported, auto modes not supported */

                                  glEp0Buffer[0] = 3;

                                  CyU3PUsbSendEP0Data (2, (uint8_t *)glEp0Buffer);

               

               

              to my understanding, an audio extension node is not identified by a GUID, but only an 16 bit value.

              >> Yes, your understanding is correct. I had shared the UVC extension application just for reference

               

              Regards,

              Rashi