guacai.h (3248B)
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20#ifndef GUAC_RDP_PLUGINS_GUACAI_H 21#define GUAC_RDP_PLUGINS_GUACAI_H 22 23#include <freerdp/constants.h> 24#include <freerdp/dvc.h> 25#include <freerdp/freerdp.h> 26#include <guacamole/client.h> 27 28/** 29 * Extended version of the IWTSListenerCallback structure, providing additional 30 * access to Guacamole-specific data. The IWTSListenerCallback provides access 31 * to callbacks related to the receipt of new connections to the AUDIO_INPUT 32 * channel. 33 */ 34typedef struct guac_rdp_ai_listener_callback { 35 36 /** 37 * The parent IWTSListenerCallback structure that this structure extends. 38 * THIS MEMBER MUST BE FIRST! 39 */ 40 IWTSListenerCallback parent; 41 42 /** 43 * The guac_client instance associated with the RDP connection using the 44 * AUDIO_INPUT plugin. 45 */ 46 guac_client* client; 47 48} guac_rdp_ai_listener_callback; 49 50/** 51 * Extended version of the IWTSVirtualChannelCallback structure, providing 52 * additional access to Guacamole-specific data. The IWTSVirtualChannelCallback 53 * provides access to callbacks related to an active connection to the 54 * AUDIO_INPUT channel, including receipt of data. 55 */ 56typedef struct guac_rdp_ai_channel_callback { 57 58 /** 59 * The parent IWTSVirtualChannelCallback structure that this structure 60 * extends. THIS MEMBER MUST BE FIRST! 61 */ 62 IWTSVirtualChannelCallback parent; 63 64 /** 65 * The actual virtual channel instance along which the AUDIO_INPUT plugin 66 * should send any responses. 67 */ 68 IWTSVirtualChannel* channel; 69 70 /** 71 * The guac_client instance associated with the RDP connection using the 72 * AUDIO_INPUT plugin. 73 */ 74 guac_client* client; 75 76} guac_rdp_ai_channel_callback; 77 78/** 79 * All data associated with Guacamole's AUDIO_INPUT plugin for FreeRDP. 80 */ 81typedef struct guac_rdp_ai_plugin { 82 83 /** 84 * The parent IWTSPlugin structure that this structure extends. THIS 85 * MEMBER MUST BE FIRST! 86 */ 87 IWTSPlugin parent; 88 89 /** 90 * The listener callback structure allocated when the AUDIO_INPUT plugin 91 * was loaded, if any. If the plugin did not fully load, this will be NULL. 92 * If non-NULL, this callback structure must be freed when the plugin is 93 * terminated. 94 */ 95 guac_rdp_ai_listener_callback* listener_callback; 96 97 /** 98 * The guac_client instance associated with the RDP connection using the 99 * AUDIO_INPUT plugin. 100 */ 101 guac_client* client; 102 103} guac_rdp_ai_plugin; 104 105#endif 106