139 lines
4.2 KiB
C
139 lines
4.2 KiB
C
/*
|
|
* 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_SPICE_AUDIO_H
|
|
#define GUAC_SPICE_AUDIO_H
|
|
|
|
#include "config.h"
|
|
|
|
#include <guacamole/client.h>
|
|
|
|
#include <spice-client-glib-2.0/spice-client.h>
|
|
|
|
/**
|
|
* A callback function invoked with the SPICE client receives audio playback
|
|
* data from the SPICE server.
|
|
*
|
|
* @param channel
|
|
* The SpicePlaybackChannel on which the data was sent.
|
|
*
|
|
* @param data
|
|
* The audio data.
|
|
*
|
|
* @param size
|
|
* The number of bytes of data sent.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with this event.
|
|
*/
|
|
void guac_spice_client_audio_playback_data_handler(
|
|
SpicePlaybackChannel* channel, gpointer data, gint size,
|
|
guac_client* client);
|
|
|
|
/**
|
|
* A callback function invoked when the SPICE server requests the audio playback
|
|
* delay value from the client.
|
|
*
|
|
* @param channel
|
|
* The SpicePlaybackChannel channel on which this event occurred.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with this event.
|
|
*/
|
|
void guac_spice_client_audio_playback_delay_handler(
|
|
SpicePlaybackChannel* channel, guac_client* client);
|
|
|
|
/**
|
|
* A callback function invoked by the client when the SPICE server sends a
|
|
* signal indicating that it is starting an audio transmission.
|
|
*
|
|
* @param channel
|
|
* The SpicePlaybackChannel on which this event occurred.
|
|
*
|
|
* @param format
|
|
* The SPICE_AUDIO_FMT value of the format of the audio data.
|
|
*
|
|
* @param channels
|
|
* The number of channels of audio data present.
|
|
*
|
|
* @param rate
|
|
* The audio sampling rate at which the data will be sent.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with this event.
|
|
*/
|
|
void guac_spice_client_audio_playback_start_handler(
|
|
SpicePlaybackChannel* channel, gint format, gint channels, gint rate,
|
|
guac_client* client);
|
|
|
|
/**
|
|
* The callback function invoked by the client when the SPICE server sends
|
|
* an event indicating that audio playback will cease.
|
|
*
|
|
* @param channel
|
|
* The SpicePlaybackChannel on which the recording is being halted.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with this event.
|
|
*/
|
|
void guac_spice_client_audio_playback_stop_handler(
|
|
SpicePlaybackChannel* channel, guac_client* client);
|
|
|
|
/**
|
|
* Handler for inbound audio data (audio input).
|
|
*/
|
|
guac_user_audio_handler guac_spice_client_audio_record_handler;
|
|
|
|
/**
|
|
* The callback function invoked by the client when the SPICE server requests
|
|
* that the client begin recording audio data to send to the server.
|
|
*
|
|
* @param channel
|
|
* The SpiceRecordChannel on which the record event is being requested.
|
|
*
|
|
* @param format
|
|
* The SPICE_AUDIO_FMT value representing the required recording format.
|
|
*
|
|
* @param channels
|
|
* The number of audio channels that should be recorded.
|
|
*
|
|
* @param rate
|
|
* The rate at which the recording should take place.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with this event.
|
|
*/
|
|
void guac_spice_client_audio_record_start_handler(SpiceRecordChannel* channel,
|
|
gint format, gint channels, gint rate, guac_client* client);
|
|
|
|
/**
|
|
* The callback function invoked by the client when the SPICE server sends
|
|
* an event requesting that recording be stopped.
|
|
*
|
|
* @param channel
|
|
* The channel associated with the event.
|
|
*
|
|
* @param client
|
|
* The guac_client associated with the event.
|
|
*/
|
|
void guac_spice_client_audio_record_stop_handler(SpiceRecordChannel* channel,
|
|
guac_client* client);
|
|
#endif /* GUAC_SPICE_AUDIO_H */
|
|
|