aboutsummaryrefslogtreecommitdiffstats
path: root/libcoopgamma_set_gamma_recv.c
blob: 71b45a73c49b76df4c782af952fabbd543783b51 (plain) (blame)
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
/* See LICENSE file for copyright and license details. */
#include "common.h"


/**
 * Apply, update, or remove a gamma ramp adjustment, receive response part
 * 
 * @param   ctx    The state of the library, must be connected
 * @param   async  Information about the request
 * @return         Zero on success, -1 on error, in which case `ctx->error`
 *                 (rather than `errno`) is read for information about the error
 */
int
libcoopgamma_set_gamma_recv(libcoopgamma_context_t *restrict ctx, libcoopgamma_async_context_t *restrict async)
{
	if (libcoopgamma_check_error__(ctx, async))
		return -(ctx->error.custom || ctx->error.number);

	while (*libcoopgamma_next_header__(ctx));
	(void) libcoopgamma_next_payload__(ctx, &(size_t){0});

	errno = EBADMSG;
	copy_errno(ctx);
	return -1;
}