Blame channels/tsmf/client/tsmf_audio.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * Video Redirection Virtual Channel - Audio Device Manager
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2010-2011 Vic Lee
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#ifndef FREERDP_CHANNEL_TSMF_CLIENT_AUDIO_H
Packit Service fa4841
#define FREERDP_CHANNEL_TSMF_CLIENT_AUDIO_H
Packit Service fa4841
Packit Service fa4841
#include "tsmf_types.h"
Packit Service fa4841
Packit Service fa4841
typedef struct _ITSMFAudioDevice ITSMFAudioDevice;
Packit Service fa4841
Packit Service fa4841
struct _ITSMFAudioDevice
Packit Service fa4841
{
Packit Service fa4841
	/* Open the audio device. */
Packit Service fa4841
	BOOL (*Open)(ITSMFAudioDevice* audio, const char* device);
Packit Service fa4841
	/* Set the audio data format. */
Packit Service b1ea74
	BOOL(*SetFormat)
Packit Service b1ea74
	(ITSMFAudioDevice* audio, UINT32 sample_rate, UINT32 channels, UINT32 bits_per_sample);
Packit Service fa4841
	/* Play audio data. */
Packit Service fa4841
	BOOL (*Play)(ITSMFAudioDevice* audio, const BYTE* data, UINT32 data_size);
Packit Service fa4841
	/* Get the latency of the last written sample, in 100ns */
Packit Service b1ea74
	UINT64 (*GetLatency)(ITSMFAudioDevice* audio);
Packit Service fa4841
	/* Change the playback volume level */
Packit Service fa4841
	BOOL (*ChangeVolume)(ITSMFAudioDevice* audio, UINT32 newVolume, UINT32 muted);
Packit Service fa4841
	/* Flush queued audio data */
Packit Service fa4841
	BOOL (*Flush)(ITSMFAudioDevice* audio);
Packit Service fa4841
	/* Free the audio device */
Packit Service fa4841
	void (*Free)(ITSMFAudioDevice* audio);
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
#define TSMF_AUDIO_DEVICE_EXPORT_FUNC_NAME "TSMFAudioDeviceEntry"
Packit Service fa4841
typedef ITSMFAudioDevice* (*TSMF_AUDIO_DEVICE_ENTRY)(void);
Packit Service fa4841
Packit Service fa4841
ITSMFAudioDevice* tsmf_load_audio_device(const char* name, const char* device);
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_CHANNEL_TSMF_CLIENT_AUDIO_H */