2 * FreeRDP: A Remote Desktop Protocol client.
3 * Audio Input Redirection Virtual Channel
5 * Copyright 2010-2011 Vic Lee
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #ifndef __AUDIN_MAIN_H
21 #define __AUDIN_MAIN_H
23 #include "drdynvc_types.h"
25 typedef boolean (*AudinReceive) (uint8* data, int size, void* user_data);
27 typedef struct audin_format audinFormat;
32 uint32 nSamplesPerSec;
34 uint16 wBitsPerSample;
39 typedef struct _IAudinDevice IAudinDevice;
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);
49 #define AUDIN_DEVICE_EXPORT_FUNC_NAME "FreeRDPAudinDeviceEntry"
51 typedef void (*PREGISTERAUDINDEVICE)(IWTSPlugin* plugin, IAudinDevice* device);
53 struct _FREERDP_AUDIN_DEVICE_ENTRY_POINTS
56 PREGISTERAUDINDEVICE pRegisterAudinDevice;
57 RDP_PLUGIN_DATA* plugin_data;
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;
62 typedef int (*PFREERDP_AUDIN_DEVICE_ENTRY)(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints);
64 #endif /* __AUDIN_MAIN_H */