Initial commit - from Precise source
[freerdp-ubuntu-pcb-backport.git] / channels / drdynvc / tsmf / tsmf_ifman.h
1 /**
2  * FreeRDP: A Remote Desktop Protocol client.
3  * Video Redirection Virtual Channel - Interface Manipulation
4  *
5  * Copyright 2010-2011 Vic Lee
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 #ifndef __TSMF_IFMAN_H
21 #define __TSMF_IFMAN_H
22
23 typedef struct _TSMF_IFMAN TSMF_IFMAN;
24 struct _TSMF_IFMAN
25 {
26         IWTSVirtualChannelCallback* channel_callback;
27         const char* decoder_name;
28         const char* audio_name;
29         const char* audio_device;
30         uint8 presentation_id[16];
31         uint32 stream_id;
32         uint32 message_id;
33
34         STREAM* input;
35         uint32 input_size;
36         STREAM* output;
37         boolean output_pending;
38         uint32 output_interface_id;
39 };
40
41 int tsmf_ifman_rim_exchange_capability_request(TSMF_IFMAN* ifman);
42 int tsmf_ifman_exchange_capability_request(TSMF_IFMAN* ifman);
43 int tsmf_ifman_check_format_support_request(TSMF_IFMAN* ifman);
44 int tsmf_ifman_on_new_presentation(TSMF_IFMAN* ifman);
45 int tsmf_ifman_add_stream(TSMF_IFMAN* ifman);
46 int tsmf_ifman_set_topology_request(TSMF_IFMAN* ifman);
47 int tsmf_ifman_remove_stream(TSMF_IFMAN* ifman);
48 int tsmf_ifman_shutdown_presentation(TSMF_IFMAN* ifman);
49 int tsmf_ifman_on_stream_volume(TSMF_IFMAN* ifman);
50 int tsmf_ifman_on_channel_volume(TSMF_IFMAN* ifman);
51 int tsmf_ifman_set_video_window(TSMF_IFMAN* ifman);
52 int tsmf_ifman_update_geometry_info(TSMF_IFMAN* ifman);
53 int tsmf_ifman_set_allocator(TSMF_IFMAN* ifman);
54 int tsmf_ifman_notify_preroll(TSMF_IFMAN* ifman);
55 int tsmf_ifman_on_sample(TSMF_IFMAN* ifman);
56 int tsmf_ifman_on_flush(TSMF_IFMAN* ifman);
57 int tsmf_ifman_on_end_of_stream(TSMF_IFMAN* ifman);
58 int tsmf_ifman_on_playback_started(TSMF_IFMAN* ifman);
59 int tsmf_ifman_on_playback_paused(TSMF_IFMAN* ifman);
60 int tsmf_ifman_on_playback_restarted(TSMF_IFMAN* ifman);
61 int tsmf_ifman_on_playback_stopped(TSMF_IFMAN* ifman);
62 int tsmf_ifman_on_playback_rate_changed(TSMF_IFMAN* ifman);
63
64 #endif
65