This file is indexed.

/usr/include/mirclient/mir_toolkit/mir_screencast.h is in libmirclient-dev 0.26.3+16.04.20170605-0ubuntu1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*
 * Copyright © 2014 Canonical Ltd.
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef MIR_TOOLKIT_MIR_SCREENCAST_H_
#define MIR_TOOLKIT_MIR_SCREENCAST_H_

#include <mir_toolkit/client_types.h>
#include <mir_toolkit/deprecations.h>

#ifdef __cplusplus
/**
 * \addtogroup mir_toolkit
 * @{
 */
extern "C" {
#endif

/**
 * Create a screencast specification.
 *
 * \remark For use with mir_screencast_create() at the width, height,
 * pixel format and capture region must be set.
 *
 * \param [in] connection   a valid mir connection
 * \return                  A handle that can ultimately be passed to
 *                          mir_create_window() or mir_window_apply_spec()
 */
MirScreencastSpec* mir_create_screencast_spec(MirConnection* connection);

/**
 * Set the requested width, in pixels
 *
 * \param [in] spec     Specification to mutate
 * \param [in] width    Requested width.
 *
 */
void mir_screencast_spec_set_width(MirScreencastSpec* spec, unsigned int width);

/**
 * Set the requested height, in pixels
 *
 * \param [in] spec     Specification to mutate
 * \param [in] height   Requested height.
 *
 */
void mir_screencast_spec_set_height(MirScreencastSpec* spec, unsigned int height);

/**
 * Set the requested pixel format.
 *
 * \param [in] spec     Specification to mutate
 * \param [in] format   Requested pixel format
 *
 */
void mir_screencast_spec_set_pixel_format(MirScreencastSpec* spec, MirPixelFormat format);


/**
 * Set the rectangular region to capture.
 *
 * \param [in] spec     Specification to mutate
 * \param [in] region   The rectangular region of the screen to capture
 *                      specified in virtual screen space coordinates
 *
 */
void mir_screencast_spec_set_capture_region(MirScreencastSpec* spec, MirRectangle const* region);

/**
 * Set the requested mirror mode.
 *
 * \param [in] spec     Specification to mutate
 * \param [in] mode     The mirroring mode to apply when screencasting
 *
 */
void mir_screencast_spec_set_mirror_mode(MirScreencastSpec* spec, MirMirrorMode mode);

/**
 * Set the requested number of buffers to use.
 *
 * \param [in] spec     Specification to mutate
 * \param [in] nbuffers The number of buffers to allocate for screencasting
 *
 */
void mir_screencast_spec_set_number_of_buffers(MirScreencastSpec* spec, unsigned int nbuffers);

/**
 * Release the resources held by a MirScreencastSpec.
 *
 * \param [in] spec     Specification to release
 */
void mir_screencast_spec_release(MirScreencastSpec* spec);

/**
 * Create a screencast from a given specification
 *
 * \param [in] spec  Specification of the screencast attributes
 * \return           The resulting screencast
 */
MirScreencast* mir_screencast_create_sync(MirScreencastSpec* spec);

/**
 * Test for a valid screencast
 *
 * \param [in] screencast  The screencast to verify
 * \return                 True if the supplied screencast is valid, false otherwise.
 */
bool mir_screencast_is_valid(MirScreencast *screencast);

/**
 * Retrieve a text description of the error. The returned string is owned by
 * the library and remains valid until the screencast or the associated
 * connection has been released.
 *
 * \param [in] screencast  The screencast
 * \return                 A text description of any error resulting in an
 *                         invalid screencast, or the empty string "" if the
 *                         screencast is valid.
 */
char const *mir_screencast_get_error_message(MirScreencast *screencast);

/**
 * Create a screencast on the supplied connection.
 *
 * A screencast allows clients to read the contents of the screen.
 *
 *   \warning This request may be denied.
 *   \param [in] connection  The connection
 *   \param [in] parameters  The screencast parameters
 *   \return                 The resulting screencast
 */
MirScreencast* mir_connection_create_screencast_sync(
    MirConnection* connection,
    MirScreencastParameters* parameters)
MIR_FOR_REMOVAL_IN_VERSION_1("use mir_screencast_create_sync instead");

/**
 * Release the specified screencast.
 *   \param [in] screencast  The screencast to be released
 */
void mir_screencast_release_sync(
    MirScreencast* screencast);

/**
 * Retrieve the MirBufferStream associated with a screencast 
 * (to advance buffers, obtain EGLNativeWindowType, etc...)
 * 
 *   \param[in] screencast The screencast
 */
MirBufferStream* mir_screencast_get_buffer_stream(MirScreencast* screencast);

#ifdef __cplusplus
}
/**@}*/
#endif

#endif /* MIR_TOOLKIT_MIR_SCREENCAST_H_ */