blob: d26563cddc0d9f3b0080106e338e8917d4481442 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef GUAC_RDP_PLUGINS_GUACAI_H
#define GUAC_RDP_PLUGINS_GUACAI_H
#include <freerdp/constants.h>
#include <freerdp/dvc.h>
#include <freerdp/freerdp.h>
#include <guacamole/client.h>
/**
* Extended version of the IWTSListenerCallback structure, providing additional
* access to Guacamole-specific data. The IWTSListenerCallback provides access
* to callbacks related to the receipt of new connections to the AUDIO_INPUT
* channel.
*/
typedef struct guac_rdp_ai_listener_callback {
/**
* The parent IWTSListenerCallback structure that this structure extends.
* THIS MEMBER MUST BE FIRST!
*/
IWTSListenerCallback parent;
/**
* The guac_client instance associated with the RDP connection using the
* AUDIO_INPUT plugin.
*/
guac_client* client;
} guac_rdp_ai_listener_callback;
/**
* Extended version of the IWTSVirtualChannelCallback structure, providing
* additional access to Guacamole-specific data. The IWTSVirtualChannelCallback
* provides access to callbacks related to an active connection to the
* AUDIO_INPUT channel, including receipt of data.
*/
typedef struct guac_rdp_ai_channel_callback {
/**
* The parent IWTSVirtualChannelCallback structure that this structure
* extends. THIS MEMBER MUST BE FIRST!
*/
IWTSVirtualChannelCallback parent;
/**
* The actual virtual channel instance along which the AUDIO_INPUT plugin
* should send any responses.
*/
IWTSVirtualChannel* channel;
/**
* The guac_client instance associated with the RDP connection using the
* AUDIO_INPUT plugin.
*/
guac_client* client;
} guac_rdp_ai_channel_callback;
/**
* All data associated with Guacamole's AUDIO_INPUT plugin for FreeRDP.
*/
typedef struct guac_rdp_ai_plugin {
/**
* The parent IWTSPlugin structure that this structure extends. THIS
* MEMBER MUST BE FIRST!
*/
IWTSPlugin parent;
/**
* The listener callback structure allocated when the AUDIO_INPUT plugin
* was loaded, if any. If the plugin did not fully load, this will be NULL.
* If non-NULL, this callback structure must be freed when the plugin is
* terminated.
*/
guac_rdp_ai_listener_callback* listener_callback;
/**
* The guac_client instance associated with the RDP connection using the
* AUDIO_INPUT plugin.
*/
guac_client* client;
} guac_rdp_ai_plugin;
#endif