cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

audin.h (2206B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * Audio Input Redirection Virtual Channel
      4 *
      5 * Copyright 2010-2011 Vic Lee
      6 * Copyright 2015 Thincast Technologies GmbH
      7 * Copyright 2015 DI (FH) Martin Haimberger <martin.haimberger@thincast.com>
      8 *
      9 * Licensed under the Apache License, Version 2.0 (the "License");
     10 * you may not use this file except in compliance with the License.
     11 * You may obtain a copy of the License at
     12 *
     13 *     http://www.apache.org/licenses/LICENSE-2.0
     14 *
     15 * Unless required by applicable law or agreed to in writing, software
     16 * distributed under the License is distributed on an "AS IS" BASIS,
     17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     18 * See the License for the specific language governing permissions and
     19 * limitations under the License.
     20 */
     21
     22#ifndef FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H
     23#define FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H
     24
     25#include <freerdp/channels/audin.h>
     26#include <freerdp/freerdp.h>
     27#include <freerdp/codec/audio.h>
     28
     29/**
     30 * Subsystem Interface
     31 */
     32
     33typedef UINT (*AudinReceive)(const AUDIO_FORMAT* format, const BYTE* data, size_t size,
     34                             void* userData);
     35
     36typedef struct _IAudinDevice IAudinDevice;
     37struct _IAudinDevice
     38{
     39	UINT (*Open)(IAudinDevice* devplugin, AudinReceive receive, void* userData);
     40	BOOL (*FormatSupported)(IAudinDevice* devplugin, const AUDIO_FORMAT* format);
     41	UINT (*SetFormat)(IAudinDevice* devplugin, const AUDIO_FORMAT* format, UINT32 FramesPerPacket);
     42	UINT (*Close)(IAudinDevice* devplugin);
     43	UINT (*Free)(IAudinDevice* devplugin);
     44};
     45
     46#define AUDIN_DEVICE_EXPORT_FUNC_NAME "freerdp_audin_client_subsystem_entry"
     47
     48typedef UINT (*PREGISTERAUDINDEVICE)(IWTSPlugin* plugin, IAudinDevice* device);
     49
     50struct _FREERDP_AUDIN_DEVICE_ENTRY_POINTS
     51{
     52	IWTSPlugin* plugin;
     53	PREGISTERAUDINDEVICE pRegisterAudinDevice;
     54	ADDIN_ARGV* args;
     55	rdpContext* rdpcontext;
     56};
     57typedef struct _FREERDP_AUDIN_DEVICE_ENTRY_POINTS FREERDP_AUDIN_DEVICE_ENTRY_POINTS;
     58typedef FREERDP_AUDIN_DEVICE_ENTRY_POINTS* PFREERDP_AUDIN_DEVICE_ENTRY_POINTS;
     59
     60typedef UINT (*PFREERDP_AUDIN_DEVICE_ENTRY)(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints);
     61
     62#endif /* FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H */