aboutsummaryrefslogblamecommitdiffstats
path: root/libcoopgamma_get_gamma_send.3
blob: ee202dab3c95e12b5c336961777f7d0a8eb43153 (plain) (tree)



















                                                                                        


                                      
















                                           
                                           










































                                                
                                              







                                         
.TH LIBCOOPGAMMA_GET_GAMMA_SEND 3 LIBCOOPGAMMA
.SH "NAME"
libcoopgamma_get_gamma_send - Send a request to retrieve a CRTC's gamma ramp filters
.SH "SYNOPSIS"
.nf
#include <libcoopgamma.h>

int libcoopgamma_get_gamma_send(const libcoopgamma_filter_query_t *restrict \fIquery\fP,
                                libcoopgamma_context_t *restrict \fIctx\fP,
                                libcoopgamma_async_context_t *restrict \fIasync\fP);
.fi
.P
Link with
.IR -lcoopgamma .
.SH "DESCRIPTION"
The
.BR libcoopgamma_get_gamma_send ()
function sends a request over the connection of
.I ctx
to the server to retrieve the
CRTC's, with the name given in
.IR query->crtc ,
applied filters. Information about the
request is stored in
.IR *async ,
this information is used by
.BR libcoopgamma_synchronise (3)
to identify the response, and by
.BR libcoopgamma_get_gamma_recv (3)
to parse the response.
.P
The response will include all filter with a
priority between
.I query->low_priority
and
.IR query->high_priority,
inclusively. If and only if
.I query->coalesce
is nonzero, the, from the selected filters,
resulting gamma ramps are returned
rather than a list of all selected filters.
.SH "RETURN VALUES"
Upon successful completion, the
.BR libcoopgamma_get_gamma_send ()
function returns 0. On error, -1 is returned and
.I errno
is set appropriately.
.SH "ERRORS"
The
.BR libcoopgamma_get_gamma_send ()
function may fail for any reason specified for
.BR malloc (3),
.BR realloc (3),
or
.BR libcoopgamma_flush (3).
Particularly interesting exceptional
conditions, that are not errors proper, include
those indicated by the following values on
.IR errno :
.TP
.B EINTR
The function was interrupted by a signal. When
this happens, call
.BR libcoopgamma_flush (3)
to resume.
.TP
.BR EAGAIN " or " EWOULDBLOCK
The communication is nonblocking and the buffer
between the server and the client is full,
and no more data can be queued without blocking.
When this happens, wait a short period of time
and call
.BR libcoopgamma_flush (3)
to resume.
.BR select (3)
or similar function can be used to wait until
.I ctx->fd
is readable.
.TP
.B ECONNREST
The connection to the server has closed.
.SH "SEE ALSO"
.BR libcoopgamma.h (0),
.BR libcoopgamma_filter_query_initialise (3),
.BR libcoopgamma_async_context_initialise (3),
.BR libcoopgamma_flush (3),
.BR libcoopgamma_synchronise (3),
.BR libcoopgamma_set_nonblocking (3),
.BR libcoopgamma_get_gamma_recv (3),
.BR libcoopgamma_get_gamma_sync (3),
.BR libcoopgamma_get_crtcs_send (3),
.BR libcoopgamma_get_gamma_info_send (3),
.BR libcoopgamma_set_gamma_send (3)