Update to gupnp-av-0.12.4
[profile/ivi/GUPnP-AV.git] / libgupnp-av / gupnp-dlna.h
1 /*
2  * Copyright (C) 2007, 2008 OpenedHand Ltd.
3  *
4  * Authors: Jorn Baayen <jorn@openedhand.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library; if not, write to the
18  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  */
21
22 #ifndef __GUPNP_DLNA_H__
23 #define __GUPNP_DLNA_H__
24
25 #include <glib-object.h>
26
27 G_BEGIN_DECLS
28
29 GType
30 gupnp_dlna_conversion_get_type (void) G_GNUC_CONST;
31
32 #define GUPNP_TYPE_DLNA_CONVERSION (gupnp_dlna_conversion_get_type ())
33
34 /**
35  * GUPnPDLNAConversion:
36  * @GUPNP_DLNA_CONVERSION_NONE: Content is in original source format
37  * @GUPNP_DLNA_CONVERSION_TRANSCODED: Content is transcoded
38  *
39  * The DLNA conversion flags for a resource.
40  *
41  **/
42 typedef enum {
43         GUPNP_DLNA_CONVERSION_NONE       = 0,
44         GUPNP_DLNA_CONVERSION_TRANSCODED = 1
45 } GUPnPDLNAConversion;
46
47 GType
48 gupnp_dlna_operation_get_type (void) G_GNUC_CONST;
49
50 #define GUPNP_TYPE_DLNA_OPERATION (gupnp_dlna_operation_get_type ())
51
52 /**
53  * GUPnPDLNAOperation:
54  * @GUPNP_DLNA_OPERATION_NONE: Resource does not support seeking of any type
55  * @GUPNP_DLNA_OPERATION_RANGE: Resource supports byte-seek
56  * @GUPNP_DLNA_OPERATION_TIMESEEK: Resource supports time-seek
57  *
58  * The seek operations supported by a resource.
59  *
60  **/
61 typedef enum {
62         GUPNP_DLNA_OPERATION_NONE     = 0x00,
63         GUPNP_DLNA_OPERATION_RANGE    = 0x01,
64         GUPNP_DLNA_OPERATION_TIMESEEK = 0x10
65 } GUPnPDLNAOperation;
66
67 GType
68 gupnp_dlna_flags_get_type (void) G_GNUC_CONST;
69
70 #define GUPNP_TYPE_DLNA_FLAGS (gupnp_dlna_flags_get_type ())
71
72 /**
73  * GUPnPDLNAFlags:
74  * @GUPNP_DLNA_FLAGS_NONE: No flags
75  * @GUPNP_DLNA_FLAGS_SENDER_PACED: Content source is the clock source during
76  *                                 transport
77  * @GUPNP_DLNA_FLAGS_TIME_BASED_SEEK: Limited Operation: time-seek supported
78  * @GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK: Limited Operation: byte-seek supported
79  * @GUPNP_DLNA_FLAGS_PLAY_CONTAINER: Resource supports 'Container Playback'
80  * @GUPNP_DLNA_FLAGS_S0_INCREASE: Content does not have a fixed beginning
81  * @GUPNP_DLNA_FLAGS_SN_INCREASE: Content does not have a fixed end
82  * @GUPNP_DLNA_FLAGS_RTSP_PAUSE: RTSP resource supports pausing of media
83  *                               transfer
84  * @GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE: Streaming transfer mode supported
85  * @GUPNP_DLNA_FLAGS_INTERACTIVE_TRANSFER_MODE: Interactive transfer mode
86  *                                              supported
87  * @GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE: Background transfer mode
88  *                                             supported
89  * @GUPNP_DLNA_FLAGS_CONNECTION_STALL: No content transfer when paused.
90  * @GUPNP_DLNA_FLAGS_DLNA_V15: DLNAv1.5 version flag
91  * @GUPNP_DLNA_FLAGS_LINK_PROTECTED_CONTENT: The content is protected.
92  * @GUPNP_DLNA_FLAGS_CLEAR_TEXT_BYTE_SEEK_FULL: Full byte seek on cleartext
93  *                                              domain is supported.
94  * @GUPNP_DLNA_FLAGS_LOP_CLEAR_TEXT_BYTE_SEEK: Limited operations on
95  *                                              byte seek in cleartext domain.
96  *
97  * The miscellaneous operations supported by a resource. For details on these
98  * flags please refer to section 7.3.37.2 of DLNA Networked Device
99  * Interoperability Guidelines Volume 1, October 2006.
100  *
101  * Updated DTCP Flags based on 2011 Guidelines, section 7.4.1.3.23.2
102  *
103  **/
104 typedef enum {
105         GUPNP_DLNA_FLAGS_NONE                      = 0,
106         GUPNP_DLNA_FLAGS_SENDER_PACED              = (1 << 31),
107         GUPNP_DLNA_FLAGS_TIME_BASED_SEEK           = (1 << 30),
108         GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK           = (1 << 29),
109         GUPNP_DLNA_FLAGS_PLAY_CONTAINER            = (1 << 28),
110         GUPNP_DLNA_FLAGS_S0_INCREASE               = (1 << 27),
111         GUPNP_DLNA_FLAGS_SN_INCREASE               = (1 << 26),
112         GUPNP_DLNA_FLAGS_RTSP_PAUSE                = (1 << 25),
113         GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE   = (1 << 24),
114         GUPNP_DLNA_FLAGS_INTERACTIVE_TRANSFER_MODE = (1 << 23),
115         GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE  = (1 << 22),
116         GUPNP_DLNA_FLAGS_CONNECTION_STALL          = (1 << 21),
117         GUPNP_DLNA_FLAGS_DLNA_V15                  = (1 << 20),
118         GUPNP_DLNA_FLAGS_LINK_PROTECTED_CONTENT    = (1 << 16),
119         GUPNP_DLNA_FLAGS_CLEAR_TEXT_BYTE_SEEK_FULL = (1 << 15),
120         GUPNP_DLNA_FLAGS_LOP_CLEAR_TEXT_BYTE_SEEK  = (1 << 14)
121 } GUPnPDLNAFlags;
122
123 /**
124  * GUPnPOCMFlags:
125  * @GUPNP_OCM_FLAGS_NONE: No flags
126  * @GUPNP_OCM_FLAGS_UPLOAD: Indicates support for content upload.
127  * @GUPNP_OCM_FLAGS_CREATE_CONTAINER: Indicates support for creation of child
128  *                                    container.
129  * @GUPNP_OCM_FLAGS_DESTROYABLE: This object is destroyable.
130  * @GUPNP_OCM_FLAGS_UPLOAD_DESTROYABLE: Indicates support for upload of
131  *                                      destroyable content.
132  * @GUPNP_OCM_FLAGS_CHANGE_METADATA: Indicates support for changing metadata.
133  *
134  * The DLNA OCM flags supported by a DIDL-Lite Object. For details on these
135  * flags please refer to section 7.3.118.4 of DLNA Networked Device
136  * Interoperability Guidelines Volume 1, October 2006.
137  *
138  **/
139 typedef enum {
140         GUPNP_OCM_FLAGS_NONE               = 0x0,
141         GUPNP_OCM_FLAGS_UPLOAD             = 0x01,
142         GUPNP_OCM_FLAGS_CREATE_CONTAINER   = 0x02,
143         GUPNP_OCM_FLAGS_DESTROYABLE        = 0x04,
144         GUPNP_OCM_FLAGS_UPLOAD_DESTROYABLE = 0x08,
145         GUPNP_OCM_FLAGS_CHANGE_METADATA    = 0x10
146 } GUPnPOCMFlags;
147
148 GType
149 gupnp_ocm_flags_get_type (void) G_GNUC_CONST;
150
151 #define GUPNP_TYPE_OCM_FLAGS (gupnp_ocm_flags_get_type ())
152
153 G_END_DECLS
154
155 #endif /* __GUPNP_DLNA_H__ */