From 29282299ad2bcd52162c1c4d09c86036d2f1df69 Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Sat, 3 Apr 2010 00:47:05 +0300 Subject: [PATCH] daemon: Fix direction of room link ports in studio graph --- daemon/studio.c | 17 +++++++++++++++++ dbus_constants.h | 11 ++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/daemon/studio.c b/daemon/studio.c index 395429dc..8d131e3a 100644 --- a/daemon/studio.c +++ b/daemon/studio.c @@ -814,6 +814,23 @@ add_room_ports( uint32_t port_flags) { //log_info("Studio room port \"%s\"", port_name); + + if (JACKDBUS_PORT_IS_INPUT(port_flags)) + { + JACKDBUS_PORT_CLEAR_INPUT(port_flags); + JACKDBUS_PORT_SET_OUTPUT(port_flags); + } + else if (JACKDBUS_PORT_IS_OUTPUT(port_flags)) + { + JACKDBUS_PORT_CLEAR_OUTPUT(port_flags); + JACKDBUS_PORT_SET_INPUT(port_flags); + } + else + { + log_error("room link port with bad flags %"PRIu32, port_flags); + return false; + } + return ladish_graph_add_port(g_studio.studio_graph, context, port_handle, port_name, port_type, port_flags, false); } diff --git a/dbus_constants.h b/dbus_constants.h index 7863f6d3..e68c435a 100644 --- a/dbus_constants.h +++ b/dbus_constants.h @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** * This file contains constants for D-Bus service and interface names and for D-Bus object paths @@ -63,4 +63,13 @@ #define URI_CANVAS_X "http://ladish.org/ns/canvas/x" #define URI_CANVAS_Y "http://ladish.org/ns/canvas/y" +#define JACKDBUS_PORT_IS_INPUT(flags) (((flags) & JACKDBUS_PORT_FLAG_INPUT) != 0) +#define JACKDBUS_PORT_IS_OUTPUT(flags) (((flags) & JACKDBUS_PORT_FLAG_OUTPUT) != 0) + +#define JACKDBUS_PORT_SET_INPUT(flags) (flags) |= JACKDBUS_PORT_FLAG_INPUT +#define JACKDBUS_PORT_SET_OUTPUT(flags) (flags) |= JACKDBUS_PORT_FLAG_OUTPUT + +#define JACKDBUS_PORT_CLEAR_INPUT(flags) (flags) &= ~JACKDBUS_PORT_FLAG_INPUT +#define JACKDBUS_PORT_CLEAR_OUTPUT(flags) (flags) &= ~JACKDBUS_PORT_FLAG_OUTPUT + #endif /* #ifndef DBUS_CONSTANTS_H__C21DE0EE_C19C_42F0_8D63_D613E4806C0E__INCLUDED */