FX3 Audio Class - device specific extension unit

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Boris
Employee
Employee
5 sign-ins First solution authored First reply posted

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

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

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

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
lock attach
Attachments are accessible only for community members.
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

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

Regards,
Rashi
0 Likes
Boris
Employee
Employee
5 sign-ins First solution authored First reply posted

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

0 Likes
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

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

Regards,
Rashi
0 Likes