qmp/hmp: disable screendump if PIXMAN is missing

The command requires color conversion and line-by-line feeding. We could
have a simple fallback for simple formats though.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
master
Marc-André Lureau 2023-08-30 13:38:29 +04:00
parent 600179c39e
commit f38aa2c7c0
4 changed files with 8 additions and 1 deletions

View File

@ -252,6 +252,7 @@ SRST
ERST
#ifdef CONFIG_PIXMAN
{
.name = "screendump",
.args_type = "filename:F,format:-fs,device:s?,head:i?",
@ -267,6 +268,7 @@ SRST
``screendump`` *filename*
Save screen into PPM image *filename*.
ERST
#endif
{
.name = "logfile",

View File

@ -200,7 +200,8 @@
{ 'command': 'screendump',
'data': {'filename': 'str', '*device': 'str', '*head': 'int',
'*format': 'ImageFormat'},
'coroutine': true }
'coroutine': true,
'if': 'CONFIG_PIXMAN' }
##
# == Spice

View File

@ -437,6 +437,7 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str)
}
}
#ifdef CONFIG_PIXMAN
void coroutine_fn
hmp_screendump(Monitor *mon, const QDict *qdict)
{
@ -458,6 +459,7 @@ hmp_screendump(Monitor *mon, const QDict *qdict)
end:
hmp_handle_error(mon, err);
}
#endif
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
{

View File

@ -212,6 +212,7 @@ void qmp_client_migrate_info(const char *protocol, const char *hostname,
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "protocol", "'spice'");
}
#ifdef CONFIG_PIXMAN
#ifdef CONFIG_PNG
/**
* png_save: Take a screenshot as PNG
@ -391,3 +392,4 @@ qmp_screendump(const char *filename, const char *device,
}
}
}
#endif /* CONFIG_PIXMAN */