/usr/include/spice-client-glib-2.0/channel-display.h is in libspice-client-glib-2.0-dev 0.34-1.1build1.
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 | /* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
Copyright (C) 2010 Red Hat, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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 library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __SPICE_CLIENT_DISPLAY_CHANNEL_H__
#define __SPICE_CLIENT_DISPLAY_CHANNEL_H__
#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION)
#warning "Only <spice-client.h> can be included directly"
#endif
#include "spice-client.h"
G_BEGIN_DECLS
#define SPICE_TYPE_DISPLAY_CHANNEL (spice_display_channel_get_type())
#define SPICE_DISPLAY_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SPICE_TYPE_DISPLAY_CHANNEL, SpiceDisplayChannel))
#define SPICE_DISPLAY_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SPICE_TYPE_DISPLAY_CHANNEL, SpiceDisplayChannelClass))
#define SPICE_IS_DISPLAY_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SPICE_TYPE_DISPLAY_CHANNEL))
#define SPICE_IS_DISPLAY_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SPICE_TYPE_DISPLAY_CHANNEL))
#define SPICE_DISPLAY_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), SPICE_TYPE_DISPLAY_CHANNEL, SpiceDisplayChannelClass))
typedef struct _SpiceDisplayChannel SpiceDisplayChannel;
typedef struct _SpiceDisplayChannelClass SpiceDisplayChannelClass;
typedef struct _SpiceDisplayChannelPrivate SpiceDisplayChannelPrivate;
#define SPICE_TYPE_GL_SCANOUT (spice_gl_scanout_get_type ())
/**
* SpiceGlScanout:
* @fd: a drm DMABUF file that can be imported with eglCreateImageKHR
* @width: width of the scanout
* @height: height of the scanout
* @stride: stride of the scanout
* @format: the drm fourcc format
* @y0top: orientation of the scanout
*
* Holds the information necessary for using the GL display scanout.
**/
typedef struct _SpiceGlScanout SpiceGlScanout;
struct _SpiceGlScanout {
gint fd;
guint32 width;
guint32 height;
guint32 stride;
guint32 format;
gboolean y0top;
};
/**
* SpiceDisplayMonitorConfig:
* @id: monitor id
* @surface_id: monitor surface id
* @x: x position of the monitor
* @y: y position of the monitor
* @width: width of the monitor
* @height: height of the monitor
*
* Holds a monitor configuration.
**/
typedef struct _SpiceDisplayMonitorConfig SpiceDisplayMonitorConfig;
struct _SpiceDisplayMonitorConfig {
guint id;
guint surface_id;
guint x;
guint y;
guint width;
guint height;
};
/**
* SpiceDisplayPrimary:
* @format: primary buffer format
* @width: width of the primary
* @height: height of the primary
* @stride: stride of the primary
* @shmid: identifier of the shared memory segment associated with
* the @data, or -1 if not shm
* @data: pointer to primary buffer
* @marked: whether the display is marked ready
*
* Holds the information necessary to use the primary surface.
**/
typedef struct _SpiceDisplayPrimary SpiceDisplayPrimary;
struct _SpiceDisplayPrimary {
enum SpiceSurfaceFmt format;
gint width;
gint height;
gint stride;
gint shmid;
guint8 *data;
gboolean marked;
};
/**
* SpiceDisplayChannel:
*
* The #SpiceDisplayChannel struct is opaque and should not be accessed directly.
*/
struct _SpiceDisplayChannel {
SpiceChannel parent;
/*< private >*/
SpiceDisplayChannelPrivate *priv;
/* Do not add fields to this struct */
};
/**
* SpiceDisplayChannelClass:
* @parent_class: Parent class.
* @display_primary_create: Signal class handler for the #SpiceDisplayChannel::display-primary-create signal.
* @display_primary_destroy: Signal class handler for the #SpiceDisplayChannel::display-primary-destroy signal.
* @display_invalidate: Signal class handler for the #SpiceDisplayChannel::display-invalidate signal.
* @display_mark: Signal class handler for the #SpiceDisplayChannel::display-mark signal.
*
* Class structure for #SpiceDisplayChannel.
*/
struct _SpiceDisplayChannelClass {
SpiceChannelClass parent_class;
/* signals */
void (*display_primary_create)(SpiceChannel *channel, gint format,
gint width, gint height, gint stride,
gint shmid, gpointer data);
void (*display_primary_destroy)(SpiceChannel *channel);
void (*display_invalidate)(SpiceChannel *channel,
gint x, gint y, gint w, gint h);
void (*display_mark)(SpiceChannel *channel,
gboolean mark);
/*< private >*/
};
GType spice_display_channel_get_type(void);
gboolean spice_display_get_primary(SpiceChannel *channel, guint32 surface_id,
SpiceDisplayPrimary *primary);
void spice_display_change_preferred_compression(SpiceChannel *channel, gint compression);
void spice_display_change_preferred_video_codec_type(SpiceChannel *channel, gint codec_type);
GType spice_gl_scanout_get_type (void) G_GNUC_CONST;
void spice_gl_scanout_free (SpiceGlScanout *scanout);
const SpiceGlScanout* spice_display_get_gl_scanout(SpiceDisplayChannel *channel);
void spice_display_gl_draw_done(SpiceDisplayChannel *channel);
G_END_DECLS
#endif /* __SPICE_CLIENT_DISPLAY_CHANNEL_H__ */
|