From d7eb9b29c8bcfd9ca97e0604b5b1868b3967164e Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 17 Sep 2012 03:12:24 +0200 Subject: added lo_server_del_method_v() --- main.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 287bb4d..22e511c 100644 --- a/main.c +++ b/main.c @@ -112,6 +112,18 @@ lo_server_add_method_v(lo_server server, const char *types, va_end(ap); } +static void +lo_server_del_method_v(lo_server server, const char *types, const char *fmt, ...) +{ + char buf[255]; + va_list ap; + + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + lo_server_del_method(server, buf, types); + va_end(ap); +} + static void osc_error(int num, const char *msg, const char *path) { @@ -203,14 +215,12 @@ osc_image_delete(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { lo_server server = user_data; - char buf[255], *name; + char *name; name = get_layer_name_from_path(path); - snprintf(buf, sizeof(buf), "/layer/%s/geo", name); - lo_server_del_method(server, buf, GEO_TYPES); - snprintf(buf, sizeof(buf), "/layer/%s/alpha", name); - lo_server_del_method(server, buf, "f"); + lo_server_del_method_v(server, GEO_TYPES, "/layer/%s/geo", name); + lo_server_del_method_v(server, "f", "/layer/%s/alpha", name); free(name); @@ -272,14 +282,12 @@ osc_video_delete(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { lo_server server = user_data; - char buf[255], *name; + char *name; name = get_layer_name_from_path(path); - snprintf(buf, sizeof(buf), "/layer/%s/geo", name); - lo_server_del_method(server, buf, GEO_TYPES); - snprintf(buf, sizeof(buf), "/layer/%s/alpha", name); - lo_server_del_method(server, buf, "f"); + lo_server_del_method_v(server, GEO_TYPES, "/layer/%s/geo", name); + lo_server_del_method_v(server, "f", "/layer/%s/alpha", name); free(name); @@ -350,16 +358,13 @@ osc_box_delete(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { lo_server server = user_data; - char buf[255], *name; + char *name; name = get_layer_name_from_path(path); - snprintf(buf, sizeof(buf), "/layer/%s/geo", name); - lo_server_del_method(server, buf, GEO_TYPES); - snprintf(buf, sizeof(buf), "/layer/%s/alpha", name); - lo_server_del_method(server, buf, "f"); - snprintf(buf, sizeof(buf), "/layer/%s/color", name); - lo_server_del_method(server, buf, COLOR_TYPES); + lo_server_del_method_v(server, GEO_TYPES, "/layer/%s/geo", name); + lo_server_del_method_v(server, "f", "/layer/%s/alpha", name); + lo_server_del_method_v(server, COLOR_TYPES, "/layer/%s/color", name); free(name); -- cgit v1.2.3