instruction-move.c (1747B)
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20#include "config.h" 21#include "display.h" 22#include "log.h" 23 24#include <guacamole/client.h> 25 26#include <stdlib.h> 27 28int guacenc_handle_move(guacenc_display* display, int argc, char** argv) { 29 30 /* Verify argument count */ 31 if (argc < 5) { 32 guacenc_log(GUAC_LOG_WARNING, "\"move\" instruction incomplete"); 33 return 1; 34 } 35 36 /* Parse arguments */ 37 int layer_index = atoi(argv[0]); 38 int parent_index = atoi(argv[1]); 39 int x = atoi(argv[2]); 40 int y = atoi(argv[3]); 41 int z = atoi(argv[4]); 42 43 /* Retrieve requested layer */ 44 guacenc_layer* layer = guacenc_display_get_layer(display, layer_index); 45 if (layer == NULL) 46 return 1; 47 48 /* Validate parent layer */ 49 if (guacenc_display_get_layer(display, parent_index) == NULL) 50 return 1; 51 52 /* Update layer properties */ 53 layer->parent_index = parent_index; 54 layer->x = x; 55 layer->y = y; 56 layer->z = z; 57 58 return 0; 59 60} 61