Fix changelog email address
[freerdp-ubuntu-pcb-backport.git] / channels / drdynvc / audin / audin_main.h
1 /**
2  * FreeRDP: A Remote Desktop Protocol client.
3  * Audio Input Redirection Virtual Channel
4  *
5  * Copyright 2010-2011 Vic Lee
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 #ifndef __AUDIN_MAIN_H
21 #define __AUDIN_MAIN_H
22
23 #include "drdynvc_types.h"
24
25 typedef boolean (*AudinReceive) (uint8* data, int size, void* user_data);
26
27 typedef struct audin_format audinFormat;
28 struct audin_format
29 {
30         uint16 wFormatTag;
31         uint16 nChannels;
32         uint32 nSamplesPerSec;
33         uint16 nBlockAlign;
34         uint16 wBitsPerSample;
35         uint16 cbSize;
36         uint8* data;
37 };
38
39 typedef struct _IAudinDevice IAudinDevice;
40 struct _IAudinDevice
41 {
42         void (*Open) (IAudinDevice* devplugin, AudinReceive receive, void* user_data);
43         boolean (*FormatSupported) (IAudinDevice* devplugin, audinFormat* format);
44         void (*SetFormat) (IAudinDevice* devplugin, audinFormat* format, uint32 FramesPerPacket);
45         void (*Close) (IAudinDevice* devplugin);
46         void (*Free) (IAudinDevice* devplugin);
47 };
48
49 #define AUDIN_DEVICE_EXPORT_FUNC_NAME "FreeRDPAudinDeviceEntry"
50
51 typedef void (*PREGISTERAUDINDEVICE)(IWTSPlugin* plugin, IAudinDevice* device);
52
53 struct _FREERDP_AUDIN_DEVICE_ENTRY_POINTS
54 {
55         IWTSPlugin* plugin;
56         PREGISTERAUDINDEVICE pRegisterAudinDevice;
57         RDP_PLUGIN_DATA* plugin_data;
58 };
59 typedef struct _FREERDP_AUDIN_DEVICE_ENTRY_POINTS FREERDP_AUDIN_DEVICE_ENTRY_POINTS;
60 typedef FREERDP_AUDIN_DEVICE_ENTRY_POINTS* PFREERDP_AUDIN_DEVICE_ENTRY_POINTS;
61
62 typedef int (*PFREERDP_AUDIN_DEVICE_ENTRY)(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints);
63
64 #endif /* __AUDIN_MAIN_H */
65