diff options
Diffstat (limited to 'server/tests/test_display_resolution_changes.c')
-rw-r--r-- | server/tests/test_display_resolution_changes.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/server/tests/test_display_resolution_changes.c b/server/tests/test_display_resolution_changes.c new file mode 100644 index 00000000..edf7fb2d --- /dev/null +++ b/server/tests/test_display_resolution_changes.c @@ -0,0 +1,66 @@ +/** + * Recreate the primary surface endlessly. + */ + +#include <math.h> +#include <config.h> +#include <stdlib.h> +#include "test_display_base.h" + +SpiceServer *server; +SpiceCoreInterface *core; +SpiceTimer *ping_timer; + +void show_channels(SpiceServer *server); + +int ping_ms = 100; + +void pinger(void *opaque) +{ + // show_channels is not thread safe - fails if disconnections / connections occur + //show_channels(server); + + core->timer_start(ping_timer, ping_ms); +} + +void set_primary_params(void *cb_opaque, uint64_t *arg1, uint64_t *arg2) +{ +#if 0 + static int toggle = 0; + + if (toggle) { + *arg1 = 800; + *arg2 = 600; + } else { + *arg1 = 1024; + *arg2 = 768; + } + toggle = 1 - toggle; +#endif + static int count = 0; + + *arg1 = 800 + sin((float)count / 6) * 200; + *arg2 = 600 + cos((float)count / 6) * 200; + count++; +} + +static Command commands[] = { + {DESTROY_PRIMARY, 0, 0, NULL, NULL}, + {CREATE_PRIMARY, 0, 0, set_primary_params, NULL}, +}; + +int main(void) +{ + core = basic_event_loop_init(); + server = test_init(core); + //spice_server_set_image_compression(server, SPICE_IMAGE_COMPRESS_OFF); + test_add_display_interface(server); + test_set_command_list(commands, COUNT(commands)); + + ping_timer = core->timer_add(pinger, NULL); + core->timer_start(ping_timer, ping_ms); + + basic_event_loop_mainloop(); + + return 0; +} |