cscg24-guacamole

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

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