[USBAUDIO]
[reactos.git] / reactos / sdk / lib / drivers / sound / libusbaudio / libusbaudio.h
1 #pragma once
2
3 typedef enum
4 {
5 UA_STATUS_SUCCESS = 0,
6 UA_STATUS_NOTINITIALIZED,
7 UA_STATUS_NOT_IMPLEMENTED,
8 UA_STATUS_NO_MORE_DEVICES,
9 UA_STATUS_MORE_ENTRIES,
10 UA_STATUS_INVALID_PARAMETER,
11 UA_STATUS_UNSUCCESSFUL,
12 UA_STATUS_NO_MEMORY
13 }USBAUDIO_STATUS;
14
15 typedef PVOID (*PUSBAUDIO_ALLOC)(
16 IN ULONG NumberOfBytes);
17
18 typedef VOID (*PUSBAUDIO_FREE)(
19 IN PVOID Block);
20
21 typedef VOID (*PUSBAUDIO_COPY)(
22 IN PVOID Dst,
23 IN PVOID Src,
24 IN ULONG Length);
25
26 typedef struct
27 {
28 ULONG Size;
29 PVOID Context;
30
31 PUSBAUDIO_ALLOC Alloc;
32 PUSBAUDIO_FREE Free;
33 PUSBAUDIO_COPY Copy;
34
35
36 }USBAUDIO_CONTEXT, *PUSBAUDIO_CONTEXT;
37
38 USBAUDIO_STATUS
39 UsbAudio_InitializeContext(
40 IN PUSBAUDIO_CONTEXT Context,
41 IN PUSBAUDIO_ALLOC Alloc,
42 IN PUSBAUDIO_FREE Free,
43 IN PUSBAUDIO_COPY Copy);
44
45
46 USBAUDIO_STATUS
47 UsbAudio_ParseConfigurationDescriptor(
48 IN PUSBAUDIO_CONTEXT Context,
49 IN PUCHAR ConfigurationDescriptor,
50 IN ULONG ConfigurationDescriptorSize);
51
52 USBAUDIO_STATUS
53 UsbAudio_GetFilter(
54 IN PUSBAUDIO_CONTEXT Context,
55 OUT PVOID * OutFilterDescriptor);
56