Update code by tizen coding convention.
[archive/platform/core/multimedia/libmm-scmirroring-common.git] / wfdconfig / include / wfdconfigmessage.h
1 /*
2  * wfdconfig messages
3  *
4  * Copyright (c) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: JongHyuk Choi <jhchoi.choi@samsung.com>, ByungWook Jang <bw.jang@samsung.com>,
7  * Manoj Kumar K <manojkumar.k@samsung.com>, Abhishek Bajaj <abhi.bajaj@samsung.com>, Nikhilesh Mittal <nikhilesh.m@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */
22
23 #ifndef __GST_WFD_CONFIG_MESSAGE_H__
24 #define __GST_WFD_CONFIG_MESSAGE_H__
25
26 #include <glib.h>
27
28 G_BEGIN_DECLS
29
30 /**
31  * WFDResult:
32  * @WFD_OK: A successful return value
33  * @WFD_EINVAL: a function was given invalid parameters
34  *
35  * Return values for the WFD_CONFIG functions.
36  */
37 typedef enum {
38         WFD_OK     = 0,
39         WFD_EINVAL = -1,
40         WFD_NOT_IMPLEMENTED = -2,
41         WFD_NOT_SUPPORTED = -3
42 } WFDResult;
43
44 typedef enum {
45         WFD_AUDIO_UNKNOWN       = 0,
46         WFD_AUDIO_LPCM          = (1 << 0),
47         WFD_AUDIO_AAC           = (1 << 1),
48         WFD_AUDIO_AC3           = (1 << 2)
49 } WFDAudioFormats;
50
51 typedef enum {
52         WFD_FREQ_UNKNOWN = 0,
53         WFD_FREQ_44100   = (1 << 0),
54         WFD_FREQ_48000   = (1 << 1)
55 } WFDAudioFreq;
56
57 typedef enum {
58         WFD_CHANNEL_UNKNOWN = 0,
59         WFD_CHANNEL_2           = (1 << 0),
60         WFD_CHANNEL_4           = (1 << 1),
61         WFD_CHANNEL_6           = (1 << 2),
62         WFD_CHANNEL_8           = (1 << 3)
63 } WFDAudioChannels;
64
65
66 typedef enum {
67         WFD_VIDEO_UNKNOWN = 0,
68         WFD_VIDEO_H264    = (1 << 0)
69 } WFDVideoCodecs;
70
71 typedef enum {
72         WFD_VIDEO_CEA_RESOLUTION = 0,
73         WFD_VIDEO_VESA_RESOLUTION,
74         WFD_VIDEO_HH_RESOLUTION
75 } WFDVideoNativeResolution;
76
77 typedef enum {
78         WFD_CEA_UNKNOWN         = 0,
79         WFD_CEA_640x480P60      = (1 << 0),
80         WFD_CEA_720x480P60      = (1 << 1),
81         WFD_CEA_720x480I60      = (1 << 2),
82         WFD_CEA_720x576P50      = (1 << 3),
83         WFD_CEA_720x576I50      = (1 << 4),
84         WFD_CEA_1280x720P30     = (1 << 5),
85         WFD_CEA_1280x720P60     = (1 << 6),
86         WFD_CEA_1920x1080P30 = (1 << 7),
87         WFD_CEA_1920x1080P60 = (1 << 8),
88         WFD_CEA_1920x1080I60 = (1 << 9),
89         WFD_CEA_1280x720P25     = (1 << 10),
90         WFD_CEA_1280x720P50     = (1 << 11),
91         WFD_CEA_1920x1080P25 = (1 << 12),
92         WFD_CEA_1920x1080P50 = (1 << 13),
93         WFD_CEA_1920x1080I50 = (1 << 14),
94         WFD_CEA_1280x720P24     = (1 << 15),
95         WFD_CEA_1920x1080P24 = (1 << 16)
96 } WFDVideoCEAResolution;
97
98 typedef enum {
99         WFD_VESA_UNKNOWN                = 0,
100         WFD_VESA_800x600P30     = (1 << 0),
101         WFD_VESA_800x600P60             = (1 << 1),
102         WFD_VESA_1024x768P30    = (1 << 2),
103         WFD_VESA_1024x768P60    = (1 << 3),
104         WFD_VESA_1152x864P30    = (1 << 4),
105         WFD_VESA_1152x864P60    = (1 << 5),
106         WFD_VESA_1280x768P30    = (1 << 6),
107         WFD_VESA_1280x768P60    = (1 << 7),
108         WFD_VESA_1280x800P30    = (1 << 8),
109         WFD_VESA_1280x800P60    = (1 << 9),
110         WFD_VESA_1360x768P30    = (1 << 10),
111         WFD_VESA_1360x768P60    = (1 << 11),
112         WFD_VESA_1366x768P30    = (1 << 12),
113         WFD_VESA_1366x768P60    = (1 << 13),
114         WFD_VESA_1280x1024P30   = (1 << 14),
115         WFD_VESA_1280x1024P60   = (1 << 15),
116         WFD_VESA_1400x1050P30   = (1 << 16),
117         WFD_VESA_1400x1050P60   = (1 << 17),
118         WFD_VESA_1440x900P30    = (1 << 18),
119         WFD_VESA_1440x900P60    = (1 << 19),
120         WFD_VESA_1600x900P30    = (1 << 20),
121         WFD_VESA_1600x900P60    = (1 << 21),
122         WFD_VESA_1600x1200P30   = (1 << 22),
123         WFD_VESA_1600x1200P60   = (1 << 23),
124         WFD_VESA_1680x1024P30   = (1 << 24),
125         WFD_VESA_1680x1024P60   = (1 << 25),
126         WFD_VESA_1680x1050P30   = (1 << 26),
127         WFD_VESA_1680x1050P60   = (1 << 27),
128         WFD_VESA_1920x1200P30   = (1 << 28),
129         WFD_VESA_1920x1200P60   = (1 << 29)
130 } WFDVideoVESAResolution;
131
132 typedef enum {
133         WFD_HH_UNKNOWN          = 0,
134         WFD_HH_800x480P30       = (1 << 0),
135         WFD_HH_800x480P60       = (1 << 1),
136         WFD_HH_854x480P30       = (1 << 2),
137         WFD_HH_854x480P60       = (1 << 3),
138         WFD_HH_864x480P30       = (1 << 4),
139         WFD_HH_864x480P60       = (1 << 5),
140         WFD_HH_640x360P30       = (1 << 6),
141         WFD_HH_640x360P60       = (1 << 7),
142         WFD_HH_960x540P30       = (1 << 8),
143         WFD_HH_960x540P60       = (1 << 9),
144         WFD_HH_848x480P30       = (1 << 10),
145         WFD_HH_848x480P60       = (1 << 11)
146 } WFDVideoHHResolution;
147
148 typedef enum {
149         WFD_H264_UNKNOWN_PROFILE = 0,
150         WFD_H264_BASE_PROFILE   = (1 << 0),
151         WFD_H264_HIGH_PROFILE   = (1 << 1)
152 } WFDVideoH264Profile;
153
154 typedef enum {
155         WFD_H264_LEVEL_UNKNOWN = 0,
156         WFD_H264_LEVEL_3_1   = (1 << 0),
157         WFD_H264_LEVEL_3_2   = (1 << 1),
158         WFD_H264_LEVEL_4       = (1 << 2),
159         WFD_H264_LEVEL_4_1   = (1 << 3),
160         WFD_H264_LEVEL_4_2   = (1 << 4)
161 } WFDVideoH264Level;
162
163 typedef enum {
164         WFD_HDCP_NONE   = 0,
165         WFD_HDCP_2_0    = (1 << 0),
166         WFD_HDCP_2_1    = (1 << 1)
167 } WFDHDCPProtection;
168
169 typedef enum {
170         WFD_SINK_UNKNOWN = -1,
171         WFD_SINK_NOT_COUPLED    = 0,
172         WFD_SINK_COUPLED,
173         WFD_SINK_TEARDOWN_COUPLING,
174         WFD_SINK_RESERVED
175 } WFDCoupledSinkStatus;
176
177 typedef enum {
178         WFD_TRIGGER_UNKNOWN = 0,
179         WFD_TRIGGER_SETUP,
180         WFD_TRIGGER_PAUSE,
181         WFD_TRIGGER_TEARDOWN,
182         WFD_TRIGGER_PLAY
183 } WFDTrigger;
184
185 typedef enum {
186         WFD_RTSP_TRANS_UNKNOWN =  0,
187         WFD_RTSP_TRANS_RTP     = (1 << 0),
188         WFD_RTSP_TRANS_RDT     = (1 << 1)
189 } WFDRTSPTransMode;
190
191 typedef enum {
192         WFD_RTSP_PROFILE_UNKNOWN =  0,
193         WFD_RTSP_PROFILE_AVP     = (1 << 0),
194         WFD_RTSP_PROFILE_SAVP    = (1 << 1)
195 } WFDRTSPProfile;
196
197 typedef enum {
198         WFD_RTSP_LOWER_TRANS_UNKNOWN   = 0,
199         WFD_RTSP_LOWER_TRANS_UDP       = (1 << 0),
200         WFD_RTSP_LOWER_TRANS_UDP_MCAST = (1 << 1),
201         WFD_RTSP_LOWER_TRANS_TCP       = (1 << 2),
202         WFD_RTSP_LOWER_TRANS_HTTP      = (1 << 3)
203 } WFDRTSPLowerTrans;
204
205 typedef enum {
206         WFD_PRIMARY_SINK   = 0,
207         WFD_SECONDARY_SINK
208 } WFDSinkType;
209
210 typedef enum {
211         WFD_UIBC_INPUT_CAT_UNKNOWN   = 0,
212         WFD_UIBC_INPUT_CAT_GENERIC   = (1 << 0),
213         WFD_UIBC_INPUT_CAT_HIDC      = (1 << 1),
214 } WFDUibcinput_cat;
215
216 typedef enum {
217         WFD_UIBC_INPUT_TYPE_UNKNOWN        = 0,
218         WFD_UIBC_INPUT_TYPE_KEYBOARD       = (1 << 0),
219         WFD_UIBC_INPUT_TYPE_MOUSE          = (1 << 1),
220         WFD_UIBC_INPUT_TYPE_SINGLETOUCH    = (1 << 2),
221         WFD_UIBC_INPUT_TYPE_MULTITOUCH     = (1 << 3),
222         WFD_UIBC_INPUT_TYPE_JOYSTICK       = (1 << 4),
223         WFD_UIBC_INPUT_TYPE_CAMERA         = (1 << 5),
224         WFD_UIBC_INPUT_TYPE_GESTURE        = (1 << 6),
225         WFD_UIBC_INPUT_TYPE_REMOTECONTROL  = (1 << 7)
226 } WFDUibcinp_type;
227
228 typedef enum {
229         WFD_UIBC_INPUT_PATH_UNKNOWN   = 0,
230         WFD_UIBC_INPUT_PATH_INFRARED  = (1 << 0),
231         WFD_UIBC_INPUT_PATH_USB       = (1 << 1),
232         WFD_UIBC_INPUT_PATH_BT        = (1 << 2),
233         WFD_UIBC_INPUT_PATH_ZIGBEE    = (1 << 3),
234         WFD_UIBC_INPUT_PATH_WIFI      = (1 << 4),
235         WFD_UIBC_INPUT_PATH_NOSP      = (1 << 5)
236 } WFDUibcinp_path;
237
238 typedef enum {
239         WFD_CONNECTOR_VGA           = 0,
240         WFD_CONNECTOR_S,
241         WFD_CONNECTOR_COMPOSITE,
242         WFD_CONNECTOR_COMPONENT,
243         WFD_CONNECTOR_DVI,
244         WFD_CONNECTOR_HDMI,
245         WFD_CONNECTOR_LVDS,
246         WFD_CONNECTOR_RESERVED_7,
247         WFD_CONNECTOR_JAPANESE_D,
248         WFD_CONNECTOR_SDI,
249         WFD_CONNECTOR_DP,
250         WFD_CONNECTOR_RESERVED_11,
251         WFD_CONNECTOR_UDI,
252         WFD_CONNECTOR_NO           = 254,
253         WFD_CONNECTOR_PHYSICAL     = 255
254 } WFDConnector;
255
256
257 typedef struct {
258         gchar   *audio_format;
259         guint32 modes;
260         guint latency;
261 } WFDAudioCodec;
262
263 typedef struct {
264         guint   count;
265         WFDAudioCodec *list;
266 } WFDAudioCodeclist;
267
268
269 typedef struct {
270         guint CEA_Support;
271         guint VESA_Support;
272         guint HH_Support;
273         guint latency;
274         guint min_slice_size;
275         guint slice_enc_params;
276         guint frame_rate_control_support;
277 } WFDVideoH264MiscParams;
278
279 typedef struct {
280         guint profile;
281         guint level;
282         guint max_hres;
283         guint max_vres;
284         WFDVideoH264MiscParams misc_params;
285 } WFDVideoH264Codec;
286
287 typedef struct {
288         guint   native;
289         guint preferred_display_mode_supported;
290         WFDVideoH264Codec H264_codec;
291 } WFDVideoCodec;
292
293 typedef struct {
294         guint                   count;
295         WFDVideoCodec *list;
296 } WFDVideoCodeclist;
297
298 typedef struct {
299         guint video_3d_capability;
300         guint latency;
301         guint min_slice_size;
302         guint slice_enc_params;
303         guint frame_rate_control_support;
304 } WFD3DVideoH264MiscParams;
305
306 typedef struct {
307         guint profile;
308         guint level;
309         WFD3DVideoH264MiscParams misc_params;
310         guint max_hres;
311         guint max_vres;
312 } WFD3DVideoH264Codec;
313
314 typedef struct {
315         guint native;
316         guint preferred_display_mode_supported;
317         WFD3DVideoH264Codec H264_codec;
318 } WFD3dCapList;
319
320 typedef struct {
321         guint                   count;
322         WFD3dCapList *list;
323 } WFD3DFormats;
324
325 typedef struct {
326         gchar *hdcpversion;
327         gchar *TCPPort;
328 } WFDHdcp2Spec;
329
330 typedef struct {
331         WFDHdcp2Spec *hdcp2_spec;
332 } WFDContentProtection;
333
334 typedef struct {
335         guint edid_supported;
336         guint edid_block_count;
337         gchar *edid_payload;
338 } WFDDisplayEdid;
339
340
341 typedef struct {
342         guint status;
343         gchar *sink_address;
344 } WFDCoupled_sink_cap;
345
346 typedef struct {
347         WFDCoupled_sink_cap *coupled_sink_cap;
348 } WFDCoupledSink;
349
350 typedef struct {
351         gchar *wfd_trigger_method;
352 } WFDTriggerMethod;
353
354 typedef struct {
355         gchar *wfd_url0;
356         gchar *wfd_url1;
357 } WFDPresentationUrl;
358
359 typedef struct {
360         gchar *profile;
361         guint32 rtp_port0;
362         guint32 rtp_port1;
363         gchar *mode;
364 } WFDClientRtpPorts;
365
366 typedef struct {
367         gchar *destination;
368 } WFDRoute;
369
370 typedef struct {
371         gboolean I2CPresent;
372         guint32 I2C_port;
373 } WFDI2C;
374
375 typedef struct {
376         guint64 PTS;
377         guint64 DTS;
378 } WFDAVFormatChangeTiming;
379
380 typedef struct {
381         gboolean displaymodesupported;
382         guint64 p_clock;
383         guint32 H;
384         guint32 HB;
385         guint32 HSPOL_HSOFF;
386         guint32 HSW;
387         guint32 V;
388         guint32 VB;
389         guint32 VSPOL_VSOFF;
390         guint32 VSW;
391         guint VBS3D;
392         guint R;
393         guint V2d_s3d_modes;
394         guint P_depth;
395         WFDVideoH264Codec H264_codec;
396 } WFDPreferredDisplayMode;
397
398 typedef struct {
399         guint32 input_cat;
400 } WFDInputCategoryList;
401
402 typedef struct {
403         guint32 inp_type;
404 } WFDGenericCategoryList;
405
406 typedef struct _detailed_cap detailed_cap;
407
408 typedef struct {
409         WFDUibcinp_type inp_type;
410         WFDUibcinp_path inp_path;
411 } WFDHIDCTypePathPair;
412
413 struct _detailed_cap {
414         WFDHIDCTypePathPair p;
415         detailed_cap *next;
416 };
417
418 typedef struct {
419         guint cap_count;
420         detailed_cap *next;
421 } WFDHIDCCategoryList;
422
423 typedef struct {
424         gboolean uibcsupported;
425         WFDInputCategoryList input_category_list;
426         WFDGenericCategoryList generic_cap_list;
427         WFDHIDCCategoryList hidc_cap_list;
428         guint32 tcp_port;
429 } WFDUibcCapability;
430
431 typedef struct {
432         gboolean uibc_setting;
433 } WFDUibcSetting;
434
435 typedef struct {
436         gboolean standby_resume_cap;
437 } WFDStandbyResumeCapability;
438
439 typedef struct {
440         gboolean wfd_standby;
441 } WFDStandby;
442
443 typedef struct {
444         gboolean supported;
445         gint32 connector_type;
446 } WFDConnectorType;
447
448 typedef struct {
449         gboolean idr_request;
450 } WFDIdrRequest;
451
452 /***********************************************************/
453
454 typedef struct {
455
456         WFDAudioCodeclist *audio_codecs;
457         WFDVideoCodeclist *video_formats;
458         WFD3DFormats *video_3d_formats;
459         WFDContentProtection *content_protection;
460         WFDDisplayEdid *display_edid;
461         WFDCoupledSink *coupled_sink;
462         WFDTriggerMethod *trigger_method;
463         WFDPresentationUrl *presentation_url;
464         WFDClientRtpPorts *client_rtp_ports;
465         WFDRoute *route;
466         WFDI2C *I2C;
467         WFDAVFormatChangeTiming *av_format_change_timing;
468         WFDPreferredDisplayMode *preferred_display_mode;
469         WFDUibcCapability *uibc_capability;
470         WFDUibcSetting *uibc_setting;
471         WFDStandbyResumeCapability *standby_resume_capability;
472         WFDStandby *standby;
473         WFDConnectorType *connector_type;
474         WFDIdrRequest *idr_request;
475 } WFDMessage;
476
477 /* Session descriptions */
478 WFDResult wfdconfig_message_new(WFDMessage **msg);
479 WFDResult wfdconfig_message_init(WFDMessage *msg);
480 WFDResult wfdconfig_message_uninit(WFDMessage *msg);
481 WFDResult wfdconfig_message_free(WFDMessage *msg);
482 WFDResult wfdconfig_message_parse_buffer(const guint8 *data, guint size, WFDMessage *msg);
483 gchar *wfdconfig_message_as_text(const WFDMessage *msg);
484 gchar *wfdconfig_parameter_names_as_text(const WFDMessage *msg);
485 WFDResult wfdconfig_message_dump(const WFDMessage *msg);
486
487
488 WFDResult wfdconfig_set_supported_audio_format(WFDMessage *msg,
489                                                guint aCodec, guint aFreq, guint aChanels,
490                                                guint aBitwidth, guint32 aLatency);
491 WFDResult wfdconfig_set_prefered_audio_format(WFDMessage *msg,
492                                               WFDAudioFormats aCodec, WFDAudioFreq aFreq, WFDAudioChannels aChanels,
493                                               guint aBitwidth, guint32 aLatency);
494 WFDResult wfdconfig_get_supported_audio_format(WFDMessage *msg,
495                                                guint *aCodec, guint *aFreq, guint *aChanels,
496                                                guint *aBitwidth, guint32 *aLatency);
497 WFDResult wfdconfig_get_prefered_audio_format(WFDMessage *msg,
498                                               WFDAudioFormats *aCodec, WFDAudioFreq *aFreq, WFDAudioChannels *aChanels,
499                                               guint *aBitwidth, guint32 *aLatency);
500
501 WFDResult wfdconfig_set_supported_video_format(WFDMessage *msg, WFDVideoCodecs vCodec,
502                                                WFDVideoNativeResolution vNative, guint64 vNativeResolution,
503                                                guint64 vCEAResolution, guint64 vVESAResolution, guint64 vHHResolution,
504                                                guint vProfile, guint vLevel, guint32 vLatency, guint32 vMaxHeight,
505                                                guint32 vMaxWidth, guint32 min_slice_size, guint32 slice_enc_params, guint frame_rate_control);
506 WFDResult wfdconfig_set_prefered_video_format(WFDMessage *msg, WFDVideoCodecs vCodec,
507                                               WFDVideoNativeResolution vNative, guint64 vNativeResolution,
508                                               WFDVideoCEAResolution vCEAResolution, WFDVideoVESAResolution vVESAResolution,
509                                               WFDVideoHHResolution vHHResolution,       WFDVideoH264Profile vProfile,
510                                               WFDVideoH264Level vLevel, guint32 vLatency, guint32 vMaxHeight,
511                                               guint32 vMaxWidth, guint32 min_slice_size, guint32 slice_enc_params, guint frame_rate_control);
512 WFDResult wfdconfig_get_supported_video_format(WFDMessage *msg, WFDVideoCodecs *vCodec,
513                                                WFDVideoNativeResolution *vNative, guint64 *vNativeResolution,
514                                                guint64 *vCEAResolution, guint64 *vVESAResolution, guint64 *vHHResolution,
515                                                guint *vProfile, guint *vLevel, guint32 *vLatency, guint32 *vMaxHeight,
516                                                guint32 *vMaxWidth, guint32 *min_slice_size, guint32 *slice_enc_params, guint *frame_rate_control);
517 WFDResult wfdconfig_get_prefered_video_format(WFDMessage *msg, WFDVideoCodecs *vCodec,
518                                               WFDVideoNativeResolution *vNative, guint64 *vNativeResolution,
519                                               WFDVideoCEAResolution *vCEAResolution, WFDVideoVESAResolution *vVESAResolution,
520                                               WFDVideoHHResolution *vHHResolution,      WFDVideoH264Profile *vProfile,
521                                               WFDVideoH264Level *vLevel, guint32 *vLatency, guint32 *vMaxHeight,
522                                               guint32 *vMaxWidth, guint32 *min_slice_size, guint32 *slice_enc_params, guint *frame_rate_control);
523
524 /* Todo wfd-3d-formats */
525
526 WFDResult wfdconfig_set_contentprotection_type(WFDMessage *msg, WFDHDCPProtection hdcpversion, guint32 TCPPort);
527 WFDResult wfdconfig_get_contentprotection_type(WFDMessage *msg, WFDHDCPProtection *hdcpversion, guint32 *TCPPort);
528
529 WFDResult wfdconfig_set_display_EDID(WFDMessage *msg, gboolean edid_supported, guint32 edid_blockcount, gchar *edid_playload);
530 WFDResult wfdconfig_get_display_EDID(WFDMessage *msg, gboolean *edid_supported, guint32 *edid_blockcount, gchar **edid_playload);
531
532
533 WFDResult wfdconfig_set_coupled_sink(WFDMessage *msg, WFDCoupledSinkStatus status, gchar *sink_address);
534 WFDResult wfdconfig_get_coupled_sink(WFDMessage *msg, WFDCoupledSinkStatus *status, gchar **sink_address);
535
536 WFDResult wfdconfig_set_trigger_type(WFDMessage *msg, WFDTrigger trigger);
537 WFDResult wfdconfig_get_trigger_type(WFDMessage *msg, WFDTrigger *trigger);
538
539 WFDResult wfdconfig_set_presentation_url(WFDMessage *msg, gchar *wfd_url0, gchar *wfd_url1);
540 WFDResult wfdconfig_get_presentation_url(WFDMessage *msg, gchar **wfd_url0, gchar **wfd_url1);
541
542 WFDResult wfdconfig_set_prefered_RTP_ports(WFDMessage *msg, WFDRTSPTransMode trans, WFDRTSPProfile profile,
543                                            WFDRTSPLowerTrans lowertrans, guint32 rtp_port0, guint32 rtp_port1);
544 WFDResult wfdconfig_get_prefered_RTP_ports(WFDMessage *msg, WFDRTSPTransMode *trans, WFDRTSPProfile *profile,
545                                            WFDRTSPLowerTrans *lowertrans, guint32 *rtp_port0, guint32 *rtp_port1);
546
547 WFDResult wfdconfig_set_audio_sink_type(WFDMessage *msg, WFDSinkType sinktype);
548 WFDResult wfdconfig_get_audio_sink_type(WFDMessage *msg, WFDSinkType *sinktype);
549
550 WFDResult wfdconfig_set_I2C_port(WFDMessage *msg, gboolean i2csupport, guint32 i2cport);
551 WFDResult wfdconfig_get_I2C_port(WFDMessage *msg, gboolean *i2csupport, guint32 *i2cport);
552
553 WFDResult wfdconfig_set_av_format_change_timing(WFDMessage *msg, guint64 PTS, guint64 DTS);
554 WFDResult wfdconfig_get_av_format_change_timing(WFDMessage *msg, guint64 *PTS, guint64 *DTS);
555
556 /* Todo wfd-preferred-display-mode */
557
558 WFDResult wfdconfig_set_uibc_capability(WFDMessage *msg, guint32 input_category, guint32 inp_type, WFDHIDCTypePathPair *inp_pair,
559                                         guint32 inp_type_path_count, guint32 tcp_port);
560 WFDResult wfdconfig_get_uibc_capability(WFDMessage *msg, guint32 *input_category, guint32 *inp_type, WFDHIDCTypePathPair **inp_pair,
561                                         guint32 *inp_type_path_count, guint32 *tcp_port);
562
563 WFDResult wfdconfig_set_uibc_status(WFDMessage *msg, gboolean uibc_enable);
564 WFDResult wfdconfig_get_uibc_status(WFDMessage *msg, gboolean *uibc_enable);
565
566 WFDResult wfdconfig_set_standby_resume_capability(WFDMessage *msg, gboolean supported);
567 WFDResult wfdconfig_get_standby_resume_capability(WFDMessage *msg, gboolean *supported);
568
569 WFDResult wfdconfig_set_standby(WFDMessage *msg, gboolean standby_enable);
570 WFDResult wfdconfig_get_standby(WFDMessage *msg, gboolean *standby_enable);
571
572 WFDResult wfdconfig_set_connector_type(WFDMessage *msg, WFDConnector connector);
573 WFDResult wfdconfig_get_connector_type(WFDMessage *msg, WFDConnector *connector);
574
575 WFDResult wfdconfig_set_idr_request(WFDMessage *msg);
576
577 G_END_DECLS
578
579 #endif /* __GST_WFD_CONFIG_MESSAGE_H__ */