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

View File

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

View File

@ -437,6 +437,7 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str)
} }
} }
#ifdef CONFIG_PIXMAN
void coroutine_fn void coroutine_fn
hmp_screendump(Monitor *mon, const QDict *qdict) hmp_screendump(Monitor *mon, const QDict *qdict)
{ {
@ -458,6 +459,7 @@ hmp_screendump(Monitor *mon, const QDict *qdict)
end: end:
hmp_handle_error(mon, err); hmp_handle_error(mon, err);
} }
#endif
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict) 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'"); error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "protocol", "'spice'");
} }
#ifdef CONFIG_PIXMAN
#ifdef CONFIG_PNG #ifdef CONFIG_PNG
/** /**
* png_save: Take a screenshot as PNG * png_save: Take a screenshot as PNG
@ -391,3 +392,4 @@ qmp_screendump(const char *filename, const char *device,
} }
} }
} }
#endif /* CONFIG_PIXMAN */