Пример #1
0
int uterm_display_set_dpms(struct uterm_display *disp, int state)
{
	if (!disp || !display_is_conn(disp))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->set_dpms, 0, disp, state);
}
Пример #2
0
int mode_new(struct uterm_mode **out, const struct mode_ops *ops)
{
	struct uterm_mode *mode;
	int ret;

	if (!out || !ops)
		return -EINVAL;

	mode = malloc(sizeof(*mode));
	if (!mode)
		return -ENOMEM;
	memset(mode, 0, sizeof(*mode));
	mode->ref = 1;
	mode->ops = ops;

	ret = VIDEO_CALL(mode->ops->init, 0, mode);
	if (ret)
		goto err_free;

	*out = mode;
	return 0;

err_free:
	free(mode);
	return ret;
}
Пример #3
0
unsigned int uterm_mode_get_height(const struct uterm_mode *mode)
{
	if (!mode)
		return 0;

	return VIDEO_CALL(mode->ops->get_height, 0, mode);
}
Пример #4
0
void uterm_video_poll(struct uterm_video *video)
{
	if (!video)
		return;

	VIDEO_CALL(video->ops->poll, 0, video);
}
Пример #5
0
const char *uterm_mode_get_name(const struct uterm_mode *mode)
{
	if (!mode)
		return NULL;

	return VIDEO_CALL(mode->ops->get_name, NULL, mode);
}
Пример #6
0
int uterm_screen_swap(struct uterm_screen *screen)
{
	if (!screen || !display_is_online(screen->disp))
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->swap, 0, screen->disp);
}
Пример #7
0
int display_new(struct uterm_display **out, const struct display_ops *ops)
{
	struct uterm_display *disp;
	int ret;

	if (!out || !ops)
		return -EINVAL;

	disp = malloc(sizeof(*disp));
	if (!disp)
		return -ENOMEM;
	memset(disp, 0, sizeof(*disp));
	disp->ref = 1;
	disp->ops = ops;

	ret = VIDEO_CALL(disp->ops->init, 0, disp);
	if (ret)
		goto err_free;

	log_info("new display %p", disp);
	*out = disp;
	return 0;

err_free:
	free(disp);
	return ret;
}
Пример #8
0
void uterm_display_deactivate(struct uterm_display *disp)
{
	if (!disp || !display_is_online(disp))
		return;

	VIDEO_CALL(disp->ops->deactivate, 0, disp);
}
Пример #9
0
int uterm_screen_use(struct uterm_screen *screen)
{
	if (!screen || !display_is_online(screen->disp))
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->use, -EOPNOTSUPP, screen->disp);
}
Пример #10
0
SHL_EXPORT
int uterm_display_fake_blend(struct uterm_display *disp,
			     const struct uterm_video_buffer *buf,
			     unsigned int x, unsigned int y,
			     uint8_t fr, uint8_t fg, uint8_t fb,
			     uint8_t br, uint8_t bg, uint8_t bb)
{
	struct uterm_video_blend_req req;

	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	memset(&req, 0, sizeof(req));
	req.buf = buf;
	req.x = x;
	req.y = y;
	req.fr = fr;
	req.fg = fg;
	req.fb = fb;
	req.br = br;
	req.bg = bg;
	req.bb = bb;

	return VIDEO_CALL(disp->ops->fake_blendv, -EOPNOTSUPP, disp, &req, 1);
}
Пример #11
0
int uterm_display_use(struct uterm_display *disp)
{
	if (!disp || !display_is_online(disp))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->use, -EOPNOTSUPP, disp);
}
Пример #12
0
int uterm_display_swap(struct uterm_display *disp)
{
	if (!disp || !display_is_online(disp))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->swap, 0, disp);
}
Пример #13
0
void uterm_video_segfault(struct uterm_video *video)
{
	if (!video)
		return;

	VIDEO_CALL(video->ops->segfault, 0, video);
}
Пример #14
0
SHL_EXPORT
int uterm_display_set_dpms(struct uterm_display *disp, int state)
{
	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->set_dpms, 0, disp, state);
}
Пример #15
0
void uterm_mode_unref(struct uterm_mode *mode)
{
	if (!mode || !mode->ref || --mode->ref)
		return;

	VIDEO_CALL(mode->ops->destroy, 0, mode);
	free(mode);
}
Пример #16
0
SHL_EXPORT
int uterm_display_swap(struct uterm_display *disp, bool immediate)
{
	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->swap, 0, disp, immediate);
}
Пример #17
0
SHL_EXPORT
int uterm_display_use(struct uterm_display *disp, bool *opengl)
{
	if (!disp || !display_is_online(disp))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->use, -EOPNOTSUPP, disp, opengl);
}
Пример #18
0
SHL_EXPORT
unsigned int uterm_mode_get_width(const struct uterm_mode *mode)
{
	if (!mode)
		return 0;

	return VIDEO_CALL(mode->ops->get_width, 0, mode);
}
Пример #19
0
void uterm_video_sleep(struct uterm_video *video)
{
	if (!video || !video_is_awake(video))
		return;

	VIDEO_CB(video, NULL, UTERM_SLEEP);
	VIDEO_CALL(video->ops->sleep, 0, video);
}
Пример #20
0
int uterm_screen_blendv(struct uterm_screen *screen,
			const struct uterm_video_blend_req *req, size_t num)
{
	if (!screen)
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->blendv, -EOPNOTSUPP,
			  screen->disp, req, num);
}
Пример #21
0
int uterm_display_fake_blendv(struct uterm_display *disp,
			      const struct uterm_video_blend_req *req,
			      size_t num)
{
	if (!disp)
		return -EINVAL;

	return VIDEO_CALL(disp->ops->fake_blendv, -EOPNOTSUPP, disp, req, num);
}
Пример #22
0
SHL_EXPORT
int uterm_display_blit(struct uterm_display *disp,
		       const struct uterm_video_buffer *buf,
		       unsigned int x, unsigned int y)
{
	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->blit, -EOPNOTSUPP, disp, buf, x, y);
}
Пример #23
0
SHL_EXPORT
int uterm_display_fake_blendv(struct uterm_display *disp,
			      const struct uterm_video_blend_req *req,
			      size_t num)
{
	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->fake_blendv, -EOPNOTSUPP, disp, req, num);
}
Пример #24
0
int uterm_display_activate(struct uterm_display *disp, struct uterm_mode *mode)
{
	if (!disp || !display_is_conn(disp) || display_is_online(disp))
		return -EINVAL;

	if (!mode)
		mode = disp->default_mode;

	return VIDEO_CALL(disp->ops->activate, 0, disp, mode);
}
Пример #25
0
int uterm_screen_blit(struct uterm_screen *screen,
		      const struct uterm_video_buffer *buf,
		      unsigned int x, unsigned int y)
{
	if (!screen)
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->blit, -EOPNOTSUPP, screen->disp,
			  buf, x, y);
}
Пример #26
0
int uterm_screen_fill(struct uterm_screen *screen,
		      uint8_t r, uint8_t g, uint8_t b,
		      unsigned int x, unsigned int y,
		      unsigned int width, unsigned int height)
{
	if (!screen)
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->fill, -EOPNOTSUPP, screen->disp,
			  r, g, b, x, y, width, height);
}
Пример #27
0
SHL_EXPORT
int uterm_display_get_buffers(struct uterm_display *disp,
			      struct uterm_video_buffer *buffer,
			      unsigned int formats)
{
	if (!disp || !display_is_online(disp) || !buffer)
		return -EINVAL;

	return VIDEO_CALL(disp->ops->get_buffers, -EOPNOTSUPP, disp, buffer,
			  formats);
}
Пример #28
0
SHL_EXPORT
int uterm_display_fill(struct uterm_display *disp,
		       uint8_t r, uint8_t g, uint8_t b,
		       unsigned int x, unsigned int y,
		       unsigned int width, unsigned int height)
{
	if (!disp || !display_is_online(disp) || !video_is_awake(disp->video))
		return -EINVAL;

	return VIDEO_CALL(disp->ops->fill, -EOPNOTSUPP, disp, r, g, b, x, y,
			  width, height);
}
Пример #29
0
SHL_EXPORT
void uterm_video_sleep(struct uterm_video *video)
{
	if (!video || !video_is_awake(video))
		return;

	log_debug("go asleep");

	VIDEO_CB(video, NULL, UTERM_SLEEP);
	video->flags &= ~VIDEO_AWAKE;
	VIDEO_CALL(video->ops->sleep, 0, video);
}
Пример #30
0
int uterm_screen_blend(struct uterm_screen *screen,
		       const struct uterm_video_buffer *buf,
		       unsigned int x, unsigned int y,
		       uint8_t fr, uint8_t fg, uint8_t fb,
		       uint8_t br, uint8_t bg, uint8_t bb)
{
	if (!screen)
		return -EINVAL;

	return VIDEO_CALL(screen->disp->ops->blend, -EOPNOTSUPP, screen->disp,
			  buf, x, y, fr, fg, fb, br, bg, bb);
}